]> git.sur5r.net Git - openldap/commitdiff
ITS#6156 get full entry from remote side, only use attr list on final send
authorHoward Chu <hyc@openldap.org>
Mon, 8 Jun 2009 20:39:22 +0000 (20:39 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 8 Jun 2009 20:39:22 +0000 (20:39 +0000)
servers/slapd/overlays/translucent.c

index 92d9a211517b2f9d65ac73a18a5624b37edee06c..f5d3cf8e380962f1e06d9880c805fbc8e271291d 100644 (file)
@@ -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 ) {