From: Aki Tuomi Date: Fri, 23 Nov 2018 08:35:19 +0000 (+0200) Subject: lib: connection - Do not resume if there is nothing to resume into X-Git-Tag: 2.3.9~1069 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0936e210f579092f54a18f1a6c292a799507ede3;p=thirdparty%2Fdovecot%2Fcore.git lib: connection - Do not resume if there is nothing to resume into --- diff --git a/src/lib/connection.c b/src/lib/connection.c index 4255ff9794..f62ff4abe1 100644 --- a/src/lib/connection.c +++ b/src/lib/connection.c @@ -128,20 +128,18 @@ void connection_input_halt(struct connection *conn) void connection_input_resume(struct connection *conn) { - const struct connection_settings *set = &conn->list->set; - i_assert(!conn->disconnected); - if (conn->io != NULL) - return; - if (conn->from_streams || set->input_max_size != 0) { + if (conn->io != NULL) { + /* do nothing */ + } else if (conn->input != NULL) { conn->io = io_add_istream_to(conn->ioloop, conn->input, *conn->list->v.input, conn); - } else { + } else if (conn->fd_in != -1) { conn->io = io_add_to(conn->ioloop, conn->fd_in, IO_READ, *conn->list->v.input, conn); } - if (conn->input_idle_timeout_secs != 0) { + if (conn->input_idle_timeout_secs != 0 && conn->to == NULL) { conn->to = timeout_add_to(conn->ioloop, conn->input_idle_timeout_secs*1000, *conn->list->v.idle_timeout, conn);