]> git.sur5r.net Git - openldap/commitdiff
ITS#5086
authorQuanah Gibson-Mount <quanah@openldap.org>
Sat, 9 Feb 2008 19:18:28 +0000 (19:18 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Sat, 9 Feb 2008 19:18:28 +0000 (19:18 +0000)
CHANGES
servers/slapd/back-bdb/idl.c

diff --git a/CHANGES b/CHANGES
index 476408ab508dcd6b1c44a5d7604492cead856d1b..2ba2e82b03dd3baa9daf9803438f7c6a28e72434 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 OpenLDAP 2.3 Change Log
 
 OpenLDAP 2.3.41 Engineering
+       Fixed slapd idlcache on adds (ITS#5086)
        Fixed syncrepl propagation of errors (ITS#5282)
        Fixed crash when no-op control is used (ITS#5358)
 
index e557c701bfe0423941434fe3aaa3eec13734444d..96837222c3937ceb5bb6ec303919b5cbc41c25a6 100644 (file)
@@ -696,10 +696,6 @@ bdb_idl_insert_key(
 
        assert( id != NOID );
 
-       if ( bdb->bi_idl_cache_size ) {
-               bdb_idl_cache_del( bdb, db, key );
-       }
-
        DBTzero( &data );
        data.size = sizeof( ID );
        data.ulen = data.size;
@@ -872,6 +868,12 @@ fail:
                cursor->c_close( cursor );
                return rc;
        }
+       /* If key was added (didn't already exist) and using IDL cache,
+        * update key in IDL cache.
+        */
+       if ( !rc && bdb->bi_idl_cache_max_size ) {
+               bdb_idl_cache_add_id( bdb, db, key, id );
+       }
        rc = cursor->c_close( cursor );
        if( rc != 0 ) {
                Debug( LDAP_DEBUG_ANY, "=> bdb_idl_insert_key: "
@@ -904,7 +906,7 @@ bdb_idl_delete_key(
        }
        assert( id != NOID );
 
-       if ( bdb->bi_idl_cache_max_size ) {
+       if ( bdb->bi_idl_cache_size ) {
                bdb_idl_cache_del( bdb, db, key );
        }