323 origin.send(reply:tag("x", {xmlns = "http://jabber.org/protocol/muc"})); |
323 origin.send(reply:tag("x", {xmlns = "http://jabber.org/protocol/muc"})); |
324 end |
324 end |
325 end |
325 end |
326 end |
326 end |
327 elseif type ~= 'result' then -- bad type |
327 elseif type ~= 'result' then -- bad type |
328 origin.send(st.error_reply(stanza, "modify", "bad-request")); -- FIXME correct error? |
328 if type ~= 'visible' and type ~= 'invisible' then -- COMPAT ejabberd can broadcast or forward XEP-0018 presences |
|
329 origin.send(st.error_reply(stanza, "modify", "bad-request")); -- FIXME correct error? |
|
330 end |
329 end |
331 end |
330 elseif not current_nick then -- not in room |
332 elseif not current_nick then -- not in room |
331 if type == "error" or type == "result" then |
333 if type == "error" or type == "result" then |
332 local id = stanza.name == "iq" and stanza.attr.id and base64.decode(stanza.attr.id); |
334 local id = stanza.name == "iq" and stanza.attr.id and base64.decode(stanza.attr.id); |
333 local _nick, _id, _hash = (id or ""):match("^(.+)%z(.*)%z(.+)$"); |
335 local _nick, _id, _hash = (id or ""):match("^(.+)%z(.*)%z(.+)$"); |