From: Timo Sirainen Date: Mon, 17 Aug 2020 11:55:55 +0000 (+0300) Subject: imap: Set unhibernation IDLE state earlier X-Git-Tag: 2.3.13~362 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9df45f5df8cabad3cd9eae006eb320fc5c79f5ce;p=thirdparty%2Fdovecot%2Fcore.git imap: Set unhibernation IDLE state earlier This simplifies the following changes. --- diff --git a/src/imap/imap-master-client.c b/src/imap/imap-master-client.c index fb16788b4b..f23a91bce2 100644 --- a/src/imap/imap-master-client.c +++ b/src/imap/imap-master-client.c @@ -246,6 +246,21 @@ imap_master_client_input_args(struct connection *conn, const char *const *args, } client->imap_client_created = TRUE; + imap_client->state_import_bad_idle_done = + master_input.state_import_bad_idle_done; + imap_client->state_import_idle_continue = + master_input.state_import_idle_continue; + if (imap_client->state_import_bad_idle_done) { + e_debug(imap_client->event, + "imap-master: Unhibernated because IDLE was stopped with BAD command"); + } else if (imap_client->state_import_idle_continue) { + e_debug(imap_client->event, + "imap-master: Unhibernated to send mailbox changes"); + } else { + e_debug(imap_client->event, + "imap-master: Unhibernated because IDLE was stopped with DONE"); + } + if (client_create_finish(imap_client, &error) < 0) { e_error(imap_client->event, "imap-master(%s): %s", input.username, error); @@ -268,20 +283,6 @@ imap_master_client_input_args(struct connection *conn, const char *const *args, client_destroy(imap_client, "Client initialization failed"); return -1; } - imap_client->state_import_bad_idle_done = - master_input.state_import_bad_idle_done; - imap_client->state_import_idle_continue = - master_input.state_import_idle_continue; - if (imap_client->state_import_bad_idle_done) { - e_debug(imap_client->event, - "imap-master: Unhibernated because IDLE was stopped with BAD command"); - } else if (imap_client->state_import_idle_continue) { - e_debug(imap_client->event, - "imap-master: Unhibernated to send mailbox changes"); - } else { - e_debug(imap_client->event, - "imap-master: Unhibernated because IDLE was stopped with DONE"); - } ret = imap_state_import_internal(imap_client, master_input.state->data, master_input.state->used, &error);