changeset 8384:c6482b5cdea1 HEAD

deliver -m: Assume the given mailbox name is in UTF-8 format.
author Timo Sirainen <tss@iki.fi>
date Sat, 01 Nov 2008 22:49:14 +0200
parents 8815fc1099c8
children 63f7e1ad7646
files src/deliver/Makefile.am src/deliver/deliver.c
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/deliver/Makefile.am	Sat Nov 01 22:32:04 2008 +0200
+++ b/src/deliver/Makefile.am	Sat Nov 01 22:49:14 2008 +0200
@@ -7,6 +7,7 @@
 	-I$(top_srcdir)/src/lib-auth \
 	-I$(top_srcdir)/src/lib-dict \
 	-I$(top_srcdir)/src/lib-mail \
+	-I$(top_srcdir)/src/lib-imap \
 	-I$(top_srcdir)/src/lib-index \
 	-I$(top_srcdir)/src/lib-settings \
 	-I$(top_srcdir)/src/lib-storage \
--- a/src/deliver/deliver.c	Sat Nov 01 22:32:04 2008 +0200
+++ b/src/deliver/deliver.c	Sat Nov 01 22:49:14 2008 +0200
@@ -24,6 +24,7 @@
 #include "message-address.h"
 #include "mail-namespace.h"
 #include "raw-storage.h"
+#include "imap-utf7.h"
 #include "dict.h"
 #include "auth-client.h"
 #include "mail-send.h"
@@ -815,6 +816,7 @@
 	time_t mtime;
 	int i, ret;
 	pool_t userdb_pool = NULL;
+	string_t *str;
 
 	i_set_failure_exit_callback(failure_exit_callback);
 
@@ -873,8 +875,14 @@
 				i_fatal_status(EX_USAGE, "Missing -m argument");
 			/* Ignore -m "". This allows doing -m ${extension}
 			   in Postfix to handle user+mailbox */
-			if (*argv[i] != '\0')
-				mailbox = argv[i];
+			if (*argv[i] != '\0') {
+				str = t_str_new(256);
+				if (imap_utf8_to_utf7(argv[i], str) < 0) {
+					i_fatal("Mailbox name not UTF-8: %s",
+						mailbox);
+				}
+				mailbox = str_c(str);
+			}
 		} else if (strcmp(argv[i], "-n") == 0) {
 			deliver_set->mailbox_autocreate = FALSE;
 		} else if (strcmp(argv[i], "-s") == 0) {