Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 6101:a861dc18e08d
plugins/muc/muc.lib: Add disco iq handlers with compatible argument signature
author | daurnimator <quae@daurnimator.com> |
---|---|
date | Fri, 21 Feb 2014 19:06:33 -0500 |
parent | 6100:c78ba94d3261 |
child | 6102:385772166289 |
comparison
equal
deleted
inserted
replaced
6100:c78ba94d3261 | 6101:a861dc18e08d |
---|---|
825 end | 825 end |
826 self:set_persistent(false); | 826 self:set_persistent(false); |
827 module:fire_event("muc-room-destroyed", { room = self }); | 827 module:fire_event("muc-room-destroyed", { room = self }); |
828 end | 828 end |
829 | 829 |
830 function room_mt:handle_disco_info_get_query(origin, stanza) | |
831 origin.send(self:get_disco_info(stanza)); | |
832 return true; | |
833 end | |
834 | |
835 function room_mt:handle_disco_items_get_query(origin, stanza) | |
836 origin.send(self:get_disco_items(stanza)); | |
837 return true; | |
838 end | |
839 | |
830 function room_mt:handle_admin_item_set_command(origin, stanza) | 840 function room_mt:handle_admin_item_set_command(origin, stanza) |
831 local item = stanza.tags[1].tags[1]; | 841 local item = stanza.tags[1].tags[1]; |
832 if item.attr.jid then -- Validate provided JID | 842 if item.attr.jid then -- Validate provided JID |
833 item.attr.jid = jid_prep(item.attr.jid); | 843 item.attr.jid = jid_prep(item.attr.jid); |
834 if not item.attr.jid then | 844 if not item.attr.jid then |
949 | 959 |
950 function room_mt:handle_iq_to_room(origin, stanza) | 960 function room_mt:handle_iq_to_room(origin, stanza) |
951 local type = stanza.attr.type; | 961 local type = stanza.attr.type; |
952 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; | 962 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; |
953 if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" and not stanza.tags[1].attr.node then | 963 if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" and not stanza.tags[1].attr.node then |
954 origin.send(self:get_disco_info(stanza)); | 964 return self:handle_disco_info_get_query(origin, stanza) |
955 return true; | |
956 elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" and not stanza.tags[1].attr.node then | 965 elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" and not stanza.tags[1].attr.node then |
957 origin.send(self:get_disco_items(stanza)); | 966 return self:handle_disco_items_get_query(origin, stanza) |
958 return true; | |
959 elseif xmlns == "http://jabber.org/protocol/muc#admin" then | 967 elseif xmlns == "http://jabber.org/protocol/muc#admin" then |
960 local item = stanza.tags[1].tags[1]; | 968 local item = stanza.tags[1].tags[1]; |
961 if item and item.name == "item" then | 969 if item and item.name == "item" then |
962 if type == "set" then | 970 if type == "set" then |
963 return self:handle_admin_item_set_command(origin, stanza) | 971 return self:handle_admin_item_set_command(origin, stanza) |