# HG changeset patch # User Waqas Hussain # Date 1238369952 -18000 # Node ID 40ccaacb20006b779398eab9d470e9b6a33a9daa # Parent 5663db788fdf5fe77055899ca0c1d7bf429f7689 Added: MUC: Room invites diff -r 5663db788fdf -r 40ccaacb2000 plugins/mod_muc.lua --- a/plugins/mod_muc.lua Mon Mar 30 03:58:59 2009 +0500 +++ b/plugins/mod_muc.lua Mon Mar 30 04:39:12 2009 +0500 @@ -369,6 +369,16 @@ elseif type ~= "error" and type ~= "result" then origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); end + elseif stanza.name == "message" and not stanza.attr.type and #stanza.tags == 1 and jid_nick:get(stanza.attr.from, stanza.attr.to) + and stanza.tags[1].name == "x" and stanza.tags[1].attr.xmlns == "http://jabber.org/protocol/muc#user" and #stanza.tags[1].tags == 1 + and stanza.tags[1].tags[1].name == "invite" and stanza.tags[1].tags[1].attr.to then + local _from, _to = stanza.attr.from, stanza.attr.to; + local _invitee = stanza.tags[1].tags[1].attr.to; + stanza.attr.from, stanza.attr.to = _to, _invitee; + stanza.tags[1].tags[1].attr.from, stanza.tags[1].tags[1].attr.to = _from, nil; + core_route_stanza(component, stanza); + stanza.tags[1].tags[1].attr.from, stanza.tags[1].tags[1].attr.to = nil, _invitee; + stanza.attr.from, stanza.attr.to = _from, _to; else if type == "error" or type == "result" then return; end origin.send(st.error_reply(stanza, "cancel", "service-unavailable"));