]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
layout=maildir++: Fixed deleting mailboxes with mailbox=file storages (e.g. mbox)
authorTimo Sirainen <tss@iki.fi>
Sun, 4 Apr 2010 21:36:17 +0000 (00:36 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 4 Apr 2010 21:36:17 +0000 (00:36 +0300)
--HG--
branch : HEAD

src/lib-storage/list/mailbox-list-maildir.c

index 8f3b6cacbdd7b81bb169bc26cff8c7703ca5bf29..9222d7e6e2195faa506e15fd60bc5321e7bac0e6 100644 (file)
@@ -397,17 +397,11 @@ static const char *mailbox_list_maildir_get_trash_dir(struct mailbox_list *list)
 }
 
 static int
-maildir_list_delete_mailbox(struct mailbox_list *list, const char *name)
+maildir_list_delete_maildir(struct mailbox_list *list, const char *name)
 {
        const char *path, *trash_dir;
        int ret = 0;
 
-       if ((list->flags & MAILBOX_LIST_FLAG_MAILBOX_FILES) != 0) {
-               if (mailbox_list_delete_mailbox_file(list, name) < 0)
-                       return -1;
-               ret = 1;
-       }
-
        trash_dir = mailbox_list_maildir_get_trash_dir(list);
        ret = mailbox_list_delete_maildir_via_trash(list, name, trash_dir);
        if (ret < 0)
@@ -422,6 +416,19 @@ maildir_list_delete_mailbox(struct mailbox_list *list, const char *name)
                                                             path, TRUE) < 0)
                        return -1;
        }
+       return 0;
+}
+
+static int
+maildir_list_delete_mailbox(struct mailbox_list *list, const char *name)
+{
+       if ((list->flags & MAILBOX_LIST_FLAG_MAILBOX_FILES) != 0) {
+               if (mailbox_list_delete_mailbox_file(list, name) < 0)
+                       return -1;
+       } else {
+               if (maildir_list_delete_maildir(list, name) < 0)
+                       return -1;
+       }
 
        mailbox_list_delete_finish(list, name);
        return 0;