Mercurial > prosody-hg
comparison plugins/muc/mod_muc.lua @ 6236:ee996e679f15
plugins/muc/mod_muc: No need to treat the host room specially
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Mon, 28 Apr 2014 16:31:21 -0400 |
| parents | d433db49e353 |
| children | a58685df9d16 |
comparison
equal
deleted
inserted
replaced
| 6235:d433db49e353 | 6236:ee996e679f15 |
|---|---|
| 10 | 10 |
| 11 if module:get_host_type() ~= "component" then | 11 if module:get_host_type() ~= "component" then |
| 12 error("MUC should be loaded as a component, please see http://prosody.im/doc/components", 0); | 12 error("MUC should be loaded as a component, please see http://prosody.im/doc/components", 0); |
| 13 end | 13 end |
| 14 | 14 |
| 15 local muc_host = module:get_host(); | |
| 16 local restrict_room_creation = module:get_option("restrict_room_creation"); | 15 local restrict_room_creation = module:get_option("restrict_room_creation"); |
| 17 if restrict_room_creation then | 16 if restrict_room_creation then |
| 18 if restrict_room_creation == true then | 17 if restrict_room_creation == true then |
| 19 restrict_room_creation = "admin"; | 18 restrict_room_creation = "admin"; |
| 20 elseif restrict_room_creation ~= "admin" and restrict_room_creation ~= "local" then | 19 elseif restrict_room_creation ~= "admin" and restrict_room_creation ~= "local" then |
| 117 module:log("error", "Missing data for room '%s', removing from persistent room list", jid); | 116 module:log("error", "Missing data for room '%s', removing from persistent room list", jid); |
| 118 persistent_errors = true; | 117 persistent_errors = true; |
| 119 end | 118 end |
| 120 end | 119 end |
| 121 if persistent_errors then persistent_rooms_storage:set(nil, persistent_rooms); end | 120 if persistent_errors then persistent_rooms_storage:set(nil, persistent_rooms); end |
| 122 | |
| 123 local host_room = muc_new_room(muc_host); | |
| 124 host_room.save = room_save; | |
| 125 rooms[muc_host] = host_room; | |
| 126 | 121 |
| 127 module:hook("host-disco-items", function(event) | 122 module:hook("host-disco-items", function(event) |
| 128 local reply = event.reply; | 123 local reply = event.reply; |
| 129 module:log("debug", "host-disco-items called"); | 124 module:log("debug", "host-disco-items called"); |
| 130 for jid, room in pairs(rooms) do | 125 for jid, room in pairs(rooms) do |
| 225 local x = st.stanza("x", {xmlns = "http://jabber.org/protocol/muc#user"}) | 220 local x = st.stanza("x", {xmlns = "http://jabber.org/protocol/muc#user"}) |
| 226 :tag("status", { code = "332"}):up(); | 221 :tag("status", { code = "332"}):up(); |
| 227 for roomjid, room in pairs(rooms) do | 222 for roomjid, room in pairs(rooms) do |
| 228 room:clear(x); | 223 room:clear(x); |
| 229 end | 224 end |
| 230 host_room:clear(x); | |
| 231 end | 225 end |
| 232 end | 226 end |
| 233 module.unload = shutdown_component; | 227 module.unload = shutdown_component; |
| 234 module:hook_global("server-stopping", shutdown_component); | 228 module:hook_global("server-stopping", shutdown_component); |
| 235 | 229 |
