From: Howard Chu Date: Sat, 12 Sep 2020 20:38:20 +0000 (+0100) Subject: ITS#9345 syncrepl: call check_syncprov on freshly started consumer X-Git-Tag: OPENLDAP_REL_ENG_2_4_54~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4dc974c5da00fd70570e7acf9d29ddcece0dd11b;p=thirdparty%2Fopenldap.git ITS#9345 syncrepl: call check_syncprov on freshly started consumer --- diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 3040858adf..ba37f1e581 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -851,22 +851,19 @@ do_syncrep1( } ldap_pvt_thread_mutex_unlock( &si->si_cookieState->cs_mutex ); } + } - ch_free( si->si_syncCookie.octet_str.bv_val ); - slap_compose_sync_cookie( NULL, &si->si_syncCookie.octet_str, - si->si_syncCookie.ctxcsn, si->si_syncCookie.rid, - si->si_syncCookie.sid ); - } else { - /* ITS#6367: recreate the cookie so it has our SID, not our peer's */ - ch_free( si->si_syncCookie.octet_str.bv_val ); - BER_BVZERO( &si->si_syncCookie.octet_str ); - /* Look for contextCSN from syncprov overlay. */ - check_syncprov( op, si ); - if ( BER_BVISNULL( &si->si_syncCookie.octet_str )) - slap_compose_sync_cookie( NULL, &si->si_syncCookie.octet_str, - si->si_syncCookie.ctxcsn, si->si_syncCookie.rid, - si->si_syncCookie.sid ); - } + if ( !cmdline_cookie_found ) { + /* ITS#6367: recreate the cookie so it has our SID, not our peer's */ + ch_free( si->si_syncCookie.octet_str.bv_val ); + BER_BVZERO( &si->si_syncCookie.octet_str ); + /* Look for contextCSN from syncprov overlay. */ + check_syncprov( op, si ); + if ( BER_BVISNULL( &si->si_syncCookie.octet_str )) + slap_compose_sync_cookie( NULL, &si->si_syncCookie.octet_str, + si->si_syncCookie.ctxcsn, si->si_syncCookie.rid, + si->si_syncCookie.sid ); + } si->si_refreshDone = 0; Debug( LDAP_DEBUG_SYNC, "do_syncrep1: %s starting refresh (sending cookie=%s)\n",