]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/unbind.c
need a second function because of different free() routines
[openldap] / servers / slapd / back-ldap / unbind.c
index a15452721a2dde7092f5269fa1e77d2da13cdd13..5197c0e90704d64dacbbd1f9bb0037f74be4abb8 100644 (file)
@@ -1,7 +1,7 @@
 /* unbind.c - ldap backend unbind function */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /* This is an altered version */
@@ -55,9 +55,8 @@ ldap_back_conn_destroy(
        struct ldapconn *lc, lc_curr;
 
 #ifdef NEW_LOGGING
-       LDAP_LOG(( "backend", LDAP_LEVEL_INFO,
-                       "ldap_back_conn_destroy: fetching conn %ld\n",
-                       conn->c_connid ));
+       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 %ld\n",
@@ -65,6 +64,7 @@ ldap_back_conn_destroy(
 #endif /* !NEW_LOGGING */
 
        lc_curr.conn = conn;
+       lc_curr.local_dn = conn->c_ndn;
        
        ldap_pvt_thread_mutex_lock( &li->conn_mutex );
        lc = avl_delete( &li->conntree, (caddr_t)&lc_curr, ldap_back_conn_cmp );
@@ -72,9 +72,9 @@ ldap_back_conn_destroy(
 
        if (lc) {
 #ifdef NEW_LOGGING
-               LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,
-                       "ldap_back_conn_destroy: destroying conn %ld\n",
-                       conn->c_connid ));
+               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 %ld\n",
@@ -85,7 +85,7 @@ ldap_back_conn_destroy(
                /*
                 * Cleanup rewrite session
                 */
-               rewrite_session_delete( li->rwinfo, conn );
+               rewrite_session_delete( li->rwmap.rwm_rw, conn );
 #endif /* ENABLE_REWRITE */
 
                /*
@@ -93,14 +93,7 @@ ldap_back_conn_destroy(
                 * and calling ldap_unbind on a corrupted header results
                 * in a segmentation fault
                 */
-               ldap_unbind(lc->ld);
-               if ( lc->bound_dn.bv_val ) {
-                       ch_free( lc->bound_dn.bv_val );
-               }
-               if ( lc->cred.bv_val ) {
-                       ch_free( lc->cred.bv_val );
-               }
-               ch_free( lc );
+               ldap_back_conn_free( lc );
        }
 
        /* no response to unbind */