mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#7052 ignore Adds with too old entryCSN
This commit is contained in:
parent
5584e5b98d
commit
ba4366eae0
@ -2820,6 +2820,23 @@ syncrepl_entry(
|
|||||||
*/
|
*/
|
||||||
op->o_csn = a->a_vals[0];
|
op->o_csn = a->a_vals[0];
|
||||||
freecsn = 0;
|
freecsn = 0;
|
||||||
|
/* There was no cookie CSN attached to this op,
|
||||||
|
* make sure it's new enough
|
||||||
|
*/
|
||||||
|
if ( !syncCSN ) {
|
||||||
|
int i, sid = slap_parse_csn_sid( &a->a_vals[0] );
|
||||||
|
for ( i = 0; i<si->si_cookieState->cs_num; i++ ) {
|
||||||
|
if ( sid < si->si_cookieState->cs_sids[i] )
|
||||||
|
break;
|
||||||
|
if ( sid == si->si_cookieState->cs_sids[i] ) {
|
||||||
|
if ( ber_bvcmp( &a->a_vals[0], &si->si_cookieState->cs_vals[i] ) <= 0 ) {
|
||||||
|
Debug( LDAP_DEBUG_SYNC, "do_syncrep2: %s entryCSN too old, ignoring %s (%s)\n",
|
||||||
|
si->si_ridtxt, a->a_vals[0].bv_val, entry->e_name.bv_val );
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
retry_add:;
|
retry_add:;
|
||||||
|
Loading…
Reference in New Issue
Block a user