From 37a294eaede5c1f478173fe917818b463df496bf Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Wed, 16 Apr 2008 17:52:41 +0000 Subject: [PATCH 1/1] ITS#5376,ITS#5378 --- CHANGES | 2 ++ servers/slapd/syncrepl.c | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index af0d0538c7..2d699c781f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ OpenLDAP 2.3 Change Log OpenLDAP 2.3.42 Engineering + Fixed slapd delta-syncrepl refresh mode (ITS#5376) + Fixed slapd delta-syncrepl resync (ITS#5378) Fixed slapd pagedresults stale state (ITS#5409) Fixed slapd-ldap connection handler (ITS#5404) diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index aeeafdf549..0b9018bded 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -722,10 +722,17 @@ do_syncrep2( if (( rc = syncrepl_message_to_op( si, op, msg )) == LDAP_SUCCESS && !BER_BVISNULL( &syncCookie.ctxcsn ) ) { 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.2