mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
ITS#9282 Do not resuscitate entries we already deleted
This commit is contained in:
parent
da610c050c
commit
8d428f3163
1 changed files with 19 additions and 0 deletions
|
|
@ -4111,6 +4111,25 @@ syncrepl_entry(
|
|||
}
|
||||
}
|
||||
retry_add:;
|
||||
if ( !BER_BVISNULL( &op->o_csn ) ) {
|
||||
/* Check we're not covered by current contextCSN */
|
||||
int i, sid = slap_parse_csn_sid( &op->o_csn );
|
||||
ldap_pvt_thread_mutex_lock( &si->si_cookieState->cs_mutex );
|
||||
for ( i=0;
|
||||
i < si->si_cookieState->cs_num &&
|
||||
sid <= si->si_cookieState->cs_sids[i];
|
||||
i++ ) {
|
||||
if ( si->si_cookieState->cs_sids[i] == sid &&
|
||||
ber_bvcmp( &op->o_csn, &si->si_cookieState->cs_vals[i] ) <= 0 ) {
|
||||
Debug( LDAP_DEBUG_SYNC, "syncrepl_entry: %s "
|
||||
"entry '%s' csn=%s not new enough, ignored\n",
|
||||
si->si_ridtxt, entry->e_name.bv_val, op->o_csn.bv_val );
|
||||
ldap_pvt_thread_mutex_unlock( &si->si_cookieState->cs_mutex );
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
ldap_pvt_thread_mutex_unlock( &si->si_cookieState->cs_mutex );
|
||||
}
|
||||
if ( BER_BVISNULL( &dni.dn ) ) {
|
||||
SlapReply rs_add = {REP_RESULT};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue