From d9dac0c8bcbea2b0f112a12eb41b3a4c297330b6 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 9 Apr 2008 12:01:11 +0000 Subject: [PATCH] ITS#5376, #5378 delta-sync should fallback in other cases too --- servers/slapd/syncrepl.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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 ) -- 2.39.5