mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 10:22:50 +00:00
145 lines
4.6 KiB
C++
145 lines
4.6 KiB
C++
/*
|
|
This file is part of libkldap.
|
|
Copyright (c) 2004-2006 Szombathelyi György <gyurco@freemail.hu>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KLDAP_LDAPCONNECTION_H
|
|
#define KLDAP_LDAPCONNECTION_H
|
|
|
|
#include <QtCore/QString>
|
|
|
|
#include "ldapurl.h"
|
|
#include "ldapserver.h"
|
|
#include "kldap_export.h"
|
|
|
|
namespace KLDAP {
|
|
|
|
/**
|
|
* @brief
|
|
* This class represents a connection to an LDAP server.
|
|
*/
|
|
class KLDAP_EXPORT LdapConnection
|
|
{
|
|
public:
|
|
|
|
enum SASL_Fields {
|
|
SASL_Authname = 0x1,
|
|
SASL_Authzid = 0x2,
|
|
SASL_Realm = 0x4,
|
|
SASL_Password = 0x8
|
|
};
|
|
|
|
/** Constructs an LdapConnection object */
|
|
LdapConnection();
|
|
/** Constructs an LdapConnection with the parameters given in url */
|
|
explicit LdapConnection( const LdapUrl &url );
|
|
/** Constructs an LdapConnection with the parameters given in server */
|
|
explicit LdapConnection( const LdapServer &server );
|
|
|
|
virtual ~LdapConnection();
|
|
|
|
/**
|
|
* Sets the connection parameters via the specified url. After this,
|
|
* you need to call connect() to connect with the new parameters.
|
|
* @param url the URL containing the connection parameters
|
|
*/
|
|
void setUrl( const LdapUrl &url );
|
|
/**
|
|
* Returns the connection parameters which was specified with an LDAP Url
|
|
* or a LdapServer structure.
|
|
*/
|
|
const LdapServer &server() const;
|
|
/**
|
|
* Sets the connection parameters via the specified server structure. After
|
|
* this, you need to call connect() to connect with the new parameters.
|
|
* @param server the server object containing the connection parameters
|
|
*/
|
|
void setServer( const LdapServer &server );
|
|
|
|
/**
|
|
* Sets up the connection parameters with creating a handle to the LDAP server.
|
|
* Also sets sizelimit and timelimit and starts TLS if it is requested.
|
|
* Returns 0 if successful, else returns an LDAP error code, and an error
|
|
* string which is available via connectionError().
|
|
*/
|
|
int connect();
|
|
/**
|
|
* Returns a translated error string if connect() failed.
|
|
*/
|
|
QString connectionError() const;
|
|
/**
|
|
* Closes the LDAP connection.
|
|
*/
|
|
void close();
|
|
|
|
/** Sets the size limit for the connection.
|
|
* @param sizelimit the connection size limit to set
|
|
*/
|
|
bool setSizeLimit( int sizelimit );
|
|
/** Returns the current size limit. */
|
|
int sizeLimit() const;
|
|
|
|
/** Sets the time limit for the connection.
|
|
* @param timelimit the connection time limit to set
|
|
*/
|
|
bool setTimeLimit( int timelimit );
|
|
/** Returns the current time limit. */
|
|
int timeLimit() const;
|
|
|
|
/** Gets an option from the connection. The option value can be client
|
|
* library specific, so avoid this function if possible
|
|
* @param option the connection option to return
|
|
* @param value the value of option to get
|
|
*/
|
|
int getOption( int option, void *value ) const;
|
|
/** Sets an option in the connection. The option value can be client
|
|
* library specific, so avoid this function if possible */
|
|
int setOption( int option, void *value );
|
|
|
|
/** Returns the LDAP error code from the last operation */
|
|
int ldapErrorCode() const;
|
|
/** Returns the LDAP error string from the last operation */
|
|
QString ldapErrorString() const;
|
|
/** Returns a translated error message from the specified LDAP error code */
|
|
static QString errorString( int code );
|
|
|
|
/** Returns the SASL error string from the last SASL operation */
|
|
QString saslErrorString() const;
|
|
|
|
/**
|
|
* Returns the opaqe client-library specific LDAP object.
|
|
* Avoid its usage if you can.
|
|
*/
|
|
void *handle() const;
|
|
|
|
/**
|
|
* Returns the opaqe sasl-library specific SASL object.
|
|
* Avoid its usage if you can.
|
|
*/
|
|
void *saslHandle() const;
|
|
|
|
private:
|
|
class LdapConnectionPrivate;
|
|
LdapConnectionPrivate *const d;
|
|
|
|
Q_DISABLE_COPY( LdapConnection )
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|