]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Re-use milter_headers settings when doing arc signing
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 13 May 2019 11:38:26 +0000 (12:38 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 13 May 2019 11:38:26 +0000 (12:38 +0100)
Issue: #2073

src/plugins/lua/arc.lua

index 53d1779b5a0120ef7bb0ddb2231dbf754c0f831f..496e8c21e5b9fc87bb450f653bdd3799a0e85e13 100644 (file)
@@ -90,6 +90,12 @@ local settings = {
   reuse_auth_results = false, -- Reuse the existing authentication results
 }
 
+-- To match normal AR
+local ar_settings = {
+  add_smtp_user = true,
+  stop_chars = ';'
+}
+
 local function parse_arc_header(hdr, target)
   -- Split elements by ';' and trim spaces
   local arr = fun.totable(fun.map(
@@ -425,10 +431,10 @@ local function arc_sign_seal(task, params, header)
       cur_auth_results = ar_header
     else
       rspamd_logger.debugm(N, task, 'cannot reuse authentication results, header is missing')
-      cur_auth_results = auth_results.gen_auth_results(task) or ''
+      cur_auth_results = auth_results.gen_auth_results(task, ar_settings) or ''
     end
   else
-    cur_auth_results = auth_results.gen_auth_results(task) or ''
+    cur_auth_results = auth_results.gen_auth_results(task, ar_settings) or ''
   end
 
   local sha_ctx = hash.create_specific('sha256')
@@ -621,6 +627,17 @@ if not dkim_sign_tools.validate_signing_settings(settings) then
   return
 end
 
+local ar_opts = rspamd_config:get_all_opt('milter_headers')
+
+if ar_opts and ar_opts.routines then
+  local routines = ar_opts.routines
+
+  if routines['authentication-results'] then
+    ar_settings = lua_util.override_defaults(ar_settings,
+        routines['authentication-results'])
+  end
+end
+
 if settings.use_redis then
   redis_params = rspamd_parse_redis_server('arc')