From: Howard Chu Date: Wed, 9 Apr 2008 12:01:11 +0000 (+0000) Subject: ITS#5376, #5378 delta-sync should fallback in other cases too X-Git-Tag: OPENLDAP_REL_ENG_2_4_9~20^2~29 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d9dac0c8bcbea2b0f112a12eb41b3a4c297330b6;p=openldap ITS#5376, #5378 delta-sync should fallback in other cases too --- diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 5be4424468..93ff10fc9b 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -834,10 +834,17 @@ do_syncrep2( syncCookie.ctxcsn ) { rc = syncrepl_updateCookie( si, op, psub, &syncCookie ); - } else if ( rc == LDAP_NO_SUCH_OBJECT ) { - rc = LDAP_SYNC_REFRESH_REQUIRED; - si->si_logstate = SYNCLOG_FALLBACK; - ldap_abandon_ext( si->si_ld, si->si_msgid, NULL, NULL ); + } else switch ( rc ) { + case LDAP_ALREADY_EXISTS: + case LDAP_NO_SUCH_OBJECT: + case LDAP_NO_SUCH_ATTRIBUTE: + case LDAP_TYPE_OR_VALUE_EXISTS: + rc = LDAP_SYNC_REFRESH_REQUIRED; + si->si_logstate = SYNCLOG_FALLBACK; + ldap_abandon_ext( si->si_ld, si->si_msgid, NULL, NULL ); + break; + default: + break; } } else if ( ( rc = syncrepl_message_to_entry( si, op, msg, &modlist, &entry, syncstate ) ) == LDAP_SUCCESS )