From: Kurt Zeilenga Date: Mon, 16 Sep 2002 20:48:08 +0000 (+0000) Subject: For object classes in attribute lists, use '+' (or '-') to indicate X-Git-Tag: NO_SLAP_OP_BLOCKS~970 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=cc7d1433bb4de3d808f5218e32fdaccccdd07c16;p=openldap For object classes in attribute lists, use '+' (or '-') to indicate name is an objectClass. --- diff --git a/servers/slapd/ad.c b/servers/slapd/ad.c index 360da3ca94..89cf5ab1ea 100644 --- a/servers/slapd/ad.c +++ b/servers/slapd/ad.c @@ -444,8 +444,18 @@ int ad_inlist( * if so, return attributes which the class requires/allows */ oc = attrs->an_oc; - if( oc == NULL ) { - oc = oc_bvfind( &attrs->an_name ); + if( oc == NULL && attrs->an_name.bv_val ) { + switch( attrs->an_name.bv_val[0] ) { + case '+': + case '-': { + struct berval ocname; + ocname.bv_len = attrs->an_name.bv_len - 1; + ocname.bv_val = &attrs->an_name.bv_val[1]; + oc = oc_bvfind( &ocname ); + } break; + default: + oc = oc_bvfind( &attrs->an_name ); + } attrs->an_oc = oc; } if( oc != NULL ) { diff --git a/tests/scripts/test000-rootdse b/tests/scripts/test000-rootdse index 1042459e98..be5c48e257 100755 --- a/tests/scripts/test000-rootdse +++ b/tests/scripts/test000-rootdse @@ -39,7 +39,7 @@ fi echo "Using ldapsearch to retrieve the root DSE..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -b "" -s base -h $LOCALHOST -p $PORT 'extensibleObject' > $SEARCHOUT 2>&1 + $LDAPSEARCH -b "" -s base -h $LOCALHOST -p $PORT '+extensibleObject' > $SEARCHOUT 2>&1 RC=$? if test $RC = 0 ; then break @@ -50,7 +50,7 @@ done if test $RC = 0 -a $MONITORDB = yes ; then echo "Using ldapsearch to retrieve the cn=Monitor..." - $LDAPSEARCH -b "cn=Monitor" -s base -h $LOCALHOST -p $PORT 'extensibleObject' >> $SEARCHOUT 2>&1 + $LDAPSEARCH -b "cn=Monitor" -s base -h $LOCALHOST -p $PORT -- '-extensibleObject' >> $SEARCHOUT 2>&1 RC=$? fi