From a75a4f4eff1dbd98275348dcd00aef783e081c2f Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 10 Jun 2006 12:31:22 +0000 Subject: [PATCH] Honour o_no_subordinate_glue Don't pollute o_req_ndn after resetting (hyc please review) --- servers/slapd/backglue.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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 ); } -- 2.39.5