mod_s2s: Record stanza size limit advertised by other servers
authorKim Alvefur <zash@zash.se>
Tue, 16 Mar 2021 18:30:34 +0100
changeset 12810 751bdd412915
parent 12809 d96e24bd54e1
child 12811 f0f7b0c61465
mod_s2s: Record stanza size limit advertised by other servers For future use, i.e. canceling sending of stanzas that exceed the limit
plugins/mod_s2s.lua
--- a/plugins/mod_s2s.lua	Tue Mar 16 18:25:05 2021 +0100
+++ b/plugins/mod_s2s.lua	Tue Mar 16 18:30:34 2021 +0100
@@ -250,6 +250,10 @@
 	module:hook("s2s-authenticated", make_authenticated, -1);
 	module:hook("s2s-read-timeout", keepalive, -1);
 	module:hook_stanza("http://etherx.jabber.org/streams", "features", function (session, stanza) -- luacheck: ignore 212/stanza
+		local limits = stanza:get_child("stanza-size-limit", "xmpp:prosody.im/stream/limits");
+		if limits then
+			session.outgoing_stanza_size_limit = tonumber(limits.attr.bytes);
+		end
 		if session.type == "s2sout" then
 			-- Stream is authenticated and we are seem to be done with feature negotiation,
 			-- so the stream is ready for stanzas.  RFC 6120 Section 4.3