X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-bdb%2Fattr.c;h=c05cfc393390b46624cc01f5b3531c55d89ef096;hb=02fb60d3dad11f9ee46feb6ba3eb9ad96dde0c48;hp=dd1fe3b851c63a2a6e8e4321433bcd9c98041405;hpb=0e16f6acf9efe4a3dd2b413418213431ec86c33d;p=openldap diff --git a/servers/slapd/back-bdb/attr.c b/servers/slapd/back-bdb/attr.c index dd1fe3b851..c05cfc3933 100644 --- a/servers/slapd/back-bdb/attr.c +++ b/servers/slapd/back-bdb/attr.c @@ -1,7 +1,7 @@ /* attr.c - backend routines for dealing with attributes */ /* $OpenLDAP$ */ /* - * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -17,69 +17,49 @@ /* for the cache of attribute information (which are indexed, etc.) */ typedef struct bdb_attrinfo { -#ifdef SLAPD_USE_AD - AttributeDescription *ai_desc; /* attribute description cn;lang-en */ -#else - char *ai_desc; -#endif + AttributeDescription *ai_desc; /* attribute description cn;lang-en */ slap_mask_t ai_indexmask; /* how the attr is indexed */ } AttrInfo; static int ainfo_type_cmp( -#ifdef SLAPD_USE_AD AttributeDescription *desc, -#else - char *desc, -#endif - AttrInfo *a + AttrInfo *a ) { -#ifdef SLAPD_USE_AD - return ad_cmp( desc, a->ai_desc ); -#else - return( strcasecmp( desc, a->ai_desc ) ); -#endif + return desc - a->ai_desc; } static int ainfo_cmp( - AttrInfo *a, - AttrInfo *b + AttrInfo *a, + AttrInfo *b ) { -#ifdef SLAPD_USE_AD - return ad_cmp( a->ai_desc, b->ai_desc ); -#else - return( strcasecmp( a->ai_desc, b->ai_desc ) ); -#endif + return a->ai_desc - b->ai_desc; } void bdb_attr_mask( - struct bdb_info *bdb, -#ifdef SLAPD_USE_AD + struct bdb_info *bdb, AttributeDescription *desc, -#else - const char *desc, -#endif - slap_mask_t *indexmask ) + slap_mask_t *indexmask ) { AttrInfo *a; a = (AttrInfo *) avl_find( bdb->bi_attrs, desc, - (AVL_CMP) ainfo_type_cmp ); + (AVL_CMP) ainfo_type_cmp ); *indexmask = a != NULL ? a->ai_indexmask : 0; } int bdb_attr_index_config( - struct bdb_info *bdb, - const char *fname, - int lineno, - int argc, - char **argv ) + struct bdb_info *bdb, + const char *fname, + int lineno, + int argc, + char **argv ) { int rc; int i; @@ -128,7 +108,7 @@ bdb_attr_index_config( } } - if( !mask ) { + if( !mask ) { fprintf( stderr, "%s: line %d: " "no indexes selected\n", fname, lineno ); @@ -202,20 +182,15 @@ bdb_attr_index_config( #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, - "attr_index_config: index %s 0x%04x\n", - ad->ad_cname.bv_val, mask )); + "attr_index_config: index %s 0x%04lx\n", + ad->ad_cname.bv_val, mask )); #else - Debug( LDAP_DEBUG_CONFIG, "index %s 0x%04x\n", + Debug( LDAP_DEBUG_CONFIG, "index %s 0x%04lx\n", ad->ad_cname.bv_val, mask, 0 ); #endif -#ifdef SLAPD_USE_AD a->ai_desc = ad; -#else - a->ai_desc = ch_strdup( ad->ad_cname.bv_val ); -#endif - a->ai_indexmask = mask; rc = avl_insert( &bdb->bi_attrs, (caddr_t) a, @@ -224,7 +199,7 @@ bdb_attr_index_config( if( rc ) { fprintf( stderr, "%s: line %d: duplicate index definition " "for attr \"%s\" (ignored)\n", - fname, lineno, attrs[i] ); + fname, lineno, attrs[i] ); return LDAP_PARAM_ERROR; } @@ -236,20 +211,9 @@ bdb_attr_index_config( return LDAP_SUCCESS; } - -static void -ainfo_free( void *attr ) -{ - AttrInfo *ai = attr; -#ifndef SLAPD_USE_AD - free( ai->ai_desc ); -#endif - free( ai ); -} - void bdb_attr_index_destroy( Avlnode *tree ) { - avl_free( tree, ainfo_free ); + avl_free( tree, free ); }