Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7930:b4286cde68d0 HEAD
CONDSTORE: Return HIGHESTMODSEQ correctly even if indexes are in memory.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 21 Jun 2008 14:03:59 +0300 |
parents | 55d1a2bf4573 |
children | 502cfdcc5650 |
files | src/imap/cmd-select.c src/lib-storage/index/index-status.c src/lib-storage/mail-storage.h |
diffstat | 3 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/imap/cmd-select.c Sat Jun 21 13:48:42 2008 +0300 +++ b/src/imap/cmd-select.c Sat Jun 21 14:03:59 2008 +0300 @@ -305,7 +305,7 @@ 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 {
--- a/src/lib-storage/index/index-status.c Sat Jun 21 13:48:42 2008 +0300 +++ b/src/lib-storage/index/index-status.c Sat Jun 21 14:03:59 2008 +0300 @@ -26,8 +26,8 @@ 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); }
--- a/src/lib-storage/mail-storage.h Sat Jun 21 13:48:42 2008 +0300 +++ b/src/lib-storage/mail-storage.h Sat Jun 21 14:03:59 2008 +0300 @@ -193,6 +193,8 @@ /* 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 {