Software /
code /
prosody
Changeset
9048:c58be87e62d0
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
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 16 Jul 2018 12:19:19 +0200 |
parents | 9047:ab3488ee3ca5 |
children | 9049:5870a0a6d4b6 |
files | plugins/muc/mod_muc.lua |
diffstat | 1 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/muc/mod_muc.lua Sun Jul 15 22:50:05 2018 +0200 +++ b/plugins/muc/mod_muc.lua Mon Jul 16 12:19:19 2018 +0200 @@ -399,20 +399,20 @@ 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