]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Another try at fixing mUTF-7 mailbox names.
authorTimo Sirainen <tss@iki.fi>
Fri, 9 Sep 2011 10:05:33 +0000 (13:05 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 9 Sep 2011 10:05:33 +0000 (13:05 +0300)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-save.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h

index 5779f109d79623fd56939f234cc7a849a3b6e18d..40e1132b4aa46f8b7ce4fcb4f058b97a5705a464 100644 (file)
@@ -87,7 +87,7 @@ imapc_list_update_tree(struct mailbox_tree_context *tree,
        T_BEGIN {
                string_t *utf8_name = t_str_new(64);
 
-               if (imap_utf7_to_utf8(name, utf8_name)) {
+               if (imap_utf7_to_utf8(name, utf8_name) < 0) {
                        str_truncate(utf8_name, 0);
                        str_append(utf8_name, name);
                }
index c130b4e3ae111ba72078303c048d8e250292df04..59bd569f81b04f2594145c78896e61045ea679cb 100644 (file)
@@ -335,8 +335,7 @@ int imapc_copy(struct mail_save_context *_ctx, struct mail *mail)
                imapc_client_mailbox_cmdf(src_mbox->client_box,
                                          imapc_copy_callback, &sctx,
                                          "UID COPY %u %s",
-                                         mail->uid,
-                                         imapc_mutf7_mailbox_name(_t->box));
+                                         mail->uid, _t->box->name);
                while (sctx.ret == -2)
                        imapc_storage_run(src_mbox->storage);
                ctx->finished = TRUE;
index e5d5361aec7192091bcaaae31f0583af93369f09..182f511610ded49a1746b6497057f441b635fcaa 100644 (file)
@@ -363,15 +363,6 @@ imapc_mailbox_open_callback(const struct imapc_command_reply *reply,
        imapc_client_stop(ctx->mbox->storage->client);
 }
 
-const char *imapc_mutf7_mailbox_name(struct mailbox *box)
-{
-       const char *mutf7_name;
-
-       if (t_imap_utf8_to_utf7(box->name, &mutf7_name) < 0)
-               i_unreached();
-       return mutf7_name;
-}
-
 static int imapc_mailbox_open(struct mailbox *box)
 {
        struct imapc_mailbox *mbox = (struct imapc_mailbox *)box;
@@ -392,8 +383,7 @@ static int imapc_mailbox_open(struct mailbox *box)
        ctx.mbox = mbox;
        ctx.ret = -2;
        mbox->client_box =
-               imapc_client_mailbox_open(mbox->storage->client,
-                                         imapc_mutf7_mailbox_name(box),
+               imapc_client_mailbox_open(mbox->storage->client, box->name,
                                          examine, imapc_mailbox_open_callback,
                                          &ctx, mbox);
        while (ctx.ret == -2)
@@ -434,7 +424,7 @@ imapc_mailbox_create(struct mailbox *box,
 {
        struct imapc_mailbox *mbox = (struct imapc_mailbox *)box;
        struct imapc_simple_context sctx;
-       const char *name = imapc_mutf7_mailbox_name(box);
+       const char *name = box->name;
 
        if (directory) {
                name = t_strdup_printf("%s%c", name,
@@ -552,10 +542,8 @@ static int imapc_mailbox_get_status(struct mailbox *box,
        imapc_simple_context_init(&sctx, mbox->storage);
        mbox->storage->cur_status_box = mbox;
        mbox->storage->cur_status = status_r;
-       imapc_client_cmdf(mbox->storage->client,
-                         imapc_simple_callback, &sctx,
-                         "STATUS %s (%1s)", imapc_mutf7_mailbox_name(box),
-                         str_c(str)+1);
+       imapc_client_cmdf(mbox->storage->client, imapc_simple_callback, &sctx,
+                         "STATUS %s (%1s)", box->name, str_c(str)+1);
        imapc_simple_run(&sctx);
        mbox->storage->cur_status_box = NULL;
        mbox->storage->cur_status = NULL;
index f0526e936a40a63fddbb7b61b2c22ff7e6c6b17d..141d2a7ebcf7357673286be151a605de15b619d5 100644 (file)
@@ -90,7 +90,6 @@ void imapc_transaction_save_rollback(struct mail_save_context *ctx);
 
 void imapc_storage_run(struct imapc_storage *storage);
 
-const char *imapc_mutf7_mailbox_name(struct mailbox *box);
 void imapc_copy_error_from_reply(struct imapc_storage *storage,
                                 enum mail_error default_error,
                                 const struct imapc_command_reply *reply);