From: Timo Sirainen Date: Fri, 10 Oct 2008 18:21:52 +0000 (+0300) Subject: pop3+maildir: Make sure virtual sizes always get written to dovecot-uidlist file. X-Git-Tag: 1.2.alpha3~56 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=236bedf76e31651ea9fca63fbdc25be673819526;p=thirdparty%2Fdovecot%2Fcore.git pop3+maildir: Make sure virtual sizes always get written to dovecot-uidlist file. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/maildir/maildir-mail.c b/src/lib-storage/index/maildir/maildir-mail.c index 996c084189..e2ebd5dbb3 100644 --- a/src/lib-storage/index/maildir/maildir-mail.c +++ b/src/lib-storage/index/maildir/maildir-mail.c @@ -219,7 +219,8 @@ static int maildir_get_pop3_state(struct index_mail *mail) 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 --git a/src/lib-storage/mail-storage.h b/src/lib-storage/mail-storage.h index cf851e527d..be3158205f 100644 --- a/src/lib-storage/mail-storage.h +++ b/src/lib-storage/mail-storage.h @@ -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 --git a/src/pop3/client.c b/src/pop3/client.c index 4220b157cf..0d5e679356 100644 --- a/src/pop3/client.c +++ b/src/pop3/client.c @@ -175,7 +175,7 @@ struct client *client_create(int fd_in, int fd_out, struct mail_user *user) storage = client->inbox_ns->storage; - flags = 0; + flags = MAILBOX_OPEN_POP3_SESSION; if (no_flag_updates) flags |= MAILBOX_OPEN_KEEP_RECENT; if (lock_session)