From: Kurt Zeilenga Date: Tue, 7 Sep 2004 21:10:28 +0000 (+0000) Subject: Add entryDN MRA support. This is intended to be used: X-Git-Tag: OPENLDAP_REL_ENG_2_3_0ALPHA~561 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ee66a01b8c7dc0c1bd7838c0f6137fad03595ad1;p=openldap Add entryDN MRA support. This is intended to be used: (entryDN:isSubordinate:=dc=example,dc=net) isSubordinate should be implemented in component matching terms --- diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c index 29cb5b9085..96d856dca1 100644 --- a/servers/slapd/filterentry.c +++ b/servers/slapd/filterentry.c @@ -182,6 +182,25 @@ static int test_mra_filter( return LDAP_INSUFFICIENT_ACCESS; } + if ( mra->ma_desc == slap_schema.si_ad_entryDN ) { + struct berval *bv; + int ret, rc; + const char *text; + + if( mra->ma_rule == a->a_desc->ad_type->sat_equality ) { + bv = &e->e_nname; + } else { + bv = &e->e_name; + } + + rc = value_match( &ret, a->a_desc, mra->ma_rule, 0, + bv, &mra->ma_value, &text ); + + if( rc != LDAP_SUCCESS ) return rc; + if ( ret == 0 ) return LDAP_COMPARE_TRUE; + return LDAP_COMPARE_FALSE; + } + for(a = attrs_find( e->e_attrs, mra->ma_desc ); a != NULL; a = attrs_find( a->a_next, mra->ma_desc ) )