commit e27291f: [Minor] Fix for random monitored

Vsevolod Stakhov vsevolod at highsecure.ru
Sun Jan 16 20:21:04 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-01-16 20:20:34 +0000
URL: https://github.com/rspamd/rspamd/commit/e27291f671d8707f2f98d62448b0fdf4f205fcd0 (HEAD -> master)

[Minor] Fix for random monitored
Reported by: @moisseev

---
 lualib/plugins/rbl.lua  |  1 +
 src/plugins/lua/rbl.lua | 18 ++++++++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/lualib/plugins/rbl.lua b/lualib/plugins/rbl.lua
index 973ba33c7..2b0630164 100644
--- a/lualib/plugins/rbl.lua
+++ b/lualib/plugins/rbl.lua
@@ -109,6 +109,7 @@ local rule_schema_tbl = {
   monitored_address = ts.string:is_optional(),
   no_ip = ts.boolean:is_optional(),
   process_script = ts.string:is_optional(),
+  random_monitored = ts.boolean:is_optional(),
   rbl = ts.string,
   rdns = ts.boolean:is_optional(),
   received = ts.boolean:is_optional(),
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index 22305aa1f..49b67221f 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -48,12 +48,18 @@ local url_flag_bits = rspamd_url.flags
 
 local function get_monitored(rbl)
   local function is_random_monitored()
-    return (rbl.dkim
-        or rbl.urls
-        or rbl.emails
-        or rbl.no_ip
-        or rbl.rdns
-        or rbl.helo)
+    -- Explicit definition
+    if type(rbl.random_monitored) == 'boolean' then
+      return rbl.random_monitored
+    end
+
+    -- We check 127.0.0.1 for merely RBLs with `from` or `received` and only if
+    -- they don't have `no_ip` attribute at the same time
+    --
+    -- Convert to a boolean variable using the common idiom
+    return (not (rbl.from or rbl.received)
+        or rbl.no_ip)
+        and true or false
   end
 
   local default_monitored = '1.0.0.127'


More information about the Commits mailing list