]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Set unhibernation IDLE state earlier
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 17 Aug 2020 11:55:55 +0000 (14:55 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Fri, 21 Aug 2020 08:51:13 +0000 (08:51 +0000)
This simplifies the following changes.

src/imap/imap-master-client.c

index fb16788b4b2ca8b2646751041009f365fae24a70..f23a91bce205dd9e5f8121377e830be109575027 100644 (file)
@@ -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);