From 15834a1d1c7dd5307b6340747a5adcef84252d87 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Thu, 22 Mar 2018 20:08:32 +0100 Subject: MUC: Override methods on broken rooms to return internal-server-error instead --- plugins/muc/mod_muc.lua | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'plugins') 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 -- cgit v1.2.3