From: Timo Sirainen Date: Thu, 30 Sep 2010 15:49:16 +0000 (+0100) Subject: virtual: Allow opening virtual mailboxes that refer to non-existing mailboxes. X-Git-Tag: 2.0.5~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=755aea84bbe2b15ed7fe991f6462a93333ff571f;p=thirdparty%2Fdovecot%2Fcore.git virtual: Allow opening virtual mailboxes that refer to non-existing mailboxes. It could be intentional that not everyone has the same set of mailboxes always. --- diff --git a/src/plugins/virtual/virtual-storage.c b/src/plugins/virtual/virtual-storage.c index 1b16111d74..f11187a4fb 100644 --- a/src/plugins/virtual/virtual-storage.c +++ b/src/plugins/virtual/virtual-storage.c @@ -142,16 +142,19 @@ static int virtual_backend_box_open_failed(struct virtual_mailbox *mbox, &error); name = t_strdup(get_user_visible_mailbox_name(bbox->box)); mailbox_free(&bbox->box); - if (bbox->wildcard && - (error == MAIL_ERROR_PERM || error == MAIL_ERROR_NOTFOUND)) { - /* this mailbox wasn't explicitly specified. just skip it. */ + if (error == MAIL_ERROR_NOTFOUND) { + /* ignore this. it could be intentional. */ + if (mbox->storage->storage.user->mail_debug) { + i_debug("virtual mailbox %s: " + "Skipping non-existing mailbox %s", + mbox->box.vname, name); + } return 0; } - if (error == MAIL_ERROR_NOTFOUND) { - /* the virtual mailbox exists, we just can't open it. - change the error type. */ - error = MAIL_ERROR_NOTPOSSIBLE; + if (error == MAIL_ERROR_PERM && bbox->wildcard) { + /* this mailbox wasn't explicitly specified. just skip it. */ + return 0; } str = t_strdup_printf( "Virtual mailbox open failed because of mailbox %s: %s",