From: Aki Tuomi Date: Fri, 31 Mar 2017 08:01:15 +0000 (+0300) Subject: lib-imap-client: Remove io earlier to avoid hammering X-Git-Tag: 2.2.29.rc1~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4da13191bf6e2f60734d7a975610caac9763e88;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-client: Remove io earlier to avoid hammering If connection has failed and reconnection is not yet possible, io has to be removed here, otherwise it will keep hammering the callback. --- diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 5eca7b92b2..43f888ca88 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -1603,6 +1603,8 @@ static void imapc_connection_connected(struct imapc_connection *conn) { const struct ip_addr *ip = &conn->ips[conn->prev_connect_idx]; int err; + if (conn->io != NULL) + io_remove(&conn->io); err = net_geterror(conn->fd); if (err != 0) { @@ -1612,7 +1614,6 @@ static void imapc_connection_connected(struct imapc_connection *conn) strerror(err)), IMAPC_CONNECT_RETRY_WAIT_MSECS); return; } - io_remove(&conn->io); conn->io = io_add(conn->fd, IO_READ, imapc_connection_input, conn); if (conn->client->set.ssl_mode == IMAPC_CLIENT_SSL_MODE_IMMEDIATE) {