More backglue fix: do not return NO_SUCH_OBJECT when the base object is located above the subordinate database in search

This commit is contained in:
Jong Hyuk Choi 2004-06-14 23:41:13 +00:00
parent 6c41f12ff1
commit 5ac9de4d36

View File

@ -349,12 +349,20 @@ glue_back_search ( Operation *op, SlapReply *rs )
op->o_req_ndn = op->o_bd->be_nsuffix[0];
rs->sr_err = op->o_bd->be_search(op, rs);
} else if (scope0 == LDAP_SCOPE_SUBTREE &&
dn_match(&op->o_bd->be_nsuffix[0], &ndn))
{
rs->sr_err = op->o_bd->be_search( op, rs );
} else if (scope0 == LDAP_SCOPE_SUBTREE &&
dnIsSuffix(&op->o_bd->be_nsuffix[0], &ndn))
{
op->o_req_dn = op->o_bd->be_suffix[0];
op->o_req_ndn = op->o_bd->be_nsuffix[0];
rs->sr_err = op->o_bd->be_search( op, rs );
if ( rs->sr_err == LDAP_NO_SUCH_OBJECT ) {
gs.err = LDAP_SUCCESS;
}
} else if (dnIsSuffix(&ndn, &op->o_bd->be_nsuffix[0])) {
rs->sr_err = op->o_bd->be_search( op, rs );