]> git.sur5r.net Git - openldap/commitdiff
ITS#5470 also ignore presentlist if number of CSNs don't match
authorHoward Chu <hyc@openldap.org>
Sat, 19 Apr 2008 23:27:49 +0000 (23:27 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 19 Apr 2008 23:27:49 +0000 (23:27 +0000)
servers/slapd/syncrepl.c

index 99e506908a19aaee0f423144e4735df60765b13d..df7c456b01ca0b3c4b88e42a3a4de6a747d9a0d8 100644 (file)
@@ -946,7 +946,8 @@ do_syncrep2(
                                 *      2) on err policy : stop service, stop sync, retry
                                 */
                                if ( refreshDeletes == 0 && match < 0 &&
-                                       err == LDAP_SUCCESS )
+                                       err == LDAP_SUCCESS &&
+                                       syncCookie_req.numcsns == syncCookie.numcsns )
                                {
                                        syncrepl_del_nonpresent( op, si, NULL,
                                                &syncCookie.ctxcsn[m] );
@@ -1095,7 +1096,8 @@ do_syncrep2(
                                }
 
                                if ( match < 0 ) {
-                                       if ( si->si_refreshPresent == 1 ) {
+                                       if ( si->si_refreshPresent == 1 &&
+                                               syncCookie_req.numcsns == syncCookie.numcsns ) {
                                                syncrepl_del_nonpresent( op, si, NULL,
                                                        &syncCookie.ctxcsn[m] );
                                        }