dovecot-1.2: pop3+maildir: Make sure virtual sizes always get wr...

dovecot at dovecot.org dovecot at dovecot.org
Fri Oct 10 21:21:56 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/4dc07239ddfa
changeset: 8259:4dc07239ddfa
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 10 21:21:52 2008 +0300
description:
pop3+maildir: Make sure virtual sizes always get written to dovecot-uidlist file.

diffstat:

3 files changed, 6 insertions(+), 2 deletions(-)
src/lib-storage/index/maildir/maildir-mail.c |    3 ++-
src/lib-storage/mail-storage.h               |    3 +++
src/pop3/client.c                            |    2 +-

diffs (38 lines):

diff -r 7db59981c1a0 -r 4dc07239ddfa src/lib-storage/index/maildir/maildir-mail.c
--- a/src/lib-storage/index/maildir/maildir-mail.c	Thu Oct 09 13:52:42 2008 +0300
+++ b/src/lib-storage/index/maildir/maildir-mail.c	Fri Oct 10 21:21:52 2008 +0300
@@ -219,7 +219,8 @@ static int maildir_get_pop3_state(struct
 	if (!not_pop3_only) {
 		/* either nothing is cached, or only vsize is cached. */
 		mail->pop3_state = 1;
-	} else if (vsize_dec != MAIL_CACHE_DECISION_YES) {
+	} else if (vsize_dec != MAIL_CACHE_DECISION_YES &&
+		   (mail->ibox->open_flags & MAILBOX_OPEN_POP3_SESSION) == 0) {
 		/* if virtual size isn't cached permanently,
 		   POP3 isn't being used */
 		mail->pop3_state = -1;
diff -r 7db59981c1a0 -r 4dc07239ddfa src/lib-storage/mail-storage.h
--- a/src/lib-storage/mail-storage.h	Thu Oct 09 13:52:42 2008 +0300
+++ b/src/lib-storage/mail-storage.h	Fri Oct 10 21:21:52 2008 +0300
@@ -56,6 +56,9 @@ enum mailbox_open_flags {
 	MAILBOX_OPEN_NO_INDEX_FILES	= 0x10,
 	/* Keep mailbox exclusively locked all the time while it's open */
 	MAILBOX_OPEN_KEEP_LOCKED	= 0x20,
+	/* Enable if mailbox is used for serving POP3. This allows making
+	   better caching decisions. */
+	MAILBOX_OPEN_POP3_SESSION	= 0x40
 };
 
 enum mailbox_feature {
diff -r 7db59981c1a0 -r 4dc07239ddfa src/pop3/client.c
--- a/src/pop3/client.c	Thu Oct 09 13:52:42 2008 +0300
+++ b/src/pop3/client.c	Fri Oct 10 21:21:52 2008 +0300
@@ -175,7 +175,7 @@ struct client *client_create(int fd_in, 
 
 	storage = client->inbox_ns->storage;
 
-	flags = 0;
+	flags = MAILBOX_OPEN_POP3_SESSION;
 	if (no_flag_updates)
 		flags |= MAILBOX_OPEN_KEEP_RECENT;
 	if (lock_session)


More information about the dovecot-cvs mailing list