From: Timo Sirainen Date: Thu, 15 Dec 2016 15:43:11 +0000 (+0200) Subject: imapc: Log server disconnection error only once. X-Git-Tag: 2.3.0.rc1~2404 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b80e0097ab96ca62d1b9ddf4b2d7b7c77c745307;p=thirdparty%2Fdovecot%2Fcore.git imapc: Log server disconnection error only once. --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index a34f87d538..2d7327b6aa 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -131,6 +131,9 @@ static void imapc_list_simple_callback(const struct imapc_command_reply *reply, ctx->ret = -1; } else if (ctx->client->auth_failed) { ctx->ret = -1; + } else if (reply->state == IMAPC_COMMAND_STATE_DISCONNECTED) { + mailbox_list_set_internal_error(&ctx->client->_list->list); + ctx->ret = -1; } else { mailbox_list_set_critical(&ctx->client->_list->list, "imapc: Command failed: %s", reply->text_full); @@ -284,6 +287,8 @@ static void imapc_storage_sep_callback(const struct imapc_command_reply *reply, imapc_list_copy_error_from_reply(list, MAIL_ERROR_PARAMS, reply); else if (list->client->auth_failed) ; + else if (reply->state == IMAPC_COMMAND_STATE_DISCONNECTED) + mailbox_list_set_internal_error(&list->list); else if (!list->list.ns->user->deinitializing) { mailbox_list_set_critical(&list->list, "imapc: Command failed: %s", reply->text_full); diff --git a/src/lib-storage/index/imapc/imapc-search.c b/src/lib-storage/index/imapc/imapc-search.c index c778eee064..c52c12e9c5 100644 --- a/src/lib-storage/index/imapc/imapc-search.c +++ b/src/lib-storage/index/imapc/imapc-search.c @@ -197,6 +197,8 @@ static void imapc_search_callback(const struct imapc_command_reply *reply, if (reply->state == IMAPC_COMMAND_STATE_OK) { seq_range_array_iter_init(&ictx->iter, &ictx->rseqs); ictx->success = TRUE; + } else if (reply->state == IMAPC_COMMAND_STATE_DISCONNECTED) { + mail_storage_set_internal_error(mbox->box.storage); } else { mail_storage_set_critical(mbox->box.storage, "imapc: Command failed: %s", reply->text_full); diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 62c03c0f0e..54fb2b2f80 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -157,6 +157,9 @@ void imapc_simple_callback(const struct imapc_command_reply *reply, ctx->ret = -1; } else if (ctx->client->auth_failed) { ctx->ret = -1; + } else if (reply->state == IMAPC_COMMAND_STATE_DISCONNECTED) { + mail_storage_set_internal_error(&ctx->client->_storage->storage); + ctx->ret = -1; } else { mail_storage_set_critical(&ctx->client->_storage->storage, "imapc: Command failed: %s", reply->text_full); @@ -556,6 +559,9 @@ imapc_mailbox_open_callback(const struct imapc_command_reply *reply, ctx->ret = -1; } else if (ctx->mbox->storage->client->auth_failed) { ctx->ret = -1; + } else if (reply->state == IMAPC_COMMAND_STATE_DISCONNECTED) { + ctx->ret = -1; + mail_storage_set_internal_error(ctx->mbox->box.storage); } else { mail_storage_set_critical(ctx->mbox->box.storage, "imapc: Opening mailbox '%s' failed: %s",