end
end
- if rule['expression'] then
+ if rule.expression then
local res,trace = rule['expression']:process_traced(task)
if not res or res == 0 then
- lua_util.debugm(N, task, 'condition is false for %s', rule['symbol'])
+ lua_util.debugm(N, task, 'condition is false for %s',
+ rule.symbol)
return
else
- lua_util.debugm(N, task, 'condition is true for %s: %s', rule['symbol'],
- trace)
+ lua_util.debugm(N, task, 'condition is true for %s: %s',
+ rule.symbol,
+ trace)
end
end
- local rt = rule['type']
local process_rule_funcs = {
- dnsbl = function()
+ ip = function()
local ip = task:get_from_ip()
if ip:is_valid() then
- if rt == 'ip' then
match_rule(rule, ip)
- else
- local to_resolve = ip_to_rbl(ip, rule['map'])
+ end
+ end,
+ dnsbl = function()
+ local ip = task:get_from_ip()
+ if ip:is_valid() then
+ local to_resolve = ip_to_rbl(ip, rule['map'])
- local is_ok, results = rspamd_dns.request({
- type = "a",
- task = task,
- name = to_resolve,
- })
+ local is_ok, results = rspamd_dns.request({
+ type = "a",
+ task = task,
+ name = to_resolve,
+ })
- lua_util.debugm(N, rspamd_config,
- 'resolve() finished: results=%1, is_ok=%2, to_resolve=%3',
- results, is_ok, to_resolve)
-
- if not is_ok and
- (results ~= 'requested record is not found' and results ~= 'no records with this name') then
- rspamd_logger.errx(task, 'error looking up %s: %s', to_resolve, results)
- elseif is_ok then
- task:insert_result(rule['symbol'], 1, rule['map'])
- if pre_filter then
- task:set_pre_result(rule['action'], 'Matched map: ' .. rule['symbol'], N)
- end
+ lua_util.debugm(N, rspamd_config,
+ 'resolve() finished: results=%1, is_ok=%2, to_resolve=%3',
+ results, is_ok, to_resolve)
+
+ if not is_ok and
+ (results ~= 'requested record is not found' and results ~= 'no records with this name') then
+ rspamd_logger.errx(task, 'error looking up %s: %s', to_resolve, results)
+ elseif is_ok then
+ task:insert_result(rule['symbol'], 1, rule['map'])
+ if pre_filter then
+ task:set_pre_result(rule['action'], 'Matched map: ' .. rule['symbol'], N)
end
-
end
end
end,
end,
}
- process_rule_funcs.ip = process_rule_funcs.dnsbl
- local f = process_rule_funcs[rt]
- if f then
- f()
+ local rt = rule.type
+ local process_func = process_rule_funcs[rt]
+ if process_func then
+ process_func()
else
rspamd_logger.errx(task, 'Unrecognised rule type: %s', rt)
end