mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-30 13:30:57 +08:00
use URIs instead of hostname/port
This commit is contained in:
parent
f3c2c29f69
commit
029a05a8d5
@ -49,22 +49,26 @@ void LDAPAsynConnection::init(const string& hostname, int port){
|
||||
" hostname:" << hostname << endl
|
||||
<< " port:" << port << endl);
|
||||
|
||||
char* ldapuri;
|
||||
LDAPURLDesc url;
|
||||
memset( &url, 0, sizeof(url));
|
||||
|
||||
url.lud_scheme = strdup("ldap");
|
||||
url.lud_host = strdup(hostname.c_str());
|
||||
url.lud_port = port;
|
||||
url.lud_scope = LDAP_SCOPE_DEFAULT;
|
||||
|
||||
ldapuri = ldap_url_desc2str( &url );
|
||||
m_uri.setScheme("ldap");
|
||||
m_uri.setHost(hostname);
|
||||
m_uri.setPort(port);
|
||||
|
||||
const char *ldapuri = m_uri.getURLString().c_str();
|
||||
int ret = ldap_initialize(&cur_session, ldapuri);
|
||||
if ( ret != LDAP_SUCCESS ) {
|
||||
throw LDAPException( ret );
|
||||
}
|
||||
m_host=hostname;
|
||||
m_port=port;
|
||||
int opt=3;
|
||||
ldap_set_option(cur_session, LDAP_OPT_REFERRALS, LDAP_OPT_OFF);
|
||||
ldap_set_option(cur_session, LDAP_OPT_PROTOCOL_VERSION, &opt);
|
||||
}
|
||||
|
||||
void LDAPAsynConnection::initialize(const std::string& uri){
|
||||
m_uri.setURLString(uri);
|
||||
int ret = ldap_initialize(&cur_session, m_uri.getURLString().c_str());
|
||||
if ( ret != LDAP_SUCCESS ) {
|
||||
throw LDAPException( ret );
|
||||
}
|
||||
int opt=3;
|
||||
ldap_set_option(cur_session, LDAP_OPT_REFERRALS, LDAP_OPT_OFF);
|
||||
ldap_set_option(cur_session, LDAP_OPT_PROTOCOL_VERSION, &opt);
|
||||
@ -250,12 +254,12 @@ LDAP* LDAPAsynConnection::getSessionHandle() const{
|
||||
|
||||
const string& LDAPAsynConnection::getHost() const{
|
||||
DEBUG(LDAP_DEBUG_TRACE,"LDAPAsynConnection::setHost()" << endl);
|
||||
return m_host;
|
||||
return m_uri.getHost();
|
||||
}
|
||||
|
||||
int LDAPAsynConnection::getPort() const{
|
||||
DEBUG(LDAP_DEBUG_TRACE,"LDAPAsynConnection::getPort()" << endl);
|
||||
return m_port;
|
||||
return m_uri.getPort();
|
||||
}
|
||||
|
||||
LDAPAsynConnection* LDAPAsynConnection::referralConnect(
|
||||
|
@ -88,6 +88,15 @@ class LDAPAsynConnection{
|
||||
*/
|
||||
void init(const std::string& hostname, int port);
|
||||
|
||||
/**
|
||||
* Initializes a connection to a server.
|
||||
*
|
||||
* There actually no communication to the server. Just the
|
||||
* object is initialized
|
||||
* @param uri The LDAP-Uri for the destination
|
||||
*/
|
||||
void initialize(const std::string& uri);
|
||||
|
||||
/**
|
||||
* Start TLS on this connection. This isn't in the constructor,
|
||||
* because it could fail (i.e. server doesn't have SSL cert, client
|
||||
@ -306,14 +315,9 @@ class LDAPAsynConnection{
|
||||
LDAPConstraints *m_constr;
|
||||
|
||||
/**
|
||||
* The name of the destination host
|
||||
* The URI of this connection
|
||||
*/
|
||||
std::string m_host;
|
||||
|
||||
/**
|
||||
* The port the destination server is running on.
|
||||
*/
|
||||
int m_port;
|
||||
LDAPUrl m_uri;
|
||||
|
||||
protected:
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user