dovecot-2.0: virtual: Allow opening virtual mailboxes that refer...

dovecot at dovecot.org dovecot at dovecot.org
Thu Sep 30 18:49:21 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/32f68d621f1d
changeset: 12210:32f68d621f1d
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Sep 30 16:49:16 2010 +0100
description:
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.

diffstat:

 src/plugins/virtual/virtual-storage.c |  17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diffs (30 lines):

diff -r a7a953486a0b -r 32f68d621f1d src/plugins/virtual/virtual-storage.c
--- 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",


More information about the dovecot-cvs mailing list