Mercurial > prosody-hg
comparison plugins/mod_s2s.lua @ 12811:ccc0bdad82cc
mod_s2s: Retrieve stanza size limit from peer for bidi connections
Having mod_s2s know about the bidi namespace is perhaps a bit awkward
but putting this in mod_s2s_bidi would be more awkward as it has nothing
to do with limits. Some indirection event could be added in the future.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 09 Nov 2022 19:10:16 +0100 |
| parents | 871d2c95b403 |
| children | 74b9e05af71e |
comparison
equal
deleted
inserted
replaced
| 12810:871d2c95b403 | 12811:ccc0bdad82cc |
|---|---|
| 251 if stanza_size_limit then | 251 if stanza_size_limit then |
| 252 event.features:tag("limits", { xmlns = "urn:xmpp:stream-limits:0" }) | 252 event.features:tag("limits", { xmlns = "urn:xmpp:stream-limits:0" }) |
| 253 :text_tag("max-size", string.format("%d", stanza_size_limit)):up(); | 253 :text_tag("max-size", string.format("%d", stanza_size_limit)):up(); |
| 254 end | 254 end |
| 255 end); | 255 end); |
| 256 module:hook_tag("urn:xmpp:bidi", "bidi", function(session, stanza) | |
| 257 -- Advertising features on bidi connections where no <stream:features> is sent in the other direction | |
| 258 local limits = stanza:get_child("limits", "urn:xmpp:stream-limits:0"); | |
| 259 if limits then | |
| 260 session.outgoing_stanza_size_limit = tonumber(limits:get_child_text("max-size")); | |
| 261 end | |
| 262 end, 100); | |
| 256 module:hook("s2s-authenticated", make_authenticated, -1); | 263 module:hook("s2s-authenticated", make_authenticated, -1); |
| 257 module:hook("s2s-read-timeout", keepalive, -1); | 264 module:hook("s2s-read-timeout", keepalive, -1); |
| 258 module:hook_stanza("http://etherx.jabber.org/streams", "features", function (session, stanza) -- luacheck: ignore 212/stanza | 265 module:hook_stanza("http://etherx.jabber.org/streams", "features", function (session, stanza) -- luacheck: ignore 212/stanza |
| 259 local limits = stanza:get_child("limits", "urn:xmpp:stream-limits:0"); | 266 local limits = stanza:get_child("limits", "urn:xmpp:stream-limits:0"); |
| 260 if limits then | 267 if limits then |
