X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fid2children.c;h=69a5d7c58978bda4b3a2f67763c40546ac12a2e7;hb=573e279d8769b0b74cdf63c21653f261cb741f25;hp=7c555bfecbdfb1fb76690fb63e8c5645fb1a1821;hpb=3ab8c58335b41bdafe01e5a88500807871236b50;p=openldap diff --git a/servers/slapd/back-ldbm/id2children.c b/servers/slapd/back-ldbm/id2children.c index 7c555bfecb..69a5d7c589 100644 --- a/servers/slapd/back-ldbm/id2children.c +++ b/servers/slapd/back-ldbm/id2children.c @@ -10,10 +10,6 @@ #include "slap.h" #include "back-ldbm.h" -struct dbcache *ldbm_cache_open(); -extern Datum ldbm_cache_fetch(); -IDList *idl_fetch(); - int id2children_add( Backend *be, @@ -24,17 +20,13 @@ 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( %d, %d )\n", p ? p->e_id - : 0, e->e_id, 0 ); + Debug( LDAP_DEBUG_TRACE, "=> id2children_add( %lu, %lu )\n", + p ? p->e_id : 0, e->e_id, 0 ); if ( (db = ldbm_cache_open( be, "id2children", LDBM_SUFFIX, LDBM_WRCREAT )) == NULL ) { @@ -72,27 +64,27 @@ id2children_remove( struct dbcache *db; Datum key; int len, rc; - IDList *idl; + ID_BLOCK *idl; char buf[20]; - Debug( LDAP_DEBUG_TRACE, "=> id2children_remove( %d, %d )\n", p ? p->e_id + Debug( LDAP_DEBUG_TRACE, "=> id2children_remove( %lu, %lu )\n", p ? p->e_id : 0, e->e_id, 0 ); 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) ); - sprintf( buf, "%c%d", EQ_PREFIX, p ? p->e_id : 0 ); + 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 ); @@ -100,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 ); } @@ -112,15 +104,13 @@ 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( %d )\n", p->e_id , 0, 0 ); + Debug( LDAP_DEBUG_TRACE, "=> has_children( %lu )\n", p->e_id , 0, 0 ); if ( (db = ldbm_cache_open( be, "id2children", LDBM_SUFFIX, LDBM_WRCREAT )) == NULL ) { @@ -137,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 ); }