]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-lda: Log mailbox name using UTF-8, not mUTF-7.
authorTimo Sirainen <tss@iki.fi>
Tue, 10 Nov 2009 02:03:15 +0000 (21:03 -0500)
committerTimo Sirainen <tss@iki.fi>
Tue, 10 Nov 2009 02:03:15 +0000 (21:03 -0500)
--HG--
branch : HEAD

src/lib-lda/Makefile.am
src/lib-lda/mail-deliver.c

index 5982142a770e19e1394e010ec3856d50dc8c24b8..c9763f9fd4fabee00332a0b5d0604004a22e9867 100644 (file)
@@ -4,6 +4,7 @@ AM_CPPFLAGS = \
        -I$(top_srcdir)/src/lib \
        -I$(top_srcdir)/src/lib-settings \
        -I$(top_srcdir)/src/lib-master \
+       -I$(top_srcdir)/src/lib-imap \
        -I$(top_srcdir)/src/lib-mail \
        -I$(top_srcdir)/src/lib-storage
 
index d29a6e6abc2cabab76e67119f4bb3c6c29edf3c5..b8b5167bca3edc94aa8a2f0f65015952dfe8c492 100644 (file)
@@ -7,6 +7,7 @@
 #include "str-sanitize.h"
 #include "var-expand.h"
 #include "message-address.h"
+#include "imap-utf7.h"
 #include "lda-settings.h"
 #include "mail-storage.h"
 #include "mail-namespace.h"
@@ -137,6 +138,17 @@ mailbox_open_or_create_synced(struct mail_deliver_context *ctx,
        return box;
 }
 
+static const char *mailbox_name_get_printable(const char *mailbox_mutf7)
+{
+       string_t *str = t_str_new(128);
+
+       if (imap_utf7_to_utf8(mailbox_mutf7, str) < 0) {
+               str_truncate(str, 0);
+               str_append(str, mailbox_mutf7);
+       }
+       return str_sanitize(str_c(str), 80);
+}
+
 int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
                      enum mail_flags flags, const char *const *keywords,
                      struct mail_storage **storage_r)
@@ -158,7 +170,7 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
        if (default_save)
                ctx->tried_default_save = TRUE;
 
-       mailbox_name = str_sanitize(mailbox, 80);
+       mailbox_name = mailbox_name_get_printable(mailbox);
        box = mailbox_open_or_create_synced(ctx, mailbox, &ns, &errstr);
        if (box == NULL) {
                if (ns == NULL) {