changeset 2157:7d1a22ac2a21

mod_track_muc_joins: Only check directed presence when joining (would be gone when leaving)
author Kim Alvefur <zash@zash.se>
date Wed, 13 Apr 2016 11:52:51 +0200
parents 3fcac143fe0b
children de3fb9d2673c
files mod_track_muc_joins/mod_track_muc_joins.lua
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mod_track_muc_joins/mod_track_muc_joins.lua	Tue Apr 12 16:05:21 2016 +0200
+++ b/mod_track_muc_joins/mod_track_muc_joins.lua	Wed Apr 13 11:52:51 2016 +0200
@@ -7,14 +7,10 @@
 	if not session then return end;
 	local log = session.log or module._log;
 
-	local from_jid = stanza.attr.from;
-	if not session.directed or not session.directed[from_jid] then
-		return; -- Never sent presence there, can't be a MUC join
-	end
-
 	local muc_x = stanza:get_child("x", "http://jabber.org/protocol/muc#user");
 	if not muc_x then return end -- Not MUC related
 
+	local from_jid = stanza.attr.from;
 	local room = jid_bare(from_jid);
 	local joined = stanza.attr.type;
 	if joined == nil then
@@ -26,6 +22,10 @@
 		return;
 	end
 
+	if joined and not session.directed or not session.directed[from_jid] then
+		return; -- Never sent presence there, can't be a MUC join
+	end
+
 	-- Check for status code 100, meaning it's their own reflected presence
 	for status in muc_x:childtags("status") do
 		log("debug", "Status code %d", status.attr.code);