diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 9ea7b55a793c8d3ba0f57b2ade4c795384ce590d..ca9326837ee1923d81b74768f21a113a65c0d29b 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -1548,7 +1548,8 @@ done: if ( msg ) ldap_msgfree( msg ); - if ( rc && rc != LDAP_SYNC_REFRESH_REQUIRED && si->si_ld ) { + if ( rc ) { + /* never reuse existing connection */ if ( si->si_conn ) { connection_client_stop( si->si_conn ); si->si_conn = NULL; @@ -1661,6 +1662,7 @@ do_syncrepl( if ( !si->si_schemachecking ) op->o_no_schema_check = 1; +reload: /* Establish session, do search */ if ( !si->si_ld ) { si->si_refreshDelete = 0; @@ -1678,7 +1680,6 @@ do_syncrepl( rc = do_syncrep1( op, si ); } -reload: /* Process results */ if ( rc == LDAP_SUCCESS ) { ldap_get_option( si->si_ld, LDAP_OPT_DESC, &s ); @@ -1689,11 +1690,6 @@ reload: op->o_ndn = op->o_bd->be_rootndn; rc = do_syncrep2( op, si ); if ( rc == LDAP_SYNC_REFRESH_REQUIRED ) { - 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 ); - rc = ldap_sync_search( si, op->o_tmpmemctx ); goto reload; }