From: Timo Sirainen Date: Wed, 6 Apr 2016 11:45:01 +0000 (+0300) Subject: imapc: Mark most of the commands retriable. X-Git-Tag: 2.2.24~72 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=06116e6a19bc4916ddf349108e59e38eda83d533;p=thirdparty%2Fdovecot%2Fcore.git imapc: Mark most of the commands retriable. --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 72827814bc..e67bde1519 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -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); diff --git a/src/lib-storage/index/imapc/imapc-save.c b/src/lib-storage/index/imapc/imapc-save.c index b618dad537..e6012ff8d8 100644 --- a/src/lib-storage/index/imapc/imapc-save.c +++ b/src/lib-storage/index/imapc/imapc-save.c @@ -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); diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 84f9315df2..ebe22b20ac 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -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);