]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Rework] Allow multiple conditions for dkim signing when using vault/redis
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 9 Mar 2024 14:41:14 +0000 (14:41 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 9 Mar 2024 14:41:14 +0000 (14:41 +0000)
lualib/lua_dkim_tools.lua
src/plugins/lua/dkim_signing.lua

index 38753c46e2c924969b656467b75c940410a63616..ad780c0f0c7c6ac8bdd0a6b39a9aaf1bb537a6a1 100644 (file)
@@ -461,21 +461,20 @@ local function prepare_dkim_signing(N, task, settings)
   if settings.use_vault then
     if settings.vault_domains then
       if settings.vault_domains:get_key(dkim_domain) then
-        return true, {
+        table.insert(p, {
           domain = dkim_domain,
           vault = true,
-        }
+        })
       else
         lua_util.debugm(N, task, 'domain %s is not designated for vault',
             dkim_domain)
-        return false, {}
       end
     else
       -- TODO: try every domain in the vault
-      return true, {
+      table.insert(p, {
         domain = dkim_domain,
         vault = true,
-      }
+      })
     end
   end
 
@@ -546,7 +545,7 @@ local function prepare_dkim_signing(N, task, settings)
   insert_or_update_prop(N, task, p, 'domain', 'dkim_domain',
       dkim_domain)
 
-  return true, p
+  return #p > 0 and true or false, p
 end
 
 exports.prepare_dkim_signing = prepare_dkim_signing
index 6c05520ce51e3051f748bc941284251979ffd01c..4d16bdf373fd8ebec58369661afa9e672a589373 100644 (file)
@@ -108,7 +108,7 @@ end
 local function dkim_signing_cb(task)
   local ret, selectors = dkim_sign_tools.prepare_dkim_signing(N, task, settings)
 
-  if not ret then
+  if not ret or #selectors == 0 then
     return
   end