aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/lua/reputation.lua24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/plugins/lua/reputation.lua b/src/plugins/lua/reputation.lua
index 4389d72b5..9e70043b8 100644
--- a/src/plugins/lua/reputation.lua
+++ b/src/plugins/lua/reputation.lua
@@ -141,8 +141,8 @@ end
local function reputation_dns_get_token(task, rule, token, continuation_cb)
local r = task:get_resolver()
- local to_resolve = gen_token_key(token)
- local dns_name = to_resolve .. '.' .. rule.backend.config.list
+ local key = gen_token_key(token, rule)
+ local dns_name = key .. '.' .. rule.backend.config.list
local function dns_callback(_, to_resolve, results, err)
if err and (err ~= 'requested record is not found' and err ~= 'no records with this name') then
@@ -163,7 +163,7 @@ local function reputation_dns_get_token(task, rule, token, continuation_cb)
fun.each(function(e)
local vals = lua_util.rspamd_str_split(e, "=")
if vals and #vals == 2 then
- local nv = tonumber[vals[2]]
+ local nv = tonumber(vals[2])
if nv then
values[vals[1]] = nv
end
@@ -186,7 +186,7 @@ local function reputation_dns_get_token(task, rule, token, continuation_cb)
end
local function reputation_redis_get_token(task, rule, token, continuation_cb)
- local key = gen_token_key(token)
+ local key = gen_token_key(token, rule)
local function redis_get_cb(err, data)
if data then
@@ -228,9 +228,9 @@ local function reputation_redis_get_token(task, rule, token, continuation_cb)
end
local function reputation_redis_set_token(task, rule, token, values, continuation_cb)
- local key = gen_token_key(token)
+ local key = gen_token_key(token, rule)
- local ret,conn,upstream
+ local ret,conn
local function redis_set_cb(err, data)
if err then
@@ -243,7 +243,7 @@ local function reputation_redis_set_token(task, rule, token, values, continuatio
end
-- We start from expiry update
- ret,conn,upstream = rspamd_redis_make_request(task,
+ ret,conn = rspamd_redis_make_request(task,
redis_params, -- connect params
nil, -- hash key
true, -- is write
@@ -291,6 +291,7 @@ local backends = {
}
local function is_rule_applicable(task, rule)
+ local ip = task:get_from_ip()
if rule.config.outbound then
if not (task:get_user() or (ip and ip:is_local())) then
return false
@@ -302,7 +303,7 @@ local function is_rule_applicable(task, rule)
end
if rule.config.whitelisted_ip_map then
- if rule.config.whitelisted_ip_map:get_key(task:get_from_ip()) then
+ if rule.config.whitelisted_ip_map:get_key(ip) then
return false
end
end
@@ -358,8 +359,6 @@ local function override_defaults(def, override)
end
end
-local rules = {}
-
local function callback_gen(cb, rule)
return function(task)
cb(task, rule)
@@ -456,7 +455,6 @@ local function parse_rule(name, tbl)
}
end
- rules.symbol = rule
end
redis_params = rspamd_parse_redis_server('reputation')
@@ -469,8 +467,8 @@ if not (opts and type(opts) == 'table') then
end
if opts['rules'] then
- for k,v in opts['rules'] do
- if not v.selector or not v.selector.type then
+ for k,v in pairs(opts['rules']) do
+ if not ((v or E).selector or E).type then
rspamd_logger.errx(rspamd_config, "no selector defined for rule %s", k)
else
parse_rule(k, v)