Changeset

11024:1c7602c70d1f

mod_net_multiplex: Set read size/mode to that of the target listener Otherwise it would use the configured buffer size, or previously '*a'. Using the read size set by the listener seems more sensible.
author Kim Alvefur <zash@zash.se>
date Sun, 02 Aug 2020 00:24:54 +0200
parents 11023:a59b37b03eca
children 11025:e47e7185b403
files plugins/mod_net_multiplex.lua
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_net_multiplex.lua	Sun Aug 02 00:22:57 2020 +0200
+++ b/plugins/mod_net_multiplex.lua	Sun Aug 02 00:24:54 2020 +0200
@@ -2,6 +2,7 @@
 
 local array = require "util.array";
 local max_buffer_len = module:get_option_number("multiplex_buffer_size", 1024);
+local default_mode = module:get_option_number("network_default_read_size", 4096);
 
 local portmanager = require "core.portmanager";
 
@@ -52,6 +53,7 @@
 			module:log("debug", "Routing incoming connection to %s based on ALPN %q", service.name, selected_proto);
 			local next_listener = service.listener;
 			conn:setlistener(next_listener);
+			conn:set_mode(next_listener.default_mode or default_mode);
 			local onconnect = next_listener.onconnect;
 			if onconnect then return onconnect(conn) end
 		end
@@ -67,6 +69,7 @@
 			module:log("debug", "Routing incoming connection to %s", service.name);
 			local next_listener = service.listener;
 			conn:setlistener(next_listener);
+			conn:set_mode(next_listener.default_mode or default_mode);
 			local onconnect = next_listener.onconnect;
 			if onconnect then onconnect(conn) end
 			return next_listener.onincoming(conn, buf);