]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: If selected mailbox is DELETEd, disconnect client.
authorTimo Sirainen <tss@iki.fi>
Thu, 28 Jun 2012 03:32:00 +0000 (06:32 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 28 Jun 2012 03:32:00 +0000 (06:32 +0300)
src/imap/cmd-delete.c

index f1d1445b3cda7dcd7f4149f480b915b20bf91934..6066f1529a194d45520ae51dbf73a70f0437f2c0 100644 (file)
@@ -10,6 +10,7 @@ bool cmd_delete(struct client_command_context *cmd)
        struct mailbox *box;
        const char *name, *errstr;
        enum mail_error error;
+       bool disconnect = FALSE;
 
        /* <mailbox> */
        if (!client_read_string_args(cmd, 1, &name))
@@ -31,6 +32,7 @@ bool cmd_delete(struct client_command_context *cmd)
                /* deleting selected mailbox. close it first */
                client_search_updates_free(client);
                mailbox_free(&client->mailbox);
+               disconnect = TRUE;
        }
 
        if (mailbox_delete(box) == 0)
@@ -45,5 +47,10 @@ bool cmd_delete(struct client_command_context *cmd)
                }
        }
        mailbox_free(&box);
+
+       if (disconnect) {
+               client_disconnect_with_error(cmd->client,
+                       "Selected mailbox was deleted, have to disconnect.");
+       }
        return TRUE;
 }