Software /
code /
prosody-modules
Diff
mod_muc_limits/mod_muc_limits.lua @ 3188:5c3f3f5a4377
Backed out parts of changeset a81456a13797
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 18 Jul 2018 15:57:13 +0200 |
parent | 3098:a81456a13797 |
child | 3402:6a3060d5e85d |
line wrap: on
line diff
--- a/mod_muc_limits/mod_muc_limits.lua Fri Jul 13 14:38:40 2018 +0200 +++ b/mod_muc_limits/mod_muc_limits.lua Wed Jul 18 15:57:13 2018 +0200 @@ -25,18 +25,6 @@ dropped_jids = nil; end -local function get_non_outcast_affiliations(room) - local nmembers = 0; - -- this is an evil hack, we probably should not access _affiliations - -- directly ... - for _, aff in pairs(room._affiliations) do - if aff ~= "outcast" then - nmembers = nmembers + 1; - end - end - return nmembers; -end - local function handle_stanza(event) local origin, stanza = event.origin, event.stanza; if stanza.name == "presence" and stanza.attr.type == "unavailable" then -- Don't limit room leaving @@ -61,15 +49,7 @@ throttle = new_throttle(period*burst, burst); room.throttle = throttle; end - - local cost = 1; - -- we scale the cost by the inverse of the square root of the number of - -- members; this should effectively raise the limit by a factor of - -- sqrt(nmembers) - local nmembers = math.max(get_non_outcast_affiliations(room), 1); - cost = cost / math.sqrt(nmembers); - - if not throttle:poll(cost) then + if not throttle:poll(1) then module:log("debug", "Dropping stanza for %s@%s from %s, over rate limit", dest_room, dest_host, from_jid); if not dropped_jids then dropped_jids = { [from_jid] = true, from_jid };