From a53019e6881024745b6107cbae1a47bc4a79e3e1 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 8 Apr 2010 17:16:38 +0000 Subject: [PATCH] don't set dummy cookie when dealing with last database (ITS#6507) --- servers/slapd/backglue.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c index 2f7908c348..8911f1595e 100644 --- a/servers/slapd/backglue.c +++ b/servers/slapd/backglue.c @@ -585,12 +585,13 @@ glue_op_search ( Operation *op, SlapReply *rs ) tag = ber_scanf( ber, "{im}", &size, &cookie ); assert( tag != LBER_ERROR ); - if ( BER_BVISEMPTY( &cookie ) ) { + if ( BER_BVISEMPTY( &cookie ) && op->o_bd != gi->gi_n[0].gn_be ) { /* delete old, create new cookie with NOID */ PagedResultsCookie respcookie = (PagedResultsCookie)NOID; ber_len_t oidlen = strlen( gs.ctrls[c]->ldctl_oid ); LDAPControl *newctrl; + /* it's next database's turn */ if ( btmp == b0 ) { op->o_conn->c_pagedresults_state.ps_be = gi->gi_n[gi->gi_nodes - 1].gn_be; @@ -619,7 +620,8 @@ glue_op_search ( Operation *op, SlapReply *rs ) ber_free_buf( ber ); - } else { + } else if ( op->o_bd != gi->gi_n[0].gn_be ) { + /* if cookie not empty, it's again this database's turn */ op->o_conn->c_pagedresults_state.ps_be = op->o_bd; } } -- 2.39.5