Mercurial > prosody-modules
annotate mod_s2s_failclose/mod_s2s_failclose.lua @ 6554:0002c727e918
mod_firewall: Use module:add_timer() for HTTP polling
This ensures that polling stops when the module is unloaded.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sun, 24 May 2026 19:35: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); |
