From: Timo Sirainen Date: Thu, 8 Feb 2018 08:52:57 +0000 (+0200) Subject: lib: Add connection_streams_changed() X-Git-Tag: 2.3.9~2346 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed567dac7e55ab3e8dd53d9c86c31ebb2032d4df;p=thirdparty%2Fdovecot%2Fcore.git lib: Add connection_streams_changed() Originally by Stephan Bosch --- diff --git a/src/lib/connection.c b/src/lib/connection.c index 80236f99a0..a338666e27 100644 --- a/src/lib/connection.c +++ b/src/lib/connection.c @@ -165,6 +165,16 @@ static void connection_init_streams(struct connection *conn) } } +void connection_streams_changed(struct connection *conn) +{ + const struct connection_settings *set = &conn->list->set; + + if (set->input_max_size != 0 && conn->io != NULL) { + io_remove(&conn->io); + conn->io = io_add_istream(conn->input, *conn->list->v.input, conn); + } +} + static void connection_client_connected(struct connection *conn, bool success) { i_assert(conn->list->set.client); diff --git a/src/lib/connection.h b/src/lib/connection.h index 36fe6582d0..ba355dfc05 100644 --- a/src/lib/connection.h +++ b/src/lib/connection.h @@ -130,6 +130,8 @@ int connection_client_connect(struct connection *conn); void connection_disconnect(struct connection *conn); void connection_deinit(struct connection *conn); +void connection_streams_changed(struct connection *conn); + /* Returns -1 = disconnected, 0 = nothing new, 1 = something new. If input_full_behavior is ALLOW, may return also -2 = buffer full. */ int connection_input_read(struct connection *conn);