projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
064971e
)
MUC: Use a timestamp to keep track of when to unlock room instead of a timer (so...
author
Kim Alvefur
<zash@zash.se>
Thu, 28 Apr 2016 21:20:41 +0000
(23:20 +0200)
committer
Kim Alvefur
<zash@zash.se>
Thu, 28 Apr 2016 21:20:41 +0000
(23:20 +0200)
plugins/muc/lock.lib.lua
patch
|
blob
|
history
diff --git
a/plugins/muc/lock.lib.lua
b/plugins/muc/lock.lib.lua
index e316c57c94789594845da72c44d928680451e121..15dd624b455d78b198d9ecc443f34b8706200611 100644
(file)
--- a/
plugins/muc/lock.lib.lua
+++ b/
plugins/muc/lock.lib.lua
@@
-14,14
+14,19
@@
local lock_room_timeout = module:get_option_number("muc_room_lock_timeout", 300)
local function lock(room)
module:fire_event("muc-room-locked", {room = room;});
local function lock(room)
module:fire_event("muc-room-locked", {room = room;});
- room._data.locked =
true
;
+ room._data.locked =
os.time() + lock_room_timeout
;
end
local function unlock(room)
module:fire_event("muc-room-unlocked", {room = room;});
room._data.locked = nil;
end
local function is_locked(room)
end
local function unlock(room)
module:fire_event("muc-room-unlocked", {room = room;});
room._data.locked = nil;
end
local function is_locked(room)
- return not not room._data.locked;
+ local ts = room._data.locked or false;
+ if ts then
+ if ts < os.time() then return true; end
+ unlock(room);
+ end
+ return false;
end
if lock_rooms then
end
if lock_rooms then
@@
-31,13
+36,6
@@
if lock_rooms then
-- Lock room at creation
local room = event.room;
lock(room);
-- Lock room at creation
local room = event.room;
lock(room);
- if lock_room_timeout and lock_room_timeout > 0 then
- module:add_timer(lock_room_timeout, function ()
- if is_locked(room) then
- room:destroy(); -- Not unlocked in time
- end
- end);
- end
end, 10);
end
end, 10);
end