projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e675979
)
Backed out changeset 63141a85beea, broke multi-session nicks
author
Kim Alvefur
<zash@zash.se>
Sat, 14 May 2016 20:36:37 +0000
(22:36 +0200)
committer
Kim Alvefur
<zash@zash.se>
Sat, 14 May 2016 20:36:37 +0000
(22:36 +0200)
plugins/muc/muc.lib.lua
patch
|
blob
|
history
diff --git
a/plugins/muc/muc.lib.lua
b/plugins/muc/muc.lib.lua
index 71f199dd48206d1d4dce2ab350b54f88478faec3..eb992aa3d42616358906101d45ccf822b87386f3 100644
(file)
--- a/
plugins/muc/muc.lib.lua
+++ b/
plugins/muc/muc.lib.lua
@@
-446,7
+446,6
@@
end
function room_mt:handle_normal_presence(origin, stanza)
local type = stanza.attr.type;
function room_mt:handle_normal_presence(origin, stanza)
local type = stanza.attr.type;
- local muc_x = stanza:get_child("x", "http://jabber.org/protocol/muc");
local real_jid = stanza.attr.from;
local bare_jid = jid_bare(real_jid);
local orig_occupant = self:get_occupant_by_real_jid(real_jid);
local real_jid = stanza.attr.from;
local bare_jid = jid_bare(real_jid);
local orig_occupant = self:get_occupant_by_real_jid(real_jid);
@@
-456,18
+455,13
@@
function room_mt:handle_normal_presence(origin, stanza)
if type == "unavailable" then -- luacheck: ignore 542
-- FIXME Why the empty if branch?
-- dest_occupant = nil
if type == "unavailable" then -- luacheck: ignore 542
-- FIXME Why the empty if branch?
-- dest_occupant = nil
- elseif orig_occupant and
not muc_x and
orig_occupant.nick == stanza.attr.to then -- Just a presence update
+ elseif orig_occupant and orig_occupant.nick == stanza.attr.to then -- Just a presence update
log("debug", "presence update for %s from session %s", orig_occupant.nick, real_jid);
dest_occupant = orig_occupant;
else
local dest_jid = stanza.attr.to;
dest_occupant = self:get_occupant_by_nick(dest_jid);
log("debug", "presence update for %s from session %s", orig_occupant.nick, real_jid);
dest_occupant = orig_occupant;
else
local dest_jid = stanza.attr.to;
dest_occupant = self:get_occupant_by_nick(dest_jid);
- if muc_x then
- dest_occupant = self:new_occupant(bare_jid, dest_jid);
- if dest_occupant == nil then
- is_first_dest_session = true;
- end
- elseif dest_occupant == nil then
+ if dest_occupant == nil then
log("debug", "no occupant found for %s; creating new occupant object for %s", dest_jid, real_jid);
is_first_dest_session = true;
dest_occupant = self:new_occupant(bare_jid, dest_jid);
log("debug", "no occupant found for %s; creating new occupant object for %s", dest_jid, real_jid);
is_first_dest_session = true;
dest_occupant = self:new_occupant(bare_jid, dest_jid);
@@
-483,6
+477,7
@@
function room_mt:handle_normal_presence(origin, stanza)
end
-- TODO Handle these cases sensibly
end
-- TODO Handle these cases sensibly
+ local muc_x = stanza:get_child("x", "http://jabber.org/protocol/muc");
if orig_occupant == nil and not muc_x then
module:log("debug", "Join without <x>, possibly desynced");
elseif orig_occupant ~= nil and muc_x then
if orig_occupant == nil and not muc_x then
module:log("debug", "Join without <x>, possibly desynced");
elseif orig_occupant ~= nil and muc_x then