From: Howard Chu Date: Mon, 8 Jun 2009 20:39:22 +0000 (+0000) Subject: ITS#6156 get full entry from remote side, only use attr list on final send X-Git-Tag: ACLCHECK_0~505 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0d497278e93733bc009af341505eff6bbc777b5d;p=openldap ITS#6156 get full entry from remote side, only use attr list on final send --- diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index 92d9a21151..f5d3cf8e38 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -1110,6 +1110,8 @@ static int translucent_search(Operation *op, SlapReply *rs) { op->o_callback = &cb; if ( fr || !fl ) { + AttributeName *attrs = op->ors_attrs; + op->ors_attrs = NULL; op->o_bd = &ov->db; tc.step |= RMT_SIDE; if ( fl ) { @@ -1118,6 +1120,7 @@ static int translucent_search(Operation *op, SlapReply *rs) { filter2bv_x( op, fr, &op->ors_filterstr ); } rc = ov->db.bd_info->bi_op_search(op, rs); + op->ors_attrs = attrs; op->o_bd = tc.db; if ( fl ) { op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx ); @@ -1133,6 +1136,8 @@ static int translucent_search(Operation *op, SlapReply *rs) { op->ors_filterstr = fbv; op->ors_filter = tc.orig; op->o_callback = cb.sc_next; + rs->sr_attrs = op->ors_attrs; + /* Send out anything remaining on the list and finish */ if ( tc.step & USE_LIST ) { if ( tc.list ) {