local is_whitelisted = task:get_mempool():get_variable("grey_whitelisted")
local do_greylisting = task:get_mempool():get_variable("grey_greylisted")
+ local do_greylisting_required = task:get_mempool():get_variable("grey_greylisted_required")
-- Third and second level domains whitelist
if not is_whitelisted and whitelist_domains_map then
end
local action = task:get_metric_action('default')
- if action == 'no action' or action == 'reject' then return end
+ if action == 'no action' or action == 'reject' then
+ if not do_greylisting_required or do_greylisting_required ~= "1" then return end
+ end
local body_key = data_key(task)
local meta_key = envelope_key(task)
local upstream, ret, conn
rspamd_logger.infox(task, 'got error while connecting to redis: %1', addr)
upstream:fail()
end
- elseif do_greylisting then
+ elseif do_greylisting or do_greylisting_required then
local t = tostring(math.floor(rspamd_util.get_time()))
local end_time = rspamd_util.time_to_string(t + settings['timeout'])
rspamd_logger.infox(task, 'greylisted until "%s", new record', end_time)