commit a7cc997: [Minor] Allow to use ratelimit as an ordinary filter

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Jan 19 16:00:18 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-01-19 15:58:47 +0000
URL: https://github.com/rspamd/rspamd/commit/a7cc997c9d8b23f01be8de752c3d05bcf07d3341 (HEAD -> master)

[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 cd9af6dfe..7f999a8c4 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',


More information about the Commits mailing list