changeset 22836:78673e865a93

lib-imap-client: Fix IO after enabling SSL io_add_istream() needs to be used with the SSL istream, otherwise it can cause hangs.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 08 Feb 2018 02:28:54 +0200
parents a21208a433c1
children 08535865104c
files src/lib-imap-client/imapc-connection.c
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap-client/imapc-connection.c	Fri Dec 22 11:25:06 2017 +0200
+++ b/src/lib-imap-client/imapc-connection.c	Thu Feb 08 02:28:54 2018 +0200
@@ -1657,6 +1657,7 @@
 		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 @@
 			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);