From d11db6533450a7ac6324963ab6245032ff5b3ba9 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Tue, 22 May 2018 21:22:51 +0200 Subject: MUC: Add support for an optional hard limit on number of rooms (fixes #766) --- plugins/muc/mod_muc.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'plugins/muc/mod_muc.lua') diff --git a/plugins/muc/mod_muc.lua b/plugins/muc/mod_muc.lua index 979aed8c..10de8c95 100644 --- a/plugins/muc/mod_muc.lua +++ b/plugins/muc/mod_muc.lua @@ -124,8 +124,15 @@ local function room_save(room, forced, savestate) end end +local max_rooms = module:get_option_number("muc_max_rooms"); +local max_live_rooms = module:get_option_number("muc_room_cache_size", 100); + local eviction_hit_rate = module:measure("room_eviction", "rate"); -local rooms = cache.new(module:get_option_number("muc_room_cache_size", 100), function (jid, room) +local rooms = cache.new(max_rooms or max_live_rooms, function (jid, room) + if max_rooms then + module:log("info", "Room limit of %d reached, no new rooms allowed"); + return false; + end module:log("debug", "Evicting room %s", jid); eviction_hit_rate(); room_items_cache[room.jid] = room:get_public() and room:get_name() or nil; -- cgit v1.2.3