From 195e112399876278e86e053f83e1248ceb347cf7 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Mon, 16 Jul 2018 12:19:19 +0200 Subject: MUC: Return 'gone' error for destroyed rooms in other cases than attempted join Lock expiry -> Reset Admin wants to join -> Reset Still locked -> cancel, gone Don't return error in response to an error --- plugins/muc/mod_muc.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'plugins') diff --git a/plugins/muc/mod_muc.lua b/plugins/muc/mod_muc.lua index 49bb12d1..c4b69f41 100644 --- a/plugins/muc/mod_muc.lua +++ b/plugins/muc/mod_muc.lua @@ -399,20 +399,20 @@ for event_name, method in pairs { local room = get_room_from_jid(room_jid); if room and room._data.destroyed then - if stanza.attr.type == nil and stanza.name == "presence" then - if is_admin(stanza.attr.from) or room._data.locked < os.time() then - -- Allow the room to be recreated by admin or after time has passed - delete_room(room); - room = nil; - else + if room._data.locked < os.time() or (is_admin(stanza.attr.from) and stanza.name == "presence" and stanza.attr.type == nil) then + -- Allow the room to be recreated by admin or after time has passed + delete_room(room); + room = nil; + else + if stanza.attr.type ~= "error" then local reply = st.error_reply(stanza, "cancel", "gone", room._data.reason) if room._data.newjid then local uri = "xmpp:"..room._data.newjid.."?join"; reply:get_child("error"):child_with_name("gone"):text(uri); end event.origin.send(reply); - return true; end + return true; end end -- cgit v1.2.3