mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-13 14:27:59 +08:00
ITS#5231 don't maintain presentlist for entries added in Persist phase
This commit is contained in:
parent
1569fae109
commit
82d4844b81
@ -93,6 +93,7 @@ typedef struct syncinfo_s {
|
||||
int si_tlimit;
|
||||
int si_refreshDelete;
|
||||
int si_refreshPresent;
|
||||
int si_refreshDone;
|
||||
int si_syncdata;
|
||||
int si_logstate;
|
||||
int si_conn_setup;
|
||||
@ -628,6 +629,8 @@ do_syncrep1(
|
||||
ldap_pvt_thread_mutex_unlock( &si->si_cookieState->cs_mutex );
|
||||
}
|
||||
|
||||
si->si_refreshDone = 0;
|
||||
|
||||
rc = ldap_sync_search( si, op->o_tmpmemctx );
|
||||
|
||||
if( rc != LDAP_SUCCESS ) {
|
||||
@ -716,7 +719,6 @@ do_syncrep2(
|
||||
struct timeval tout = { 0, 0 };
|
||||
|
||||
int refreshDeletes = 0;
|
||||
int refreshDone = 1;
|
||||
BerVarray syncUUIDs = NULL;
|
||||
ber_tag_t si_tag;
|
||||
|
||||
@ -973,10 +975,14 @@ do_syncrep2(
|
||||
slap_parse_sync_cookie( &syncCookie, NULL );
|
||||
}
|
||||
}
|
||||
/* Defaults to TRUE */
|
||||
if ( ber_peek_tag( ber, &len ) ==
|
||||
LDAP_TAG_REFRESHDONE )
|
||||
{
|
||||
ber_scanf( ber, "b", &refreshDone );
|
||||
ber_scanf( ber, "b", &si->si_refreshDone );
|
||||
} else
|
||||
{
|
||||
si->si_refreshDone = 1;
|
||||
}
|
||||
ber_scanf( ber, /*"{"*/ "}" );
|
||||
break;
|
||||
@ -1888,7 +1894,7 @@ syncrepl_entry(
|
||||
si->si_ridtxt, syncrepl_state2str( syncstate ), 0 );
|
||||
|
||||
if (( syncstate == LDAP_SYNC_PRESENT || syncstate == LDAP_SYNC_ADD ) ) {
|
||||
if ( !si->si_refreshPresent ) {
|
||||
if ( !si->si_refreshPresent && !si->si_refreshDone ) {
|
||||
syncuuid_inserted = avl_presentlist_insert( si, syncUUID );
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user