From 1ae3424ac4f27dbcaaa4a0f11f8a88f2fcfa7d8e Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 8 Feb 2018 02:28:54 +0200 Subject: [PATCH] lib-imap-client: Fix IO after enabling SSL io_add_istream() needs to be used with the SSL istream, otherwise it can cause hangs. --- src/lib-imap-client/imapc-connection.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 6c63ae413d..689c3166e4 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -1657,6 +1657,7 @@ static int imapc_connection_ssl_init(struct imapc_connection *conn) conn->output = conn->raw_output; } + io_remove(&conn->io); if (io_stream_create_ssl_client(conn->client->ssl_ctx, conn->client->set.host, &ssl_set, &conn->input, &conn->output, @@ -1665,6 +1666,7 @@ static int imapc_connection_ssl_init(struct imapc_connection *conn) conn->name, error); return -1; } + conn->io = io_add_istream(conn->input, imapc_connection_input, conn); ssl_iostream_set_handshake_callback(conn->ssl_iostream, imapc_connection_ssl_handshaked, conn);