annotate mod_s2s_failclose/mod_s2s_failclose.lua @ 6519:01d8bfbfc435

mod_pubsub_serverinfo: Fix check for local domain The module was checking whether a host exists, but this may be misleading if our host is loaded before the host that is being checked. This change makes it check the config. This will provide a false positive in the rare case that the host is defined but not activated/enabled. But we don't have an API currently for "is this host configured and enabled?"
author Matthew Wild <mwild1@gmail.com>
date Tue, 21 Apr 2026 19:54:19 +0100
parents 83355cfcad1d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);