Software /
code /
prosody
Diff
plugins/mod_csi_simple.lua @ 9914:2c6b7247c3d9
mod_csi_simple: Also flush buffer in "pump" mode
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 24 Mar 2019 19:02:40 +0100 |
parent | 9913:7d78b24d8449 |
child | 9917:45b5528b128a |
line wrap: on
line diff
--- a/plugins/mod_csi_simple.lua Sun Mar 24 18:58:53 2019 +0100 +++ b/plugins/mod_csi_simple.lua Sun Mar 24 19:02:40 2019 +0100 @@ -109,9 +109,15 @@ return data; end +local function flush_pump(data, session) + session.pump:flush(); + return data; +end + module:hook("csi-client-inactive", function (event) local session = event.origin; if session.conn and session.conn and session.conn.pause_writes then + session.log("info", "Native net.server buffer management mode"); session.conn:pause_writes(); filters.add_filter(session, "stanzas/out", manage_buffer); filters.add_filter(session, "bytes/in", flush_buffer); @@ -124,6 +130,7 @@ local pump = new_pump(session.send, queue_size); pump:pause(); session.pump = pump; + filters.add_filter(session, "bytes/in", flush_pump); function session.send(stanza) if session.state == "active" or module:fire_event("csi-is-stanza-important", { stanza = stanza, session = session }) then pump:flush();