]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] rbl: support disabling or replacing url_whitelist per RBL 4742/head
authorAndrew Lewis <nerf@judo.za.org>
Tue, 12 Dec 2023 20:53:23 +0000 (22:53 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 12 Dec 2023 20:53:23 +0000 (22:53 +0200)
conf/modules.d/rbl.conf
lualib/plugins/rbl.lua
src/plugins/lua/rbl.lua

index dcb5661c061631329e1e2eca4aa4c29d88e1918d..79dfc84ea2a9b1fc302c9bdf57ca308a59b46f3b 100644 (file)
@@ -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";
index bf8bd3cfac0777755530f9fb7bd504341a5ee0ca..7c5efb4cd1171d74a1fec8723adc57053c2cfbc3 100644 (file)
@@ -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 = (
index fda7cce16edb466d604427a3c95f8f5168009f52..a18f9a73145e873a412b7154e6ecb9705ae97ca0 100644 (file)
@@ -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)