]> git.sur5r.net Git - openldap/blobdiff - contrib/ldapc++/src/LDAPAsynConnection.cpp
Happy New Year
[openldap] / contrib / ldapc++ / src / LDAPAsynConnection.cpp
index 7c8358e12b2890f7ea57711bd69f51fe1880f64e..05ba1f136c71f24eef221e9ab96c15987947ec06 100644 (file)
@@ -1,6 +1,6 @@
 // $OpenLDAP$
 /*
- * Copyright 2000-2013 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 2000-2018 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -43,7 +43,10 @@ LDAPAsynConnection::LDAPAsynConnection(const string& url, int port,
     this->setConstraints(cons);
 }
 
-LDAPAsynConnection::~LDAPAsynConnection(){}
+LDAPAsynConnection::~LDAPAsynConnection(){
+       unbind();
+       delete m_constr;
+}
 
 void LDAPAsynConnection::init(const string& hostname, int port){
     DEBUG(LDAP_DEBUG_TRACE,"LDAPAsynConnection::init" << endl);
@@ -51,6 +54,8 @@ void LDAPAsynConnection::init(const string& hostname, int port){
             "   hostname:" << hostname << endl
             << "   port:" << port << endl);
 
+       unbind();
+
     m_uri.setScheme("ldap");
     m_uri.setHost(hostname);
     m_uri.setPort(port);
@@ -66,6 +71,8 @@ void LDAPAsynConnection::init(const string& hostname, int port){
 }
 
 void LDAPAsynConnection::initialize(const std::string& uri){
+       unbind();
+
        m_uri.setURLString(uri);
     int ret = ldap_initialize(&cur_session, m_uri.getURLString().c_str());
     if ( ret != LDAP_SUCCESS ) {
@@ -277,6 +284,7 @@ void LDAPAsynConnection::unbind(){
 
 void LDAPAsynConnection::setConstraints(LDAPConstraints *cons){
     DEBUG(LDAP_DEBUG_TRACE,"LDAPAsynConnection::setConstraints()" << endl);
+       delete m_constr;
     m_constr=cons;
 }