For object classes in attribute lists, use '+' (or '-') to indicate

name is an objectClass.
This commit is contained in:
Kurt Zeilenga 2002-09-16 20:48:08 +00:00
parent a1da292989
commit cc7d1433bb
2 changed files with 14 additions and 4 deletions

View File

@ -444,8 +444,18 @@ int ad_inlist(
* if so, return attributes which the class requires/allows * if so, return attributes which the class requires/allows
*/ */
oc = attrs->an_oc; oc = attrs->an_oc;
if( oc == NULL ) { if( oc == NULL && attrs->an_name.bv_val ) {
oc = oc_bvfind( &attrs->an_name ); 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; attrs->an_oc = oc;
} }
if( oc != NULL ) { if( oc != NULL ) {

View File

@ -39,7 +39,7 @@ fi
echo "Using ldapsearch to retrieve the root DSE..." echo "Using ldapsearch to retrieve the root DSE..."
for i in 0 1 2 3 4 5; do 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=$? RC=$?
if test $RC = 0 ; then if test $RC = 0 ; then
break break
@ -50,7 +50,7 @@ done
if test $RC = 0 -a $MONITORDB = yes ; then if test $RC = 0 -a $MONITORDB = yes ; then
echo "Using ldapsearch to retrieve the cn=Monitor..." 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=$? RC=$?
fi fi