diff options
author | Kim Alvefur <zash@zash.se> | 2020-08-02 00:24:54 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2020-08-02 00:24:54 +0200 |
commit | 7acd3092ecba0fde91d7e56770c47d7bf98dfc30 (patch) | |
tree | 491a1d5adfc3c6d99c0188a09ca55cdfbed5a8d3 | |
parent | 8fae7acf319d7ff48a12f62e208ddd62665c81ba (diff) | |
download | prosody-7acd3092ecba0fde91d7e56770c47d7bf98dfc30.tar.gz prosody-7acd3092ecba0fde91d7e56770c47d7bf98dfc30.zip |
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.
-rw-r--r-- | plugins/mod_net_multiplex.lua | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/plugins/mod_net_multiplex.lua b/plugins/mod_net_multiplex.lua index 42a41709..ddd58463 100644 --- a/plugins/mod_net_multiplex.lua +++ b/plugins/mod_net_multiplex.lua @@ -2,6 +2,7 @@ module:set_global(); 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 @@ function listener.onconnect(conn) 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 @@ function listener.onincoming(conn, data) 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); |