commit 935e791: [Minor] Compat: Allow to use old style sign_condition

Vsevolod Stakhov vsevolod at highsecure.ru
Fri May 31 15:42:07 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-05-31 16:40:52 +0100
URL: https://github.com/rspamd/rspamd/commit/935e7918e6066304023c82887e4d07965f1268f2

[Minor] Compat: Allow to use old style sign_condition

---
 lualib/lua_cfg_transform.lua | 23 ++++++++++++++++++++++-
 lualib/lua_dkim_tools.lua    |  9 +++++++--
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/lualib/lua_cfg_transform.lua b/lualib/lua_cfg_transform.lua
index ae05eed59..971a341b4 100644
--- a/lualib/lua_cfg_transform.lua
+++ b/lualib/lua_cfg_transform.lua
@@ -301,8 +301,29 @@ return function(cfg)
   end
 
   -- Deal with dkim settings
-  if not cfg.dkim then cfg.dkim = {} end
+  if not cfg.dkim then
+    cfg.dkim = {}
+  else
+    if cfg.dkim.sign_condition then
+      -- We have an obsoleted sign condition, so we need to either add dkim_signing and move it
+      -- there or just move sign condition there...
+      if not cfg.dkim_signing then
+        logger.warnx('obsoleted DKIM signing method used, converting it to "dkim_signing" module')
+        cfg.dkim_signing = {
+          sign_condition = cfg.dkim.sign_condition
+        }
+      else
+        if not cfg.dkim_signing.sign_condition then
+          logger.warnx('obsoleted DKIM signing method used, move it to "dkim_signing" module')
+          cfg.dkim_signing.sign_condition = cfg.dkim.sign_condition
+        else
+          logger.warnx('obsoleted DKIM signing method used, ignore it as "dkim_signing" also defines condition!')
+        end
+      end
+    end
+  end
 
+  -- Again: legacy stuff :(
   if not cfg.dkim.sign_headers then
     local sec = cfg.dkim_signing
     if sec and sec[1] then sec = cfg.dkim_signing[1] end
diff --git a/lualib/lua_dkim_tools.lua b/lualib/lua_dkim_tools.lua
index fbb071245..4ca1a662f 100644
--- a/lualib/lua_dkim_tools.lua
+++ b/lualib/lua_dkim_tools.lua
@@ -142,7 +142,11 @@ local function prepare_dkim_signing(N, task, settings)
       return false,{}
     end
 
-    return true,ret
+    if ret[1] then
+      return true,ret
+    else
+      return true,{ret}
+    end
   end
 
   local auser = task:get_user()
@@ -666,7 +670,8 @@ exports.validate_signing_settings = function(settings)
       settings.selector_map or
       settings.use_http_headers or
       (settings.signing_table and settings.key_table) or
-      (settings.use_vault and settings.vault_url and settings.vault_token)
+      (settings.use_vault and settings.vault_url and settings.vault_token) or
+      settings.sign_condition
 end
 
 exports.process_signing_settings = function(N, settings, opts)


More information about the Commits mailing list