From 935e7918e6066304023c82887e4d07965f1268f2 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 31 May 2019 16:40:52 +0100 Subject: [PATCH] [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) -- 2.39.5