]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
CONDSTORE: Return HIGHESTMODSEQ correctly even if indexes are in memory.
authorTimo Sirainen <tss@iki.fi>
Sat, 21 Jun 2008 11:03:59 +0000 (14:03 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 21 Jun 2008 11:03:59 +0000 (14:03 +0300)
--HG--
branch : HEAD

src/imap/cmd-select.c
src/lib-storage/index/index-status.c
src/lib-storage/mail-storage.h

index 597cfdf3d3de92a583b47ea11fb53692c1e3e756..0f5b0f2d1e0e343871bea620c8ea8cfe27145cc2 100644 (file)
@@ -305,7 +305,7 @@ select_open(struct imap_select_context *ctx, const char *mailbox, bool readonly)
                         t_strdup_printf("* OK [UIDNEXT %u] Predicted next UID",
                                         status.uidnext));
 
-       if (status.highest_modseq == 0) {
+       if (status.nonpermanent_modseqs) {
                client_send_line(client,
                                 "* OK [NOMODSEQ] No permanent modsequences");
        } else {
index 05fadce66a559392175edfb8e226b65101068712..dde9cbb5ed52da1a1d572cf630cd86683ce5a1ac 100644 (file)
@@ -26,8 +26,8 @@ void index_storage_get_status(struct mailbox *box,
        status_r->unseen = hdr->messages_count - hdr->seen_messages_count;
        status_r->uidvalidity = hdr->uid_validity;
        status_r->uidnext = hdr->next_uid;
-       if ((items & STATUS_HIGHESTMODSEQ) != 0 &&
-           !mail_index_is_in_memory(ibox->index)) {
+       status_r->nonpermanent_modseqs = mail_index_is_in_memory(ibox->index);
+       if ((items & STATUS_HIGHESTMODSEQ) != 0) {
                status_r->highest_modseq =
                        mail_index_modseq_get_highest(ibox->view);
        }
index 359fe0841fa928cc0aa68ca43b8867d2f1a115ba..30036529f3496480f761280c277ff2d218bfa831 100644 (file)
@@ -193,6 +193,8 @@ struct mailbox_status {
 
        /* There are expunges that haven't been synced yet */
        unsigned int sync_delayed_expunges:1;
+       /* Modseqs aren't permanent (index is in memory) */
+       unsigned int nonpermanent_modseqs:1;
 };
 
 struct mailbox_sync_rec {