Mercurial > prosody-hg
comparison plugins/muc/mod_muc.lua @ 1741:2919f3b985fc
MUC: Added support for generating unique room names
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Mon, 07 Sep 2009 20:29:04 +0500 |
| parents | ee4a7151ed07 |
| children | 28e5f6b535a8 |
comparison
equal
deleted
inserted
replaced
| 1740:b37ccf9bec89 | 1741:2919f3b985fc |
|---|---|
| 18 local muc_new_room = module:require "muc".new_room; | 18 local muc_new_room = module:require "muc".new_room; |
| 19 local register_component = require "core.componentmanager".register_component; | 19 local register_component = require "core.componentmanager".register_component; |
| 20 local deregister_component = require "core.componentmanager".deregister_component; | 20 local deregister_component = require "core.componentmanager".deregister_component; |
| 21 local jid_split = require "util.jid".split; | 21 local jid_split = require "util.jid".split; |
| 22 local st = require "util.stanza"; | 22 local st = require "util.stanza"; |
| 23 local uuid_gen = require "util.uuid".generate; | |
| 23 | 24 |
| 24 local rooms = {}; | 25 local rooms = {}; |
| 25 local component; | 26 local component; |
| 26 local host_room = muc_new_room(muc_host); | 27 local host_room = muc_new_room(muc_host); |
| 27 host_room.route_stanza = function(room, stanza) core_post_stanza(component, stanza); end; | 28 host_room.route_stanza = function(room, stanza) core_post_stanza(component, stanza); end; |
| 46 local xmlns = stanza.tags[1].attr.xmlns; | 47 local xmlns = stanza.tags[1].attr.xmlns; |
| 47 if xmlns == "http://jabber.org/protocol/disco#info" then | 48 if xmlns == "http://jabber.org/protocol/disco#info" then |
| 48 origin.send(get_disco_info(stanza)); | 49 origin.send(get_disco_info(stanza)); |
| 49 elseif xmlns == "http://jabber.org/protocol/disco#items" then | 50 elseif xmlns == "http://jabber.org/protocol/disco#items" then |
| 50 origin.send(get_disco_items(stanza)); | 51 origin.send(get_disco_items(stanza)); |
| 52 elseif xmlns == "http://jabber.org/protocol/muc#unique" then | |
| 53 origin.send(st.reply(stanza):tag("unique", {xmlns = xmlns}):text(uuid_gen())); -- FIXME Random UUIDs can theoretically have collisions | |
| 51 else | 54 else |
| 52 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- TODO disco/etc | 55 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- TODO disco/etc |
| 53 end | 56 end |
| 54 else | 57 else |
| 55 host_room:handle_stanza(origin, stanza); | 58 host_room:handle_stanza(origin, stanza); |
