From: Timo Sirainen Date: Fri, 4 Nov 2011 18:36:28 +0000 (+0200) Subject: imapc: Index files weren't deleted when mailbox was deleted. X-Git-Tag: 2.1.beta1~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8e69d321c4996ea341f21bdebcf7741e2df885db;p=thirdparty%2Fdovecot%2Fcore.git imapc: Index files weren't deleted when mailbox was deleted. --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 9854d9f10c..cab878648f 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -213,7 +213,8 @@ static struct mailbox_list *imapc_list_get_fs(struct imapc_mailbox_list *list) list_set.escape_char = '%'; if (mailbox_list_create(list_set.layout, list->list.ns, - &list_set, MAILBOX_LIST_FLAG_SECONDARY, + &list_set, MAILBOX_LIST_FLAG_SECONDARY | + MAILBOX_LIST_FLAG_OPTIONAL_BOXES, &list->index_list, &error) < 0) { i_error("imapc: Couldn't create %s mailbox list: %s", list_set.layout, error); @@ -505,12 +506,18 @@ static int imapc_list_delete_mailbox(struct mailbox_list *_list, const char *name) { struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list; + struct mailbox_list *fs_list = imapc_list_get_fs(list); struct imapc_command *cmd; struct imapc_simple_context ctx; cmd = imapc_list_simple_context_init(&ctx, list); imapc_command_sendf(cmd, "DELETE %s", name); imapc_simple_run(&ctx); + + if (fs_list != NULL && ctx.ret == 0) { + name = imapc_list_get_fs_name(list, name); + (void)fs_list->v.delete_mailbox(fs_list, name); + } return ctx.ret; }