From a171bcffba32c751a5c40c5d795fb6c36c4f83d9 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 28 Nov 2018 13:39:23 +0000 Subject: [Fix] Perform policy downgrade on sample out, add tests --- src/plugins/lua/dmarc.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/plugins/lua/dmarc.lua b/src/plugins/lua/dmarc.lua index af43a5b8c..1bac6fb29 100644 --- a/src/plugins/lua/dmarc.lua +++ b/src/plugins/lua/dmarc.lua @@ -419,11 +419,19 @@ local function dmarc_validate_policy(task, policy, hdrfromdom, dmarc_esld) if (coin > policy.pct) then if (not no_sampling_domains or not no_sampling_domains:get_key(policy.domain)) then - task:insert_result(dmarc_symbols['softfail'], 1.0, + + if what == 'reject' then + disposition = 'quarantine' + else + disposition = 'softfail' + end + + task:insert_result(dmarc_symbols[disposition], 1.0, policy.domain .. ' : ' .. reason_str, policy.dmarc_policy, "sampled_out") sampled_out = true - lua_util.debugm(N, task, 'changed dmarc policy from %s to %s, sampled out: %s < %s', - what, 'softfail', coin, policy.pct) + lua_util.debugm(N, task, + 'changed dmarc policy from %s to %s, sampled out: %s < %s', + what, disposition, coin, policy.pct) else task:insert_result(dmarc_symbols[what], 1.0, policy.domain .. ' : ' .. reason_str, policy.dmarc_policy, "local_policy") -- cgit v1.2.3