]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Allow for setting action based on DMARC disposition 774/head
authorAndrew Lewis <nerf@judo.za.org>
Sun, 31 Jul 2016 13:34:38 +0000 (15:34 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Sun, 31 Jul 2016 13:34:38 +0000 (15:34 +0200)
src/plugins/lua/dmarc.lua

index 45a30054aeffb772ae7176eea248a10a17ef5279..ef86cfd07120ee5ed41b68a30abc00f61fd83223 100644 (file)
@@ -38,6 +38,7 @@ local dmarc_redis_key_prefix = "dmarc_"
 local dmarc_domain = nil
 local elts_re = rspamd_regexp.create_cached("\\\\{0,1};\\s+")
 local dmarc_reporting = false
+local dmarc_actions = {}
 
 local function dmarc_report(task, spf_ok, dkim_ok, disposition)
   local ip = task:get_from_ip()
@@ -267,6 +268,11 @@ local function dmarc_callback(task)
       end
     end
 
+    local force_action = dmarc_actions[disposition]
+    if force_action then
+      task:set_pre_result(force_action, 'Action set by DMARC')
+    end
+
   end
 
   -- Do initial request
@@ -286,6 +292,9 @@ end
 if opts['reporting'] == true then
   dmarc_reporting = true
 end
+if type(opts['actions']) == 'table' then
+  dmarc_actions = opts['actions']
+end
 
 redis_params = rspamd_parse_redis_server('dmarc')
 if not redis_params then