X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fmr.c;h=4ca235e7e518df32e7d2c04bd84f01f37eba7c2f;hb=7684514535dbe9f407b420bab76f06861ad7587d;hp=88a07c7064a97280d6a4e198574f126d3c22360f;hpb=4e15a84452f0493b1b5bc7b779c7bd1cd4fa4b73;p=openldap diff --git a/servers/slapd/mr.c b/servers/slapd/mr.c index 88a07c7064..4ca235e7e5 100644 --- a/servers/slapd/mr.c +++ b/servers/slapd/mr.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2003 The OpenLDAP Foundation. + * Copyright 1998-2006 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,7 +23,6 @@ #include #include "slap.h" -#include "ldap_pvt.h" struct mindexrec { struct berval mir_name; @@ -46,7 +45,7 @@ mr_index_cmp( const struct mindexrec *mir2 = v_mir2; int i = mir1->mir_name.bv_len - mir2->mir_name.bv_len; if (i) return i; - return (strcmp( mir1->mir_name.bv_val, mir2->mir_name.bv_val )); + return (strcasecmp( mir1->mir_name.bv_val, mir2->mir_name.bv_val )); } static int @@ -59,7 +58,7 @@ mr_index_name_cmp( const struct mindexrec *mir = v_mir; int i = name->bv_len - mir->mir_name.bv_len; if (i) return i; - return (strncmp( name->bv_val, mir->mir_name.bv_val, name->bv_len )); + return (strncasecmp( name->bv_val, mir->mir_name.bv_val, name->bv_len )); } MatchingRule * @@ -170,6 +169,7 @@ mr_add( for( i=0; def->mrd_compat_syntaxes[i]; i++ ) { compat_syn[i] = syn_find( def->mrd_compat_syntaxes[i] ); if( compat_syn[i] == NULL ) { + ch_free( compat_syn ); return SLAP_SCHERR_SYN_NOT_FOUND; } } @@ -199,10 +199,12 @@ mr_add( smr->smr_syntax = syn; } else { *err = smr->smr_syntax_oid; + ch_free( smr ); return SLAP_SCHERR_SYN_NOT_FOUND; } } else { *err = ""; + ch_free( smr ); return SLAP_SCHERR_MR_INCOMPLETE; } code = mr_insert(smr,err); @@ -218,34 +220,19 @@ register_matching_rule( int code; const char *err; - if( def->mrd_usage == SLAP_MR_NONE && - def->mrd_compat_syntaxes == NULL ) - { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: %s not usable\n", def->mrd_desc, 0, 0 ); -#else + if( def->mrd_usage == SLAP_MR_NONE && def->mrd_compat_syntaxes == NULL ) { Debug( LDAP_DEBUG_ANY, "register_matching_rule: not usable %s\n", def->mrd_desc, 0, 0 ); -#endif return -1; } if( def->mrd_associated != NULL ) { amr = mr_find( def->mrd_associated ); - if( amr == NULL ) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: could not locate associated " - "matching rule %s for %s\n", + Debug( LDAP_DEBUG_ANY, "register_matching_rule: " + "could not locate associated matching rule %s for %s\n", def->mrd_associated, def->mrd_desc, 0 ); -#else - Debug( LDAP_DEBUG_ANY, "register_matching_rule: could not locate " - "associated matching rule %s for %s\n", - def->mrd_associated, def->mrd_desc, 0 ); -#endif return -1; } @@ -256,32 +243,16 @@ register_matching_rule( if (( def->mrd_usage & SLAP_MR_EQUALITY ) && (( def->mrd_usage & SLAP_MR_SUBTYPE_MASK ) != SLAP_MR_NONE )) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: inappropriate (approx) association " - "%s for %s\n", + Debug( LDAP_DEBUG_ANY, "register_matching_rule: " + "inappropriate (approx) association %s for %s\n", def->mrd_associated, def->mrd_desc, 0 ); -#else - Debug( LDAP_DEBUG_ANY, - "register_matching_rule: inappropriate (approx) association " - "%s for %s\n", - def->mrd_associated, def->mrd_desc, 0 ); -#endif return -1; } } else if (!( amr->smr_usage & SLAP_MR_EQUALITY )) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: inappropriate (equalilty) association " - "%s for %s\n", - def->mrd_associated, def->mrd_desc, 0 ); -#else - Debug( LDAP_DEBUG_ANY, - "register_matching_rule: inappropriate (equalilty) association " - "%s for %s\n", + Debug( LDAP_DEBUG_ANY, "register_matching_rule: " + "inappropriate (equalilty) association %s for %s\n", def->mrd_associated, def->mrd_desc, 0 ); -#endif return -1; } } @@ -289,15 +260,9 @@ register_matching_rule( mr = ldap_str2matchingrule( def->mrd_desc, &code, &err, LDAP_SCHEMA_ALLOW_ALL ); if ( !mr ) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: %s before %s in %s.\n", - ldap_scherr2str(code), err, def->mrd_desc ); -#else Debug( LDAP_DEBUG_ANY, "Error in register_matching_rule: %s before %s in %s\n", ldap_scherr2str(code), err, def->mrd_desc ); -#endif return -1; } @@ -308,15 +273,9 @@ register_matching_rule( ldap_memfree( mr ); if ( code ) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, ERR, - "register_matching_rule: %s for %s in %s.\n", - scherr2str(code), err, def->mrd_desc ); -#else Debug( LDAP_DEBUG_ANY, "Error in register_matching_rule: %s for %s in %s\n", scherr2str(code), err, def->mrd_desc ); -#endif return -1; } @@ -353,11 +312,7 @@ matching_rule_use_init( void ) MatchingRule *mr; MatchingRuleUse **mru_ptr = &LDAP_SLIST_FIRST(&mru_list); -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, INFO, "matching_rule_use_init\n", 0, 0, 0 ); -#else Debug( LDAP_DEBUG_TRACE, "matching_rule_use_init\n", 0, 0, 0 ); -#endif LDAP_SLIST_FOREACH( mr, &mr_list, smr_next ) { AttributeType *at; @@ -400,15 +355,9 @@ matching_rule_use_init( void ) mru->smru_names = mr->smr_names; mru->smru_desc = mr->smr_desc; -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, INFO, " %s (%s): ", - mru->smru_oid, - mru->smru_names ? mru->smru_names[ 0 ] : "", 0 ); -#else Debug( LDAP_DEBUG_TRACE, " %s (%s): ", mru->smru_oid, mru->smru_names ? mru->smru_names[ 0 ] : "", 0 ); -#endif at = NULL; for ( at_start( &at ); at; at_next( &at ) ) { @@ -426,19 +375,11 @@ matching_rule_use_init( void ) */ if ( applies_oids != NULL ) { mru->smru_applies_oids = applies_oids; -#ifdef NEW_LOGGING - { - char *str = ldap_matchingruleuse2str( &mru->smru_mruleuse ); - LDAP_LOG( OPERATION, INFO, "matchingRuleUse: %s\n", str, 0, 0 ); - ldap_memfree( str ); - } -#else { char *str = ldap_matchingruleuse2str( &mru->smru_mruleuse ); Debug( LDAP_DEBUG_TRACE, "matchingRuleUse: %s\n", str, 0, 0 ); ldap_memfree( str ); } -#endif mru = (MatchingRuleUse *)ber_memalloc( sizeof( MatchingRuleUse ) ); /* call-forward from MatchingRule to MatchingRuleUse */