stanza_router: only fire pre-stanza if firing other preevents (e.g. for c2s sessions)
--- a/core/stanza_router.lua Wed Feb 05 23:29:39 2020 +0100
+++ b/core/stanza_router.lua Wed Feb 05 22:53:59 2020 +0000
@@ -174,13 +174,13 @@
local event_data = {origin=origin, stanza=stanza, to_self=to_self};
- local result = hosts[origin.host].events.fire_event("pre-stanza", event_data);
- if result ~= nil then
- log("debug", "Stanza rejected by pre-stanza handler: %s", event_data.reason or "unknown reason");
- return;
- end
+ if preevents then -- c2s connection
+ local result = hosts[origin.host].events.fire_event("pre-stanza", event_data);
+ if result ~= nil then
+ log("debug", "Stanza rejected by pre-stanza handler: %s", event_data.reason or "unknown reason");
+ return;
+ end
- if preevents then -- c2s connection
if hosts[origin.host].events.fire_event('pre-'..stanza.name..to_type, event_data) then return; end -- do preprocessing
end
local h = hosts[to_bare] or hosts[host or origin.host];