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