From a7cc997c9d8b23f01be8de752c3d05bcf07d3341 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 19 Jan 2021 15:58:47 +0000 Subject: [PATCH] [Minor] Allow to use ratelimit as an ordinary filter --- src/plugins/lua/ratelimit.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/plugins/lua/ratelimit.lua b/src/plugins/lua/ratelimit.lua index cd9af6dfe9..7f999a8c4e 100644 --- a/src/plugins/lua/ratelimit.lua +++ b/src/plugins/lua/ratelimit.lua @@ -51,6 +51,7 @@ local settings = { expire = 60 * 60 * 24 * 2, -- 2 days by default limits = {}, allow_local = false, + prefilter = true, } -- Checks bucket, updating it if needed @@ -856,21 +857,24 @@ if opts then lua_util.disable_module(N, "redis") else local s = { - type = 'prefilter', + type = settings.prefilter and 'prefilter' or 'callback', name = 'RATELIMIT_CHECK', priority = 7, callback = ratelimit_cb, flags = 'empty,nostat', } - if settings.symbol then - s.name = settings.symbol - elseif settings.info_symbol then - s.name = settings.info_symbol - s.score = 0.0 + local id = rspamd_config:register_symbol(s) + + if settings.info_symbol then + rspamd_config:register_symbol{ + type = 'virtual', + name = settings.info_symbol, + score = 0.0, + parent = id + } end - rspamd_config:register_symbol(s) rspamd_config:register_symbol { type = 'idempotent', name = 'RATELIMIT_UPDATE', -- 2.47.3