]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Log server disconnection error only once.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 15 Dec 2016 15:43:11 +0000 (17:43 +0200)
committerGitLab <gitlab@git.dovecot.net>
Sat, 17 Dec 2016 09:07:07 +0000 (11:07 +0200)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-search.c
src/lib-storage/index/imapc/imapc-storage.c

index a34f87d538b51027b45fe9d1e22c768eeae06c8c..2d7327b6aa72a829459ee459307dc62bd86641f8 100644 (file)
@@ -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);
index c778eee064d12d8e25a23a104c2a710ec7c7591c..c52c12e9c54bfde3b20913ec3df1fb42bff9c9f7 100644 (file)
@@ -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);
index 62c03c0f0e166796b26139a97da8e28892159287..54fb2b2f8041c616ae14f7ab3f217ddbd41a1975 100644 (file)
@@ -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",