]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Try to allow STORE for read-only mailboxes, but not for EXAMINEd.
authorTimo Sirainen <tss@iki.fi>
Mon, 4 Aug 2008 19:02:19 +0000 (15:02 -0400)
committerTimo Sirainen <tss@iki.fi>
Mon, 4 Aug 2008 19:02:19 +0000 (15:02 -0400)
--HG--
branch : HEAD

src/imap/client.h
src/imap/cmd-select.c
src/imap/cmd-store.c

index 78d4520e1c609644e7e77cee969fcb13fa70ea95..eb236de3d6490175e8bf994ade89aed24b74539c 100644 (file)
@@ -116,6 +116,7 @@ struct client {
        unsigned int handling_input:1;
        unsigned int syncing:1;
        unsigned int id_logged:1;
+       unsigned int mailbox_examined:1;
        unsigned int input_skip_line:1; /* skip all the data until we've
                                           found a new line */
        unsigned int modseqs_sent_since_sync:1;
index 0f5b0f2d1e0e343871bea620c8ea8cfe27145cc2..f98ee9a19380e55a5713b9a01f21efd0cf61dd8f 100644 (file)
@@ -279,6 +279,7 @@ select_open(struct imap_select_context *ctx, const char *mailbox, bool readonly)
 
        client->mailbox = ctx->box;
        client->select_counter++;
+       client->mailbox_examined = readonly;
        client->messages_count = status.messages;
        client->recent_count = status.recent;
        client->uidvalidity = status.uidvalidity;
index b12c8fa9ceea937a54f7a2adcca00980732562b1..778dbd8b9cbe56f170774958754db44f86d4e891 100644 (file)
@@ -149,7 +149,7 @@ bool cmd_store(struct client_command_context *cmd)
        if (!store_parse_args(&ctx, ++args))
                return TRUE;
 
-       if (mailbox_is_readonly(client->mailbox)) {
+       if (client->mailbox_examined) {
                if (ctx.max_modseq < (uint64_t)-1)
                        reply = "NO CONDSTORE failed: Mailbox is read-only.";
                else