projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
14493ad
)
MUC: Fix logic for when to broadcast unavailable presence (actual fix for 14170d161b39)
author
Kim Alvefur
<zash@zash.se>
Tue, 19 Apr 2016 16:46:07 +0000
(18:46 +0200)
committer
Kim Alvefur
<zash@zash.se>
Tue, 19 Apr 2016 16:46:07 +0000
(18:46 +0200)
plugins/muc/muc.lib.lua
patch
|
blob
|
history
diff --git
a/plugins/muc/muc.lib.lua
b/plugins/muc/muc.lib.lua
index 18f407581243ba6298790e2f6cbee6cf662cd6d2..e98e99b8a50c8e1d1989e8bf798d5d731e4d7422 100644
(file)
--- a/
plugins/muc/muc.lib.lua
+++ b/
plugins/muc/muc.lib.lua
@@
-196,7
+196,7
@@
function room_mt:publicise_occupant_status(occupant, base_x, nick, actor, reason
local base_presence do
-- Try to use main jid's presence
local pr = occupant:get_presence();
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";};
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
@@
function room_mt:clear(x)
occupants_updated[occupant] = true;
end
for occupant in pairs(occupants_updated) do
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
self:publicise_occupant_status(occupant, x);
module:fire_event("muc-occupant-left", { room = self; nick = occupant.nick; occupant = occupant;});
end