]> git.sur5r.net Git - openldap/commitdiff
cleanup needed for tool mode compatibility (may need work)
authorPierangelo Masarati <ando@openldap.org>
Tue, 13 Apr 2004 16:49:12 +0000 (16:49 +0000)
committerPierangelo Masarati <ando@openldap.org>
Tue, 13 Apr 2004 16:49:12 +0000 (16:49 +0000)
servers/slapd/back-ldbm/cache.c
servers/slapd/back-ldbm/entry.c
servers/slapd/back-ldbm/id2entry.c

index 328686349586e2a93c5c74067711d3fb50bc2ff5..b4477927d535e3c229b5f5dcb97993f62aa29874 100644 (file)
@@ -99,6 +99,10 @@ cache_return_entry_rw( Cache *cache, Entry *e, int rw )
        ID id;
        int refcnt, freeit = 1;
 
+       if ( slapMode != SLAP_SERVER_MODE ) {
+               return;
+       }
+
        /* set cache mutex */
        ldap_pvt_thread_mutex_lock( &cache->c_mutex );
 
index ab9e40863f2394e3a6d7b2281805486f47c7490d..f4d732d24d113893323968092b28c4f7dc8d418e 100644 (file)
@@ -52,6 +52,10 @@ ldbm_back_entry_release_rw(
 #endif
 
        } else {
+               if ( e->e_private ) {
+                       free( e->e_private );
+                       e->e_private = NULL;
+               }
                entry_free( e );
        }
 
index 0c3ae59f50af76c06129333da6adcd2f5e3c2a5b..0f680fe4607bf4bb27394691a4c3483db35d22d9 100644 (file)
@@ -259,7 +259,9 @@ id2entry_rw( Backend *be, ID id, int rw )
 
        e->e_id = id;
 
-       if( cache_add_entry_rw( &li->li_cache, e, rw ) != 0 ) {
+       if ( slapMode == SLAP_SERVER_MODE
+                       && cache_add_entry_rw( &li->li_cache, e, rw ) != 0 )
+       {
                entry_free( e );
 
                /* XXX this is a kludge.
@@ -300,9 +302,11 @@ id2entry_rw( Backend *be, ID id, int rw )
                rw ? "w" : "r", id, (unsigned long) e );
 #endif
 
-       /* marks the entry as committed, so it will get added to the cache
-        * when the lock is released */
-       cache_entry_commit( e );
+       if ( slapMode == SLAP_SERVER_MODE ) {
+               /* marks the entry as committed, so it will get added to the cache
+                * when the lock is released */
+               cache_entry_commit( e );
+       }
 
        return( e );
 }