From: Luke Howard Date: Sat, 10 Jun 2006 12:31:22 +0000 (+0000) Subject: Honour o_no_subordinate_glue X-Git-Tag: OPENLDAP_REL_ENG_2_4_3ALPHA~9^2~155 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a75a4f4eff1dbd98275348dcd00aef783e081c2f;p=openldap Honour o_no_subordinate_glue Don't pollute o_req_ndn after resetting (hyc please review) --- diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c index 83cab67b52..434d29e643 100644 --- a/servers/slapd/backglue.c +++ b/servers/slapd/backglue.c @@ -347,6 +347,8 @@ glue_op_search ( Operation *op, SlapReply *rs ) continue; if (!dnIsSuffix(&btmp->be_nsuffix[0], &b1->be_nsuffix[0])) continue; + if (get_no_subordinate_glue(op) && btmp != b1) + continue; if (tlimit0 != SLAP_NO_LIMIT) { op->o_time = slap_get_time(); @@ -382,6 +384,9 @@ glue_op_search ( Operation *op, SlapReply *rs ) } else if (scope0 == LDAP_SCOPE_SUBTREE && dn_match(&op->o_bd->be_nsuffix[0], &ndn)) { + op->ors_scope = LDAP_SCOPE_SUBTREE; + op->o_req_dn = dn; + op->o_req_ndn = ndn; rs->sr_err = glue_sub_search( op, rs, b0, on ); } else if (scope0 == LDAP_SCOPE_SUBTREE && @@ -397,6 +402,9 @@ glue_op_search ( Operation *op, SlapReply *rs ) op->o_req_ndn = ndn; } else if (dnIsSuffix(&ndn, &op->o_bd->be_nsuffix[0])) { + op->ors_scope = scope0; + op->o_req_dn = dn; + op->o_req_ndn = ndn; rs->sr_err = glue_sub_search( op, rs, b0, on ); }