]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Mark most of the commands retriable.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 6 Apr 2016 11:45:01 +0000 (14:45 +0300)
committerGitLab <gitlab@git.dovecot.net>
Tue, 12 Apr 2016 13:06:48 +0000 (16:06 +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

index 72827814bc0fed81a5e416e8954e5e9e36b8c95d..e67bde1519446dbe8e0db6a498b4453f56f64c55 100644 (file)
@@ -301,6 +301,7 @@ static void imapc_list_send_hierarcy_sep_lookup(struct imapc_mailbox_list *list)
 
        cmd = imapc_client_cmd(list->client->client,
                               imapc_storage_sep_callback, list);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_send(cmd, "LIST \"\" \"\"");
 }
 
@@ -565,6 +566,7 @@ static int imapc_list_refresh(struct imapc_mailbox_list *list)
        }
 
        cmd = imapc_list_simple_context_init(&ctx, list);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_sendf(cmd, "LIST \"\" %s", pattern);
        mailbox_tree_deinit(&list->mailboxes);
        list->mailboxes = mailbox_tree_init(mail_namespace_get_sep(list->list.ns));
@@ -799,6 +801,7 @@ imapc_list_subscriptions_refresh(struct mailbox_list *_src_list,
                pattern = "*";
        else
                pattern = t_strdup_printf("%s*", src_list->set->imapc_list_prefix);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_sendf(cmd, "LSUB \"\" %s", pattern);
        imapc_simple_run(&ctx);
 
@@ -824,6 +827,7 @@ static int imapc_list_set_subscribed(struct mailbox_list *_list,
        struct imapc_simple_context ctx;
 
        cmd = imapc_list_simple_context_init(&ctx, list);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_sendf(cmd, set ? "SUBSCRIBE %s" : "UNSUBSCRIBE %s",
                            imapc_list_to_remote(list, name));
        imapc_simple_run(&ctx);
@@ -842,6 +846,7 @@ imapc_list_delete_mailbox(struct mailbox_list *_list, const char *name)
        capa = imapc_client_get_capabilities(list->client->client);
 
        cmd = imapc_list_simple_context_init(&ctx, list);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        if (!imapc_command_connection_is_selected(cmd))
                imapc_command_abort(&cmd);
        else {
@@ -854,6 +859,7 @@ imapc_list_delete_mailbox(struct mailbox_list *_list, const char *name)
        }
 
        cmd = imapc_list_simple_context_init(&ctx, list);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_sendf(cmd, "DELETE %s", imapc_list_to_remote(list, name));
        imapc_simple_run(&ctx);
 
index b618dad5371d3dd4e014381fc7cec3bbd1d7de60..e6012ff8d8e3303075b0918c527d533cee700a53 100644 (file)
@@ -261,6 +261,7 @@ static int imapc_save_append(struct imapc_save_context *ctx)
                sctx.ret = -2;
                cmd = imapc_client_cmd(ctx->mbox->storage->client->client,
                                       imapc_save_noop_callback, &sctx);
+               imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
                imapc_command_send(cmd, "NOOP");
                while (sctx.ret == -2)
                        imapc_mailbox_run(ctx->mbox);
index 84f9315df25612506c661dbf40a7984ae786aa82..ebe22b20aca3cbaf7929b9a7da96655383351570 100644 (file)
@@ -813,6 +813,7 @@ static int imapc_mailbox_run_status(struct mailbox *box,
        mbox->storage->cur_status = status_r;
        cmd = imapc_client_cmd(mbox->storage->client->client,
                               imapc_simple_callback, &sctx);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_sendf(cmd, "STATUS %s (%1s)",
                            imapc_mailbox_get_remote_name(mbox), str_c(str)+1);
        imapc_simple_run(&sctx);
@@ -872,6 +873,7 @@ static int imapc_mailbox_get_namespaces(struct imapc_storage *storage)
        imapc_simple_context_init(&sctx, storage->client);
        cmd = imapc_client_cmd(storage->client->client,
                               imapc_simple_callback, &sctx);
+       imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_RETRIABLE);
        imapc_command_send(cmd, "NAMESPACE");
        imapc_simple_run(&sctx);