]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/id2children.c
Remove abandon cruft
[openldap] / servers / slapd / back-ldbm / id2children.c
index b25a14c54d1871823a0f81e54219bea3039bf9e2..27f3b625c8715b714f39ccc3ab2aecac1e3b2ca2 100644 (file)
@@ -1,63 +1,20 @@
 /* id2children.c - routines to deal with the id2children index */
+/* $OpenLDAP$ */
+/*
+ * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
 
 #include "portable.h"
 
 #include <stdio.h>
+#include <ac/string.h>
 
 #include <ac/socket.h>
 
 #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,
-    Entry      *p,
-    Entry      *e
-)
-{
-       struct dbcache  *db;
-       Datum           key, data;
-       int             len, rc;
-       IDList          *idl;
-       char            buf[20];
-
-#ifdef HAVE_BERKELEY_DB2
-       memset( &key, 0, sizeof( key ) );
-       memset( &data, 0, sizeof( data ) );
-#endif
-
-       Debug( LDAP_DEBUG_TRACE, "=> id2children_add( %d, %d )\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",
-                   LDBM_SUFFIX, 0, 0 );
-               return( -1 );
-       }
-
-       sprintf( buf, "%c%d", EQ_PREFIX, p ? p->e_id : 0 );
-       key.dptr = buf;
-       key.dsize = strlen( buf ) + 1;
-
-       if ( idl_insert_key( be, db, key, e->e_id ) != 0 ) {
-               Debug( LDAP_DEBUG_TRACE, "<= id2children_add -1 (idl_insert)\n",
-                   0, 0, 0 );
-               ldbm_cache_close( be, db );
-               return( -1 );
-       }
-
-       ldbm_cache_close( be, db );
-
-       Debug( LDAP_DEBUG_TRACE, "<= id2children_add 0\n", 0, 0, 0 );
-       return( 0 );
-}
 
 int
 has_children(
@@ -65,36 +22,59 @@ has_children(
     Entry      *p
 )
 {
-       struct dbcache  *db;
+       DBCache *db;
        Datum           key;
-       int             rc;
-       IDList          *idl;
-       char            buf[20];
+       int             rc = 0;
+       ID_BLOCK                *idl;
+
+       ldbm_datum_init( key );
 
-#ifdef HAVE_BERKELEY_DB2
-       memset( &key, 0, sizeof( key ) );
+#ifdef NEW_LOGGING
+       LDAP_LOG(( "backend", LDAP_LEVEL_ENTRY,
+                  "has_children: enter %ld\n", p->e_id ));
+#else
+       Debug( LDAP_DEBUG_TRACE, "=> has_children( %ld )\n", p->e_id , 0, 0 );
 #endif
 
-       Debug( LDAP_DEBUG_TRACE, "=> has_children( %d )\n", p->e_id , 0, 0 );
 
-       if ( (db = ldbm_cache_open( be, "id2children", LDBM_SUFFIX,
+       if ( (db = ldbm_cache_open( be, "dn2id", LDBM_SUFFIX,
            LDBM_WRCREAT )) == NULL ) {
+#ifdef NEW_LOGGING
+               LDAP_LOG(( "backend", LDAP_LEVEL_ERR,
+                          "has_children: could not open \"dn2id%s\"\n",
+                          LDBM_SUFFIX ));
+#else
                Debug( LDAP_DEBUG_ANY,
-                   "<= has_children -1 could not open \"id2children%s\"\n",
+                   "<= has_children -1 could not open \"dn2id%s\"\n",
                    LDBM_SUFFIX, 0, 0 );
+#endif
+
                return( 0 );
        }
 
-       sprintf( buf, "%c%d", EQ_PREFIX, p->e_id );
-       key.dptr = buf;
-       key.dsize = strlen( buf ) + 1;
+       key.dsize = strlen( p->e_ndn ) + 2;
+       key.dptr = ch_malloc( key.dsize );
+       sprintf( key.dptr, "%c%s", DN_ONE_PREFIX, p->e_ndn );
 
        idl = idl_fetch( be, db, key );
 
+       free( key.dptr );
+
        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;
+       }
+
+#ifdef NEW_LOGGING
+       LDAP_LOG(( "backend", LDAP_LEVEL_ENTRY,
+                  "has_children: id (%ld) %s children.\n",
+                  p->e_id, rc ? "has" : "doesn't have" ));
+#else
+       Debug( LDAP_DEBUG_TRACE, "<= has_children( %ld ): %s\n",
+               p->e_id, rc ? "yes" : "no", 0 );
+#endif
+
        return( rc );
 }