X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fattr.c;h=6bfa9824b4a12a096fe6e6b15697924b852d99be;hb=82540c5cc1be5bf17b22f3a41d12d1bc56180654;hp=9eb492000d57a3062c9292655740becd8ddc6111;hpb=693fb9424a17799192116e8ce007c4070798cdeb;p=openldap diff --git a/servers/slapd/back-ldbm/attr.c b/servers/slapd/back-ldbm/attr.c index 9eb492000d..6bfa9824b4 100644 --- a/servers/slapd/back-ldbm/attr.c +++ b/servers/slapd/back-ldbm/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 */ @@ -15,32 +15,19 @@ #include "slap.h" #include "back-ldbm.h" - /* for the cache of attribute information (which are indexed, etc.) */ typedef struct ldbm_attrinfo { -#ifdef SLAPD_USE_AD - AttributeDescription *ai_desc; /* attribute description cn;lang-en */ -#else - char *ai_desc; -#endif - slap_index ai_indexmask; /* how the attr is indexed */ + 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 ) { -#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 @@ -49,22 +36,14 @@ ainfo_cmp( 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 attr_mask( struct ldbminfo *li, -#ifdef SLAPD_USE_AD - AttributeDescription *desc, -#else - const char *desc, -#endif - slap_index *indexmask ) + AttributeDescription *desc, + slap_mask_t *indexmask ) { AttrInfo *a; @@ -84,7 +63,7 @@ attr_index_config( { int rc; int i; - slap_index mask; + slap_mask_t mask; char **attrs; char **indexes = NULL; @@ -115,7 +94,7 @@ attr_index_config( mask = 0; for ( i = 0; indexes[i] != NULL; i++ ) { - slap_index index; + slap_mask_t index; rc = slap_str2index( indexes[i], &index ); if( rc != LDAP_SUCCESS ) { @@ -201,16 +180,18 @@ attr_index_config( return LDAP_INAPPROPRIATE_MATCHING; } - Debug( LDAP_DEBUG_CONFIG, "index %s 0x%04x\n", - ad->ad_cname->bv_val, mask, 0 ); - -#ifdef SLAPD_USE_AD - a->ai_desc = ad; +#ifdef NEW_LOGGING + LDAP_LOG( BACK_LDBM, DETAIL1, + "attr_index_config: index %s 0x%04lx\n", + ad->ad_cname.bv_val, mask, 0 ); #else - a->ai_desc = ch_strdup( ad->ad_cname->bv_val ); - ad_free( ad, 1 ); + Debug( LDAP_DEBUG_CONFIG, "index %s 0x%04lx\n", + ad->ad_cname.bv_val, mask, 0 ); #endif + + a->ai_desc = ad; + a->ai_indexmask = mask; rc = avl_insert( &li->li_attrs, (caddr_t) a, @@ -231,22 +212,8 @@ attr_index_config( return LDAP_SUCCESS; } - -static void -ainfo_free( void *attr ) -{ - AttrInfo *ai = attr; -#ifdef SLAPD_USE_AD - ad_free( ai->ai_desc, 1 ); -#else - free( ai->ai_desc ); -#endif - free( ai ); -} - void attr_index_destroy( Avlnode *tree ) { - avl_free( tree, ainfo_free ); + avl_free( tree, free ); } -