]> git.ipfire.org Git - thirdparty/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)
committerAndrew Lewis <nerf@judo.za.org>
Wed, 26 Apr 2017 14:21:55 +0000 (16:21 +0200)
 - Issue: #1582

src/plugins/lua/dkim_signing.lua

index ec2f70dc5d80293aff573460b1a7617c9efd6f04..3d83c251cad7b7778de9dcb24ecb69dd15bab065 100644 (file)
@@ -66,11 +66,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
@@ -96,10 +96,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')