[dovecot-cvs] dovecot/src/lib-storage/index/maildir maildir-sync.c, 1.29, 1.30

cras at procontrol.fi cras at procontrol.fi
Wed Jun 23 09:09:03 EEST 2004


Update of /home/cvs/dovecot/src/lib-storage/index/maildir
In directory talvi:/tmp/cvs-serv26213

Modified Files:
	maildir-sync.c 
Log Message:
partial syncing fixes



Index: maildir-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-sync.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- maildir-sync.c	19 Jun 2004 18:43:19 -0000	1.29
+++ maildir-sync.c	23 Jun 2004 06:09:00 -0000	1.30
@@ -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. */



More information about the dovecot-cvs mailing list