]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/translucent.c
ITS#7873 check for pauses
[openldap] / servers / slapd / overlays / translucent.c
index 66f751205c4c30f99dd3683eaf1b7c78c11799dc..379adc1b807992096c861fe31b4f1fc688369597 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2004-2013 The OpenLDAP Foundation.
+ * Copyright 2004-2014 The OpenLDAP Foundation.
  * Portions Copyright 2005 Symas Corporation.
  * All rights reserved.
  *
@@ -1070,6 +1070,9 @@ static int translucent_search(Operation *op, SlapReply *rs) {
        struct berval fbv;
        int rc = 0;
 
+       if ( op->o_managedsait > SLAP_CONTROL_IGNORED )
+               return SLAP_CB_CONTINUE;
+
        Debug(LDAP_DEBUG_TRACE, "==> translucent_search: <%s> %s\n",
                op->o_req_dn.bv_val, op->ors_filterstr.bv_val, 0);
 
@@ -1109,7 +1112,8 @@ 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 = tc.attrs;
+               if ( op->ors_attrs == slap_anlist_all_attributes )
+                       op->ors_attrs = tc.attrs;
                op->o_bd = tc.db;
                if ( fl ) {
                        op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );