changeset 2228:d19ba01fb5cd HEAD

partial syncing fixes
author Timo Sirainen <tss@iki.fi>
date Wed, 23 Jun 2004 09:09:00 +0300
parents a0ad3f6fb90f
children 201442d45cac
files src/lib-storage/index/maildir/maildir-sync.c
diffstat 1 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-sync.c	Wed Jun 23 06:31:52 2004 +0300
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Wed Jun 23 09:09:00 2004 +0300
@@ -642,10 +642,6 @@
 
 	__again:
 		seq++;
-		if ((uflags & MAILDIR_UIDLIST_REC_FLAG_NONSYNCED) != 0) {
-			/* partial syncing */
-			continue;
-		}
 
 		if (seq > hdr->messages_count) {
 			if (uid < hdr->next_uid) {
@@ -659,6 +655,11 @@
 				   check is that this one happens when messages
 				   are expunged from the end */
 				if ((uflags &
+				    MAILDIR_UIDLIST_REC_FLAG_NONSYNCED) != 0) {
+					/* partial syncing */
+					continue;
+				}
+				if ((uflags &
 				     MAILDIR_UIDLIST_REC_FLAG_RACING) != 0) {
 					mail_storage_set_critical(
 						ibox->box.storage,
@@ -703,6 +704,12 @@
 			   committed changes to index. so, this message
 			   shouldn't actually exist. mark it racy and check
 			   in next sync. */
+			if ((uflags &
+			    MAILDIR_UIDLIST_REC_FLAG_NONSYNCED) != 0) {
+				/* partial syncing */
+				seq--;
+				continue;
+			}
 			if ((uflags & MAILDIR_UIDLIST_REC_FLAG_RACING) != 0) {
 				mail_storage_set_critical(ibox->box.storage,
 					"Maildir %s sync: UID inserted in the "
@@ -722,6 +729,11 @@
 			continue;
 		}
 
+		if ((uflags & MAILDIR_UIDLIST_REC_FLAG_NONSYNCED) != 0) {
+			/* partial syncing */
+			continue;
+		}
+
 		if ((rec->flags & MAIL_INDEX_MAIL_FLAG_DIRTY) != 0) {
 			/* we haven't been able to update maildir with this
 			   record's flag changes. don't sync them. */