diff options
author | Kim Alvefur <zash@zash.se> | 2018-07-10 21:10:12 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2018-07-10 21:10:12 +0200 |
commit | 6e344686b5774ab3d8aef40fb2a5f6987a5f0ad0 (patch) | |
tree | b608965741f9422c396a5e4be447cf5dd9f87c4c /plugins | |
parent | 830370ad911628088c5cee4b3c803e63ec3b1188 (diff) | |
download | prosody-6e344686b5774ab3d8aef40fb2a5f6987a5f0ad0.tar.gz prosody-6e344686b5774ab3d8aef40fb2a5f6987a5f0ad0.zip |
MUC: Flag rooms being destroyed (fixes #887)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/muc/mod_muc.lua | 1 | ||||
-rw-r--r-- | plugins/muc/muc.lib.lua | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/plugins/muc/mod_muc.lua b/plugins/muc/mod_muc.lua index a260823d..ad937bc4 100644 --- a/plugins/muc/mod_muc.lua +++ b/plugins/muc/mod_muc.lua @@ -156,6 +156,7 @@ end); -- Automatically destroy empty non-persistent rooms module:hook("muc-occupant-left",function(event) local room = event.room + if room.destroying then return end if not room:has_occupant() and not persistent.get(room) then -- empty, non-persistent room module:fire_event("muc-room-destroyed", { room = room }); end diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua index 58853e66..b61d72b9 100644 --- a/plugins/muc/muc.lib.lua +++ b/plugins/muc/muc.lib.lua @@ -848,6 +848,7 @@ function room_mt:destroy(newjid, reason, password) if reason then x:tag("reason"):text(reason):up(); end if password then x:tag("password"):text(password):up(); end x:up(); + self.destroying = reason or true; self:clear(x); module:fire_event("muc-room-destroyed", { room = self }); return true; |