Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 8175:b187da5b7e8f
MUC: Include status code 110 on affiliation changes (see #765)
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 06 Jul 2017 10:36:22 +0200 |
parent | 8174:260886554512 |
child | 8176:f07cfc9b9b36 |
comparison
equal
deleted
inserted
replaced
8174:260886554512 | 8175:b187da5b7e8f |
---|---|
1007 x:tag("status", {code="301"}):up(); -- banned | 1007 x:tag("status", {code="301"}):up(); -- banned |
1008 else | 1008 else |
1009 x:tag("status", {code="321"}):up(); -- affiliation change | 1009 x:tag("status", {code="321"}):up(); -- affiliation change |
1010 end | 1010 end |
1011 end | 1011 end |
1012 local self_x = st.clone(x); | |
1013 self_x:tag("status", {code="110"}); | |
1012 local modified_nicks = {}; | 1014 local modified_nicks = {}; |
1013 for nick, occupant in pairs(self._occupants) do | 1015 for nick, occupant in pairs(self._occupants) do |
1014 if jid_bare(occupant.jid) == jid then | 1016 if jid_bare(occupant.jid) == jid then |
1015 if not role then -- getting kicked | 1017 if not role then -- getting kicked |
1016 self._occupants[nick] = nil; | 1018 self._occupants[nick] = nil; |
1021 if not role then self._jid_nick[jid] = nil; end | 1023 if not role then self._jid_nick[jid] = nil; end |
1022 local p = st.clone(pres); | 1024 local p = st.clone(pres); |
1023 p.attr.from = nick; | 1025 p.attr.from = nick; |
1024 p.attr.type = presence_type; | 1026 p.attr.type = presence_type; |
1025 p.attr.to = jid; | 1027 p.attr.to = jid; |
1026 p:add_child(x); | 1028 if occupant.jid == jid then |
1029 local bp = st.clone(p); | |
1030 bp:add_child(x); | |
1031 modified_nicks[nick] = bp; | |
1032 end | |
1033 p:add_child(self_x); | |
1027 self:_route_stanza(p); | 1034 self:_route_stanza(p); |
1028 if occupant.jid == jid then | |
1029 modified_nicks[nick] = p; | |
1030 end | |
1031 end | 1035 end |
1032 end | 1036 end |
1033 end | 1037 end |
1034 if self.save then self:save(); end | 1038 if self.save then self:save(); end |
1035 if callback then callback(); end | 1039 if callback then callback(); end |