Changeset

7397:e49737de9872

MUC: Fix logic for when to broadcast unavailable presence (actual fix for 14170d161b39)
author Kim Alvefur <zash@zash.se>
date Tue, 19 Apr 2016 18:46:07 +0200
parents 7396:71a7140200fc
children 7400:f1ff321178d4
files plugins/muc/muc.lib.lua
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua	Tue Apr 19 18:43:15 2016 +0200
+++ b/plugins/muc/muc.lib.lua	Tue Apr 19 18:46:07 2016 +0200
@@ -196,7 +196,7 @@
 	local base_presence do
 		-- Try to use main jid's presence
 		local pr = occupant:get_presence();
-		if pr and (pr.attr.type ~= "unavailable" or occupant.role == nil) then
+		if pr and (pr.attr.type ~= "unavailable" and occupant.role ~= nil) then
 			base_presence = st.clone(pr);
 		else -- user is leaving but didn't send a leave presence. make one for them
 			base_presence = st.presence {from = occupant.nick; type = "unavailable";};
@@ -737,7 +737,6 @@
 		occupants_updated[occupant] = true;
 	end
 	for occupant in pairs(occupants_updated) do
-		occupant:set_session(occupant.jid, st.presence({type="unavailable"}), true);
 		self:publicise_occupant_status(occupant, x);
 		module:fire_event("muc-occupant-left", { room = self; nick = occupant.nick; occupant = occupant;});
 	end