Mercurial > dovecot > core-2.2
changeset 12210:32f68d621f1d
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.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 30 Sep 2010 16:49:16 +0100 |
parents | a7a953486a0b |
children | dfa2b49d8298 |
files | src/plugins/virtual/virtual-storage.c |
diffstat | 1 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-storage.c Thu Sep 30 16:05:57 2010 +0100 +++ b/src/plugins/virtual/virtual-storage.c Thu Sep 30 16:49:16 2010 +0100 @@ -142,16 +142,19 @@ &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",