Merge branch 'master' of ssh://git-master.openldap.org/~git/git/openldap

This commit is contained in:
Rein Tollevik 2011-06-27 14:21:35 +02:00
commit ffa8eca405

View File

@ -2548,6 +2548,21 @@ syncprov_op_search( Operation *op, SlapReply *rs )
i++;
}
if (srs->sr_state.numcsns != numcsns) {
/* consumer doesn't have the right number of CSNs */
changed = SS_CHANGED;
if ( srs->sr_state.ctxcsn ) {
ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx );
srs->sr_state.ctxcsn = NULL;
}
if ( srs->sr_state.sids ) {
slap_sl_free( srs->sr_state.sids, op->o_tmpmemctx );
srs->sr_state.sids = NULL;
}
srs->sr_state.numcsns = 0;
goto shortcut;
}
/* Find the smallest CSN which differs from contextCSN */
mincsn.bv_len = 0;
maxcsn.bv_len = 0;
@ -2594,7 +2609,6 @@ bailout:
}
/* If nothing has changed, shortcut it */
if ( srs->sr_state.numcsns == numcsns ) {
if ( !changed && !dirty ) {
do_present = 0;
no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) {
@ -2612,10 +2626,7 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) {
}
goto shortcut;
}
} else {
/* consumer doesn't have the right number of CSNs */
changed = SS_CHANGED;
}
/* Do we have a sessionlog for this search? */
sl=si->si_logs;
if ( sl ) {