aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/muc/mod_muc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/muc/mod_muc.lua')
-rw-r--r--plugins/muc/mod_muc.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/muc/mod_muc.lua b/plugins/muc/mod_muc.lua
index 6ba0ffb5..d9d8fa2e 100644
--- a/plugins/muc/mod_muc.lua
+++ b/plugins/muc/mod_muc.lua
@@ -153,6 +153,12 @@ function track_room(room)
return false;
end
+local function handle_broken_room(room, origin, stanza)
+ module:log("debug", "Returning error from broken room %s", room.jid);
+ origin.send(st.error_reply(stanza, "wait", "internal-server-error"));
+ return true;
+end
+
local function restore_room(jid)
local node = jid_split(jid);
local data, err = room_configs:get(node);
@@ -167,6 +173,8 @@ local function restore_room(jid)
elseif err then
module:log("error", "Error restoring room %s from storage: %s", jid, err);
local room = muclib.new_room(jid, { locked = math.huge });
+ room.handle_normal_presence = handle_broken_room;
+ room.handle_first_presence = handle_broken_room;
return room;
end
end