[dovecot-cvs] dovecot/src/lib-index/maildir maildir-expunge.c,1.1,1.2 maildir-update-flags.c,1.2,1.3

cras at procontrol.fi cras at procontrol.fi
Thu May 29 18:16:00 EEST 2003


Update of /home/cvs/dovecot/src/lib-index/maildir
In directory danu:/tmp/cvs-serv20994

Modified Files:
	maildir-expunge.c maildir-update-flags.c 
Log Message:
flag updates and expunge now set the cur/ dirty-synced to avoid extra sync
after them.



Index: maildir-expunge.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/maildir/maildir-expunge.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- maildir-expunge.c	18 May 2003 12:26:06 -0000	1.1
+++ maildir-expunge.c	29 May 2003 14:15:57 -0000	1.2
@@ -1,6 +1,7 @@
 /* Copyright (C) 2002 Timo Sirainen */
 
 #include "lib.h"
+#include "ioloop.h"
 #include "maildir-index.h"
 #include "mail-index-util.h"
 
@@ -54,7 +55,7 @@
 	for (i = 0;; i++) {
 		ret = maildir_expunge_mail_file(index, rec, &fname);
 		if (ret > 0)
-			return TRUE;
+			break;
 		if (ret < 0)
 			return FALSE;
 
@@ -72,4 +73,9 @@
 			return TRUE;
 		}
 	}
+
+	/* cur/ was updated, set it dirty-synced */
+	index->maildir_cur_dirty = ioloop_time;
+	index->file_sync_stamp = ioloop_time;
+	return TRUE;
 }

Index: maildir-update-flags.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/maildir/maildir-update-flags.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- maildir-update-flags.c	18 May 2003 12:56:15 -0000	1.2
+++ maildir-update-flags.c	29 May 2003 14:15:57 -0000	1.3
@@ -1,6 +1,7 @@
 /* Copyright (C) 2002 Timo Sirainen */
 
 #include "lib.h"
+#include "ioloop.h"
 #include "maildir-index.h"
 #include "mail-index-util.h"
 
@@ -83,11 +84,21 @@
 			if (ret == -1)
 				return FALSE;
 
-			if (ret == 1 && index->maildir_keep_new) {
-				/* looks like we have some more space again,
-				   see if we could move mails from new/ to
-				   cur/ again */
-				index->maildir_keep_new = FALSE;
+			if (ret == 1) {
+				if (index->maildir_keep_new &&
+				    (rec->index_flags &
+				     INDEX_MAIL_FLAG_MAILDIR_NEW) != 0) {
+					/* looks like we have some more space
+					   again, see if we could move mails
+					   from new/ to cur/ again */
+					index->maildir_keep_new = FALSE;
+					rec->index_flags &=
+						~INDEX_MAIL_FLAG_MAILDIR_NEW;
+				}
+
+				/* cur/ was updated, set it dirty-synced */
+                                index->file_sync_stamp = ioloop_time;
+				index->maildir_cur_dirty = ioloop_time;
 			}
 
 		}



More information about the dovecot-cvs mailing list