]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
maildir: Avoid unnecessarily reading uidlist when opening mailbox.
authorTimo Sirainen <tss@iki.fi>
Mon, 6 Dec 2010 01:20:14 +0000 (01:20 +0000)
committerTimo Sirainen <tss@iki.fi>
Mon, 6 Dec 2010 01:20:14 +0000 (01:20 +0000)
src/lib-storage/index/maildir/maildir-sync.c

index 507a2733d61a9c7e7b8217d69fb1c5de479792a3..275e46fa647215e4dd0967d6f67d45dfde5ef98b 100644 (file)
@@ -685,16 +685,15 @@ static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
                                     new_changed_r, cur_changed_r) < 0)
                return -1;
 
-       if (have_recent_messages(ctx)) {
-               if ((mbox->box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
-                       *new_changed_r = TRUE;
-               } else if (*new_changed_r) {
-                       /* we have some recent messages and new/ has changed.
-                          if messages had been externally deleted from new/,
-                          we need to get them out of index. this requires that
-                          we make sure they weren't just moved to cur/. */
-                       *cur_changed_r = TRUE;
-               }
+       if ((mbox->box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
+               if (!*new_changed_r)
+                       *new_changed_r = have_recent_messages(ctx);
+       } else if (*new_changed_r) {
+               /* we have some recent messages and new/ has changed.
+                  if messages had been externally deleted from new/,
+                  we need to get them out of index. this requires that
+                  we make sure they weren't just moved to cur/. */
+               *cur_changed_r = have_recent_messages(ctx);
        }
 
        if (*new_changed_r || *cur_changed_r)