changeset 22873:61143106dee6

doveadm sync/backup: Don't override BROKENCHAR if it's already set This allows migrating invalid mailbox names by specifying BROKENCHAR. Previously it would always try to use \003 control character, which isn't valid character in mailbox names so the mailbox creation would fail.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 16 Feb 2018 16:03:46 +0200
parents b47c291ae2af
children caa0b245c353
files src/doveadm/doveadm-dsync.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/doveadm-dsync.c	Mon Feb 26 18:20:30 2018 +0200
+++ b/src/doveadm/doveadm-dsync.c	Fri Feb 16 16:03:46 2018 +0200
@@ -323,8 +323,10 @@
 	struct mail_namespace *ns;
 
 	user->dsyncing = TRUE;
-	for (ns = user->namespaces; ns != NULL; ns = ns->next)
-		ns->list->set.broken_char = DSYNC_LIST_BROKEN_CHAR;
+	for (ns = user->namespaces; ns != NULL; ns = ns->next) {
+		if (ns->list->set.broken_char == '\0')
+			ns->list->set.broken_char = DSYNC_LIST_BROKEN_CHAR;
+	}
 }
 
 static bool paths_are_equal(struct mail_user *user1, struct mail_user *user2,