]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/unbind.c
Cleanup up LDAP_CLIENT_UPDATE code... including some bug fixing.
[openldap] / servers / slapd / back-ldap / unbind.c
index 49b2f3ef19ceac2446fca41b3cef951e99156dba..a5aa5f1f9245f117b8e9b1b9e73a2e7f301f0f93 100644 (file)
@@ -1,7 +1,7 @@
 /* unbind.c - ldap backend unbind function */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /* This is an altered version */
@@ -54,10 +54,14 @@ ldap_back_conn_destroy(
        struct ldapinfo *li = (struct ldapinfo *) be->be_private;
        struct ldapconn *lc, lc_curr;
 
+#ifdef NEW_LOGGING
+       LDAP_LOG( BACK_LDAP, INFO,
+               "ldap_back_conn_destroy: fetching conn %ld\n", conn->c_connid, 0, 0 );
+#else /* !NEW_LOGGING */
        Debug( LDAP_DEBUG_TRACE,
-               "=>ldap_back_conn_destroy: fetching conn %d\n",
+               "=>ldap_back_conn_destroy: fetching conn %ld\n",
                conn->c_connid, 0, 0 );
-       
+#endif /* !NEW_LOGGING */
 
        lc_curr.conn = conn;
        
@@ -66,9 +70,15 @@ ldap_back_conn_destroy(
        ldap_pvt_thread_mutex_unlock( &li->conn_mutex );
 
        if (lc) {
+#ifdef NEW_LOGGING
+               LDAP_LOG( BACK_LDAP, DETAIL1, 
+                       "ldap_back_conn_destroy: destroying conn %ld\n", 
+                       conn->c_connid, 0, 0 );
+#else /* !NEW_LOGGING */
                Debug( LDAP_DEBUG_TRACE,
-                       "=>ldap_back_conn_destroy: destroying conn %d\n",
+                       "=>ldap_back_conn_destroy: destroying conn %ld\n",
                        lc->conn->c_connid, 0, 0 );
+#endif
 
 #ifdef ENABLE_REWRITE
                /*
@@ -83,10 +93,13 @@ ldap_back_conn_destroy(
                 * in a segmentation fault
                 */
                ldap_unbind(lc->ld);
-               if ( lc->bound_dn ) {
-                       free( lc->bound_dn );
+               if ( lc->bound_dn.bv_val ) {
+                       ch_free( lc->bound_dn.bv_val );
+               }
+               if ( lc->cred.bv_val ) {
+                       ch_free( lc->cred.bv_val );
                }
-               free( lc );
+               ch_free( lc );
        }
 
        /* no response to unbind */