]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/id2children.c
Import alias deref'ing changes from -devel.
[openldap] / servers / slapd / back-ldbm / id2children.c
index cd0cc7a6dfe58d86adf4117c97189e8e5dd75a85..69a5d7c58978bda4b3a2f67763c40546ac12a2e7 100644 (file)
@@ -20,14 +20,10 @@ id2children_add(
        struct dbcache  *db;
        Datum           key;
        int             len, rc;
-       IDList          *idl;
+       ID_BLOCK                *idl;
        char            buf[20];
 
-#ifdef HAVE_BERKELEY_DB2
-       Datum           data;
-       memset( &key, 0, sizeof( key ) );
-       memset( &data, 0, sizeof( data ) );
-#endif
+       ldbm_datum_init( key );
 
        Debug( LDAP_DEBUG_TRACE, "=> id2children_add( %lu, %lu )\n",
               p ? p->e_id : 0, e->e_id, 0 );
@@ -68,7 +64,7 @@ id2children_remove(
        struct dbcache  *db;
        Datum           key;
        int             len, rc;
-       IDList          *idl;
+       ID_BLOCK                *idl;
        char            buf[20];
 
        Debug( LDAP_DEBUG_TRACE, "=> id2children_remove( %lu, %lu )\n", p ? p->e_id
@@ -77,18 +73,18 @@ id2children_remove(
        if ( (db = ldbm_cache_open( be, "id2children", LDBM_SUFFIX,
            LDBM_WRCREAT )) == NULL ) {
                Debug( LDAP_DEBUG_ANY,
-                   "<= id2children_add -1 could not open \"id2children%s\"\n",
+                   "<= id2children_remove -1 could not open \"id2children%s\"\n",
                    LDBM_SUFFIX, 0, 0 );
                return( -1 );
        }
 
-       memset( &key, 0, sizeof(key) );
+       ldbm_datum_init( key );
        sprintf( buf, "%c%ld", EQ_PREFIX, p ? p->e_id : 0 );
        key.dptr = buf;
        key.dsize = strlen( buf ) + 1;
 
        if ( idl_delete_key( be, db, key, e->e_id ) != 0 ) {
-               Debug( LDAP_DEBUG_TRACE, "<= id2children_add -1 (idl_insert)\n",
+               Debug( LDAP_DEBUG_TRACE, "<= id2children_remove -1 (idl_delete)\n",
                    0, 0, 0 );
                ldbm_cache_close( be, db );
                return( -1 );
@@ -96,7 +92,7 @@ id2children_remove(
 
        ldbm_cache_close( be, db );
 
-       Debug( LDAP_DEBUG_TRACE, "<= id2children_add 0\n", 0, 0, 0 );
+       Debug( LDAP_DEBUG_TRACE, "<= id2children_remove 0\n", 0, 0, 0 );
        return( 0 );
 }
 
@@ -108,13 +104,11 @@ has_children(
 {
        struct dbcache  *db;
        Datum           key;
-       int             rc;
-       IDList          *idl;
+       int             rc = 0;
+       ID_BLOCK                *idl;
        char            buf[20];
 
-#ifdef HAVE_BERKELEY_DB2
-       memset( &key, 0, sizeof( key ) );
-#endif
+       ldbm_datum_init( key );
 
        Debug( LDAP_DEBUG_TRACE, "=> has_children( %lu )\n", p->e_id , 0, 0 );
 
@@ -133,9 +127,13 @@ has_children(
        idl = idl_fetch( be, db, key );
 
        ldbm_cache_close( be, db );
-       rc = idl ? 1 : 0;
-       idl_free( idl );
 
-       Debug( LDAP_DEBUG_TRACE, "<= has_children %d\n", rc, 0, 0 );
+       if( idl != NULL ) {
+               idl_free( idl );
+               rc = 1;
+       }
+
+       Debug( LDAP_DEBUG_TRACE, "<= has_children( %lu ): %s\n",
+               p->e_id, rc ? "yes" : "no", 0 );
        return( rc );
 }