# HG changeset patch # User Kim Alvefur # Date 1527016971 -7200 # Node ID c96c00dc424b6e90cdb4f98cb9b2bfa6df0cb289 # Parent 9a3066a580ad17741745dd9a1e798b5dae0344a9 MUC: Add support for an optional hard limit on number of rooms (fixes #766) diff -r 9a3066a580ad -r c96c00dc424b plugins/muc/mod_muc.lua --- a/plugins/muc/mod_muc.lua Sun May 20 15:20:34 2018 +0200 +++ b/plugins/muc/mod_muc.lua Tue May 22 21:22:51 2018 +0200 @@ -124,8 +124,15 @@ 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;