Mercurial > prosody-modules
annotate mod_s2s_failclose/mod_s2s_failclose.lua @ 6556:7477e97a9045
mod_firewall: Apply pre-reload state before re-reading config
This change makes load/reload a bit more robust. module.load() runs before
module.restore() and it reads from the config and updates the state (if
needed).
However, after this, module.restore() could run and apply the old state again.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sun, 24 May 2026 20:03:20 +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); |
