From: Timo Sirainen Date: Sat, 21 Jun 2008 12:53:43 +0000 (+0300) Subject: maildir: Convert dovecot-uidlist files to new format immediately when X-Git-Tag: 1.2.alpha1~221 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9e9763d04764f094c2f1bd6f36f2d83a89bd699d;p=thirdparty%2Fdovecot%2Fcore.git maildir: Convert dovecot-uidlist files to new format immediately when opening them. Without this it's possible that entries are appended to old format uidlist in the new format. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/maildir/maildir-uidlist.c b/src/lib-storage/index/maildir/maildir-uidlist.c index f9b296430b..1a70a99624 100644 --- a/src/lib-storage/index/maildir/maildir-uidlist.c +++ b/src/lib-storage/index/maildir/maildir-uidlist.c @@ -323,6 +323,16 @@ static void maildir_uidlist_update_hdr(struct maildir_uidlist *uidlist, } mhdr = &uidlist->mbox->maildir_hdr; + if (mhdr->uidlist_mtime == 0) { + if (!uidlist->initial_read) + (void)maildir_uidlist_refresh(uidlist); + if (uidlist->version != UIDLIST_VERSION) { + /* upgrading from older verson. don't update the + uidlist times until it uses the new format */ + uidlist->recreate = TRUE; + return; + } + } mhdr->uidlist_mtime = st->st_mtime; mhdr->uidlist_mtime_nsecs = ST_MTIME_NSEC(*st); mhdr->uidlist_size = st->st_size;