summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2023-12-12 22:53:23 +0200
committerAndrew Lewis <nerf@judo.za.org>2023-12-12 22:53:23 +0200
commitd06fc3bea376118d912821d106cf50ba03588ffa (patch)
tree11423b5ab0716f1bdcee6c0e5c92bf5d2e19c727
parenta639c5fae0943ce758e9dc36cb57a2e81849c933 (diff)
downloadrspamd-d06fc3bea376118d912821d106cf50ba03588ffa.tar.gz
rspamd-d06fc3bea376118d912821d106cf50ba03588ffa.zip
[Feature] rbl: support disabling or replacing url_whitelist per RBL
-rw-r--r--conf/modules.d/rbl.conf2
-rw-r--r--lualib/plugins/rbl.lua2
-rw-r--r--src/plugins/lua/rbl.lua4
3 files changed, 6 insertions, 2 deletions
diff --git a/conf/modules.d/rbl.conf b/conf/modules.d/rbl.conf
index dcb5661c0..79dfc84ea 100644
--- a/conf/modules.d/rbl.conf
+++ b/conf/modules.d/rbl.conf
@@ -167,6 +167,7 @@ rbl {
RSPAMD_EMAILBL {
ignore_whitelist = true;
+ ignore_url_whitelist = true;
ignore_defaults = true;
exclude_users = false;
emails_delimiter = ".";
@@ -182,6 +183,7 @@ rbl {
MSBL_EBL {
ignore_whitelist = true;
+ ignore_url_whitelist = true;
ignore_defaults = true;
exclude_users = false;
rbl = "ebl.msbl.org";
diff --git a/lualib/plugins/rbl.lua b/lualib/plugins/rbl.lua
index bf8bd3cfa..7c5efb4cd 100644
--- a/lualib/plugins/rbl.lua
+++ b/lualib/plugins/rbl.lua
@@ -98,6 +98,7 @@ local rule_schema_tbl = {
helo = ts.boolean:is_optional(),
ignore_default = ts.boolean:is_optional(), -- alias
ignore_defaults = ts.boolean:is_optional(),
+ ignore_url_whitelist = ts.boolean:is_optional(),
ignore_whitelist = ts.boolean:is_optional(),
ignore_whitelists = ts.boolean:is_optional(), -- alias
images = ts.boolean:is_optional(),
@@ -136,6 +137,7 @@ local rule_schema_tbl = {
unknown = ts.boolean:is_optional(),
url_compose_map = lua_maps.map_schema:is_optional(),
url_full_hostname = ts.boolean:is_optional(),
+ url_whitelist = lua_maps.map_schema:is_optional(),
urls = ts.boolean:is_optional(),
whitelist = lua_maps.map_schema:is_optional(),
whitelist_exception = (
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index fda7cce16..a18f9a731 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -1117,11 +1117,11 @@ local function add_rbl(key, rbl, global_opts)
end
end
- if not rbl.whitelist and global_opts.url_whitelist and
+ if not rbl.whitelist and not rbl.ignore_url_whitelist and (global_opts.url_whitelist or rbl.url_whitelist) and
(rbl.urls or rbl.emails or rbl.dkim or rbl.replyto) and
not (rbl.from or rbl.received) then
local def_type = 'set'
- rbl.whitelist = lua_maps.map_add_from_ucl(global_opts.url_whitelist, def_type,
+ rbl.whitelist = lua_maps.map_add_from_ucl(rbl.url_whitelist or global_opts.url_whitelist, def_type,
'RBL url whitelist for ' .. rbl.symbol)
rspamd_logger.infox(rspamd_config, 'added URL whitelist for RBL %s',
rbl.symbol)