dovecot-2.1: lib-storage: Added namespace { ignore_on_failure } ...

dovecot at dovecot.org dovecot at dovecot.org
Mon Feb 13 14:34:44 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/71201cce97b5
changeset: 14145:71201cce97b5
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Feb 13 14:34:31 2012 +0200
description:
lib-storage: Added namespace { ignore_on_failure } setting.
If the namespace can't be created for any reason, it's simply silently
skipped.

diffstat:

 src/lib-storage/mail-namespace.c        |  13 ++++++++++---
 src/lib-storage/mail-storage-settings.c |   2 ++
 src/lib-storage/mail-storage-settings.h |   1 +
 3 files changed, 13 insertions(+), 3 deletions(-)

diffs (53 lines):

diff -r 9574963a16f7 -r 71201cce97b5 src/lib-storage/mail-namespace.c
--- a/src/lib-storage/mail-namespace.c	Sun Feb 12 23:04:13 2012 +0200
+++ b/src/lib-storage/mail-namespace.c	Mon Feb 13 14:34:31 2012 +0200
@@ -280,9 +280,16 @@
 	}
 	for (i = 0; i < count; i++) {
 		if (namespace_add(user, ns_set[i], unexpanded_ns_set[i],
-				  mail_set, ns_p, error_r) < 0)
-			return -1;
-		ns_p = &(*ns_p)->next;
+				  mail_set, ns_p, error_r) < 0) {
+			if (!ns_set[i]->ignore_on_failure)
+				return -1;
+			if (mail_set->mail_debug) {
+				i_debug("Skipping namespace %s: %s",
+					ns_set[i]->prefix, *error_r);
+			}
+		} else {
+			ns_p = &(*ns_p)->next;
+		}
 	}
 
 	if (namespaces != NULL) {
diff -r 9574963a16f7 -r 71201cce97b5 src/lib-storage/mail-storage-settings.c
--- a/src/lib-storage/mail-storage-settings.c	Sun Feb 12 23:04:13 2012 +0200
+++ b/src/lib-storage/mail-storage-settings.c	Mon Feb 13 14:34:31 2012 +0200
@@ -149,6 +149,7 @@
 	DEF(SET_BOOL, hidden),
 	DEF(SET_ENUM, list),
 	DEF(SET_BOOL, subscriptions),
+	DEF(SET_BOOL, ignore_on_failure),
 
 	DEFLIST_UNIQUE(mailboxes, "mailbox", &mailbox_setting_parser_info),
 
@@ -167,6 +168,7 @@
 	.hidden = FALSE,
 	.list = "yes:no:children",
 	.subscriptions = TRUE,
+	.ignore_on_failure = FALSE,
 
 	.mailboxes = ARRAY_INIT
 };
diff -r 9574963a16f7 -r 71201cce97b5 src/lib-storage/mail-storage-settings.h
--- a/src/lib-storage/mail-storage-settings.h	Sun Feb 12 23:04:13 2012 +0200
+++ b/src/lib-storage/mail-storage-settings.h	Mon Feb 13 14:34:31 2012 +0200
@@ -51,6 +51,7 @@
 	bool hidden;
 	const char *list;
 	bool subscriptions;
+	bool ignore_on_failure;
 
 	ARRAY_DEFINE(mailboxes, struct mailbox_settings *);
 	struct mail_user_settings *user_set;


More information about the dovecot-cvs mailing list