]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] DKIM signing: sign_networks/local address specific use_domain settings
authorAndrew Lewis <nerf@judo.za.org>
Wed, 26 Apr 2017 14:12:43 +0000 (16:12 +0200)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 1 May 2017 13:04:37 +0000 (14:04 +0100)
 - Issue: #1582

src/plugins/lua/dkim_signing.lua

index 71ec7fd381cd47d1cf94e6ffc2f986a23ac5b669..4843146a71af7690478147cbca0eb2b2a5e84a95 100644 (file)
@@ -62,11 +62,11 @@ local function dkim_signing_cb(task)
     is_local = true
   end
   if settings.auth_only and not auser then
-    if settings.sign_local and is_local then
-      rspamd_logger.debugm(N, task, 'mail is from local address')
-    elseif (settings.sign_networks and settings.sign_networks:get_key(ip)) then
+    if (settings.sign_networks and settings.sign_networks:get_key(ip)) then
       is_sign_networks = true
       rspamd_logger.debugm(N, task, 'mail is from address in sign_networks')
+    elseif settings.sign_local and is_local then
+      rspamd_logger.debugm(N, task, 'mail is from local address')
     else
       rspamd_logger.debugm(N, task, 'ignoring unauthenticated mail')
       return
@@ -92,10 +92,24 @@ local function dkim_signing_cb(task)
   if edom then
     edom = edom:lower()
   end
-  if settings.use_domain == 'header' then
-    dkim_domain = hdom
+  if settings.use_domain_sign_networks and is_sign_networks then
+    if settings.use_domain_sign_networks == 'header' then
+      dkim_domain = hdom
+    else
+      dkim_domain = edom
+    end
+  elseif settings.use_domain_local and is_local then
+    if settings.use_domain_local == 'header' then
+      dkim_domain = hdom
+    else
+      dkim_domain = edom
+    end
   else
-    dkim_domain = edom
+    if settings.use_domain == 'header' then
+      dkim_domain = hdom
+    else
+      dkim_domain = edom
+    end
   end
   if not dkim_domain then
     rspamd_logger.debugm(N, task, 'could not extract dkim domain')