]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Implement generic whitelist in reputation plugin
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 18 May 2019 13:36:10 +0000 (14:36 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 18 May 2019 13:36:10 +0000 (14:36 +0100)
src/plugins/lua/reputation.lua

index 06fda45a67b56066db6019e6c09e2f4503e2f8b9..5487020c1ef5433f1073b6385061224169c76935 100644 (file)
@@ -27,6 +27,7 @@ local rspamd_logger = require "rspamd_logger"
 local rspamd_util = require "rspamd_util"
 local lua_util = require "lua_util"
 local lua_maps = require "lua_maps"
+local lua_maps_exprs = require "lua_maps_expressions"
 local hash = require 'rspamd_cryptobox_hash'
 local lua_redis = require "lua_redis"
 local fun = require "fun"
@@ -1022,8 +1023,8 @@ local function is_rule_applicable(task, rule)
     end
   end
 
-  if rule.selector.config.whitelisted_ip_map then
-    if rule.config.whitelisted_ip_map:get_key(ip) then
+  if rule.config.whitelist_map then
+    if rule.config.whitelist_map:process(task) then
       return false
     end
   end
@@ -1114,10 +1115,9 @@ local function parse_rule(name, tbl)
   tbl.backend = nil
   rule.config = lua_util.override_defaults(rule.config, tbl)
 
-  if rule.config.whitelisted_ip then
-    rule.config.whitelisted_ip_map = lua_maps.rspamd_map_add_from_ucl(rule.whitelisted_ip,
-      'radix',
-      'Reputation whitelist for ' .. name)
+  if rule.config.whitelist then
+    rule.config.whitelist_map = lua_maps_exprs.create(rspamd_config,
+        rule.config.whitelist, N)
   end
 
   local symbol = name