#include "portable.h"
#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
+
+#include <ac/socket.h>
+#include <ac/string.h>
+
#include "slap.h"
#include "back-ldbm.h"
-extern char **str2charray();
-
static int
ainfo_type_cmp(
char *type,
*indexmask = 0;
*syntaxmask = 0;
if ( (a = (struct attrinfo *) avl_find( li->li_attrs, type,
- ainfo_type_cmp )) == NULL ) {
+ (AVL_CMP) ainfo_type_cmp )) == NULL ) {
if ( (a = (struct attrinfo *) avl_find( li->li_attrs, "default",
- ainfo_type_cmp )) == NULL ) {
+ (AVL_CMP) ainfo_type_cmp )) == NULL ) {
return;
}
}
}
for ( i = 0; attrs[i] != NULL; i++ ) {
a = (struct attrinfo *) ch_malloc( sizeof(struct attrinfo) );
- a->ai_type = strdup( attrs[i] );
+ a->ai_type = ch_strdup( attrs[i] );
a->ai_syntaxmask = attr_syntax( a->ai_type );
if ( argc == 1 ) {
a->ai_indexmask = (INDEX_PRESENCE | INDEX_EQUALITY |
a->ai_indexmask |= INDEX_FROMINIT;
}
- switch (avl_insert( &li->li_attrs, (caddr_t) a, ainfo_cmp, ainfo_dup )) {
+ switch (avl_insert( &li->li_attrs, (caddr_t) a,
+ (AVL_CMP) ainfo_cmp, (AVL_DUP) ainfo_dup ))
+ {
case 1: /* duplicate - updating init version */
free( a->ai_type );
free( (char *) a );
if ( argc > 1 )
charray_free( indexes );
}
+
+
+#ifdef SLAP_CLEANUP
+
+static void
+ainfo_free( void *attr )
+{
+ struct attrinfo *ai = attr;
+ free( ai->ai_type );
+ free( ai );
+}
+
+void
+attr_index_destroy( Avlnode *tree )
+{
+ avl_free( tree, ainfo_free );
+}
+
+#endif /* SLAP_CLEANUP */