stanza_router: only fire pre-stanza if firing other preevents (e.g. for c2s sessions)
authorMatthew Wild <mwild1@gmail.com>
Wed, 05 Feb 2020 22:53:59 +0000
changeset 10649 067ada779ea5
parent 10648 6c4ab1b87588
child 10651 d1bfda983ffe
stanza_router: only fire pre-stanza if firing other preevents (e.g. for c2s sessions)
core/stanza_router.lua
--- 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];