changeset 22838:bed6a1eb53f7

lib: Add connection_streams_changed() Originally by Stephan Bosch
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 08 Feb 2018 10:52:57 +0200
parents 08535865104c
children e94be670bd18
files src/lib/connection.c src/lib/connection.h
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/connection.c	Thu Feb 08 02:38:23 2018 +0200
+++ b/src/lib/connection.c	Thu Feb 08 10:52:57 2018 +0200
@@ -164,6 +164,16 @@
 	}
 }
 
+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);
--- a/src/lib/connection.h	Thu Feb 08 02:38:23 2018 +0200
+++ b/src/lib/connection.h	Thu Feb 08 10:52:57 2018 +0200
@@ -127,6 +127,8 @@
 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);