Mercurial > dovecot > core-2.2
changeset 9651:5024551304d9 HEAD
imap delete: Use mailbox_backends_equal() for finding if we're deleting selected mailbox.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 24 Jul 2009 15:58:08 -0400 |
parents | 6b6d6e094674 |
children | 1644c25bfbef |
files | src/imap/cmd-delete.c |
diffstat | 1 files changed, 5 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/imap/cmd-delete.c Fri Jul 24 15:56:21 2009 -0400 +++ b/src/imap/cmd-delete.c Fri Jul 24 15:58:08 2009 -0400 @@ -7,7 +7,6 @@ { struct client *client = cmd->client; struct mail_namespace *ns; - struct mail_storage *storage; struct mailbox *mailbox; const char *name; @@ -25,16 +24,14 @@ if (ns == NULL) return TRUE; - mailbox = client->mailbox; - if (mailbox != NULL && mailbox_get_namespace(mailbox) == ns && - strcmp(mailbox_get_name(mailbox), name) == 0) { + mailbox = mailbox_alloc(ns->list, name, NULL, 0); + if (client->mailbox != NULL && + mailbox_backends_equal(mailbox, client->mailbox)) { /* deleting selected mailbox. close it first */ client_search_updates_free(client); - storage = mailbox_get_storage(mailbox); - client->mailbox = NULL; - - mailbox_close(&mailbox); + mailbox_close(&client->mailbox); } + mailbox_close(&mailbox); if ((client->workarounds & WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 && *name != '\0' &&