From 25c9f552d4cad01829c79f475d8fdb95525103b1 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 4 Aug 2008 15:02:19 -0400 Subject: [PATCH] imap: Try to allow STORE for read-only mailboxes, but not for EXAMINEd. --HG-- branch : HEAD --- src/imap/client.h | 1 + src/imap/cmd-select.c | 1 + src/imap/cmd-store.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/imap/client.h b/src/imap/client.h index 78d4520e1c..eb236de3d6 100644 --- a/src/imap/client.h +++ b/src/imap/client.h @@ -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; diff --git a/src/imap/cmd-select.c b/src/imap/cmd-select.c index 0f5b0f2d1e..f98ee9a193 100644 --- a/src/imap/cmd-select.c +++ b/src/imap/cmd-select.c @@ -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; diff --git a/src/imap/cmd-store.c b/src/imap/cmd-store.c index b12c8fa9ce..778dbd8b9c 100644 --- a/src/imap/cmd-store.c +++ b/src/imap/cmd-store.c @@ -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 -- 2.47.3