Mercurial > prosody-modules
view mod_limits_exception/mod_limits_exception.lua @ 5381:32a9817c7516
mod_firewall: Initialize compiled chunk just once for all handlers
This should fix a case where some stateful dependencies (such as throttles)
produce separate instances for every call to new_handler(), leading to
surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would
have separate rate limits).
This also adds better error handling in case the compiled code fails to run
for some reason.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 28 Apr 2023 13:27:06 +0100 (22 months ago) |
parents | 28c16c93d79a |
children |
line wrap: on
line source
local unlimited_jids = module:get_option_inherited_set("unlimited_jids", {}); if unlimited_jids:empty() then return; end module:hook("authentication-success", function (event) local session = event.session; local jid = session.username .. "@" .. session.host; if unlimited_jids:contains(jid) then if session.conn and session.conn.setlimit then session.conn:setlimit(0); elseif session.throttle then session.throttle = nil; end end end);