]> git.sur5r.net Git - openldap/commitdiff
ITS#6253
authorQuanah Gibson-Mount <quanah@openldap.org>
Fri, 14 Aug 2009 23:00:10 +0000 (23:00 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 14 Aug 2009 23:00:10 +0000 (23:00 +0000)
CHANGES
servers/slapd/overlays/translucent.c

diff --git a/CHANGES b/CHANGES
index fb617155fcee818a4b41e102f97ac5f2270e5cff..04ea7085fc8d63779bd5b45e07b38e4a8ad57771 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -23,6 +23,7 @@ OpenLDAP 2.4.18 Engineering
        Fixed slapd-sql with baseObject query (ITS#6172)
        Fixed slapd-sql with empty attribute (ITS#6163)
        Added slapo-pcache olcProxyCacheOffline (ITS#6152)
+       Fixed slapo-translucent to honor sizelimit (ITS#6253)
        Fixed slapo-unique filter matching (ITS#6077)
        Fixed tools off by one error (ITS#6233)
        Fixed tools resource leaks (ITS#6145)
index 102b909418bad93d21cea013ba89bc3bd0e6f71b..6641de2838b75a7a14fd59626a053d2625484c11 100644 (file)
@@ -769,6 +769,7 @@ typedef struct trans_ctx {
        Filter *orig;
        Avlnode *list;
        int step;
+       int slimit;
 } trans_ctx;
 
 static int translucent_search_cb(Operation *op, SlapReply *rs) {
@@ -793,6 +794,8 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) {
        Debug(LDAP_DEBUG_TRACE, "==> translucent_search_cb: %s\n",
                rs->sr_entry->e_name.bv_val, 0, 0);
 
+       op->ors_slimit = tc->slimit;
+
        on = tc->on;
        ov = on->on_bi.bi_private;
 
@@ -1098,6 +1101,8 @@ static int translucent_search(Operation *op, SlapReply *rs) {
 
        if ( fr || !fl ) {
                AttributeName *attrs = op->ors_attrs;
+               tc.slimit = op->ors_slimit;
+               op->ors_slimit = SLAP_NO_LIMIT;
                op->ors_attrs = NULL;
                op->o_bd = &ov->db;
                tc.step |= RMT_SIDE;
@@ -1107,6 +1112,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_slimit = tc.slimit;
                op->ors_attrs = attrs;
                op->o_bd = tc.db;
                if ( fl ) {