From: Aki Tuomi Date: Mon, 19 Feb 2018 17:09:46 +0000 (+0200) Subject: lib: connection - only switch created iostreams X-Git-Tag: 2.3.1~58 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a2cdd98b1344c43b1ebd02a149b6235133ea6be;p=thirdparty%2Fdovecot%2Fcore.git lib: connection - only switch created iostreams Fixes imap-hibernate: Fatal: master: service(imap-hibernate): child killed with signal 11 (core dumps disabled) Broken in 086b73efd1a5812a64acc951366a499d325509a6 --- diff --git a/src/lib/connection.c b/src/lib/connection.c index 5fb456ec47..b43d3094ed 100644 --- a/src/lib/connection.c +++ b/src/lib/connection.c @@ -159,6 +159,7 @@ static void connection_init_streams(struct connection *conn) conn->input = i_stream_create_fd(conn->fd_in, set->input_max_size); i_stream_set_name(conn->input, conn->name); + i_stream_switch_ioloop_to(conn->input, conn->ioloop); } if (set->output_max_size != 0) { if (conn->unix_socket) @@ -170,9 +171,8 @@ static void connection_init_streams(struct connection *conn) o_stream_set_no_error_handling(conn->output, TRUE); o_stream_set_finish_via_child(conn->output, FALSE); o_stream_set_name(conn->output, conn->name); + o_stream_switch_ioloop_to(conn->output, conn->ioloop); } - i_stream_switch_ioloop_to(conn->input, conn->ioloop); - o_stream_switch_ioloop_to(conn->output, conn->ioloop); connection_input_resume(conn); if (set->input_idle_timeout_secs != 0) { conn->to = timeout_add_to(conn->ioloop,