From: Timo Sirainen Date: Thu, 8 Feb 2018 00:38:23 +0000 (+0200) Subject: doveadm: client: Set IO only after enabling SSL X-Git-Tag: 2.3.9~2347 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=14995d3b1e547f84ec55314d53a9f0bbd1110b0d;p=thirdparty%2Fdovecot%2Fcore.git doveadm: client: Set IO only after enabling SSL io_add_istream() needs to be used with the SSL istream, otherwise it can cause hangs. --- diff --git a/src/doveadm/server-connection.c b/src/doveadm/server-connection.c index cdcb3c8926..269985d629 100644 --- a/src/doveadm/server-connection.c +++ b/src/doveadm/server-connection.c @@ -544,7 +544,6 @@ int server_connection_create(struct doveadm_server *server, doveadm_settings->doveadm_port); net_set_nonblock(conn->fd, TRUE); conn->input = i_stream_create_fd(conn->fd, MAX_INBUF_SIZE); - conn->io = io_add_istream(conn->input, server_connection_input, conn); conn->output = o_stream_create_fd(conn->fd, (size_t)-1); o_stream_set_flush_callback(conn->output, server_connection_output, conn); o_stream_set_no_error_handling(conn->output, TRUE); @@ -559,6 +558,7 @@ int server_connection_create(struct doveadm_server *server, server_connection_destroy(&conn); return -1; } + conn->io = io_add_istream(conn->input, server_connection_input, conn); conn->state = SERVER_REPLY_STATE_DONE; o_stream_nsend_str(conn->output, DOVEADM_SERVER_PROTOCOL_VERSION_LINE"\n");