Mercurial > prosody-modules
annotate mod_s2s_failclose/mod_s2s_failclose.lua @ 6398:9c9889ad4302
mod_unsubscriber: Add MUC support
This catches XEP-0045 Join stanzas and replies with an error telling the
prospective participant that the supposed MUC is gone. The user or their
client can then take action to remove any bookmark or at least disable
autojoin.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 07 Feb 2026 12:25:52 +0100 |
| parents | 83355cfcad1d |
| children |
| rev | line source |
|---|---|
|
6353
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 module:set_global(); |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local errors = require "prosody.util.error"; |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local incoming_s2s = prosody.incoming_s2s; |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 -- When an outgoing connection fails, close a corresponding incoming connection with a stream error to indicate the problem to the remote |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 module:hook("s2s-destroyed", function(event) |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 local s2sout = event.session; |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 if s2sout.type ~= "s2sout_unauthed" then return end |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 for s2sin in pairs(incoming_s2s) do |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 if s2sin.from_host == s2sout.to_host and s2sin.to_host == s2sout.from_host then |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 s2sin:close(errors.new({ condition = "reset", text = "Could not deliver return stanzas, please check your DNS and firewall" })); |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end |
|
83355cfcad1d
mod_s2s_failclose: Report outgoing connection failures to remote servers
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 end); |
