From: Kurt Zeilenga Date: Wed, 16 Apr 2003 21:42:52 +0000 (+0000) Subject: Add associated matching rule checks X-Git-Tag: OPENLDAP_REL_ENG_2_2_0ALPHA~342 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d2db0733ab4b6b25ca4a0242ea7a8ea529010c9a;p=openldap Add associated matching rule checks --- diff --git a/servers/slapd/mr.c b/servers/slapd/mr.c index 1c5d95d4e2..bc0a1777f1 100644 --- a/servers/slapd/mr.c +++ b/servers/slapd/mr.c @@ -240,6 +240,41 @@ register_matching_rule( return -1; } + + if (( def->mrd_usage & SLAP_MR_EQUALITY ) && + (( def->mrd_usage & SLAP_MR_SUBTYPE_MASK ) == SLAP_MR_NONE )) + { + 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", + 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", + def->mrd_associated, def->mrd_desc, 0 ); +#endif + return -1; + } } mr = ldap_str2matchingrule( def->mrd_desc, &code, &err, @@ -255,9 +290,10 @@ register_matching_rule( ldap_scherr2str(code), err, def->mrd_desc ); #endif - return( -1 ); + return -1; } + code = mr_add( mr, def, amr, &err ); ldap_memfree( mr ); @@ -273,10 +309,10 @@ register_matching_rule( scherr2str(code), err, def->mrd_desc ); #endif - return( -1 ); + return -1; } - return( 0 ); + return 0; } void