]> git.sur5r.net Git - openldap/commitdiff
method to renew the tlsctx
authorRalf Haferkamp <ralf@openldap.org>
Tue, 16 Feb 2010 17:48:14 +0000 (17:48 +0000)
committerRalf Haferkamp <ralf@openldap.org>
Tue, 16 Feb 2010 17:48:14 +0000 (17:48 +0000)
contrib/ldapc++/src/TlsOptions.cpp
contrib/ldapc++/src/TlsOptions.h

index 8f95815b83adb44654226af321dd51d393430746..05e2a90882330382961ec635bf2ae0825764b55e 100644 (file)
@@ -70,6 +70,9 @@ void TlsOptions::setOption( tls_option opt, void *value ) const {
             throw( LDAPException( LDAP_PARAM_ERROR, "error while setting TLS option" ) );
         }
     }
+    if ( m_ld ){
+        this->newCtx();
+    }
 }
 
 void TlsOptions::getOption( tls_option opt, void* value ) const {
@@ -104,3 +107,14 @@ std::string TlsOptions::getStringOption( tls_option opt ) const {
     return strval;
 }
 
+void TlsOptions::newCtx() const {
+    int ret = ldap_set_option( m_ld, LDAP_OPT_X_TLS_NEWCTX, LDAP_OPT_ON);
+    if ( ret != LDAP_OPT_SUCCESS )
+    {
+        if ( ret != LDAP_OPT_ERROR ){
+            throw( LDAPException( ret ));
+        } else {
+            throw( LDAPException( LDAP_LOCAL_ERROR, "error while renewing TLS context" ) );
+        }
+    }
+}
index a4cb0b44db3a118268a8abf0223530b5780828c7..c572c412e3fc6b79866a56d4545b80cc0e0e15a6 100644 (file)
@@ -21,7 +21,6 @@ class TlsOptions {
             RANDOM_FILE,
             CRLCHECK,
             DHFILE,
-            NEWCTX,
             LASTOPT /* dummy */
         };
 
@@ -49,6 +48,7 @@ class TlsOptions {
         };
 
     private:
+        void newCtx() const;
         LDAP *m_ld;        
 };