From: Jason Stephenson Date: Tue, 23 Jul 2024 15:12:28 +0000 (+0100) Subject: Use pattern to get all methodspecs + reasonspecs, and return the value of the arc... X-Git-Tag: 3.10.0~68^2^2~1^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=42c4aa280f20aa66a7be5528da119a63fa0073d4;p=rspamd.git Use pattern to get all methodspecs + reasonspecs, and return the value of the arc one if present --- diff --git a/src/plugins/lua/arc.lua b/src/plugins/lua/arc.lua index 1533655d5..98f9303fa 100644 --- a/src/plugins/lua/arc.lua +++ b/src/plugins/lua/arc.lua @@ -635,11 +635,22 @@ local function prepare_arc_selector(task, sel) end end + local function arc_result_from_ar(ar_header) + ar_header = ar_header or "" + for k, v in string.gmatch(ar_header, "(%w+)=(%w+)") do + if k == 'arc' then + return v + end + end + + return nil + end + if settings.reuse_auth_results then local ar_header = task:get_header('Authentication-Results') if ar_header then - local arc_match = string.match(ar_header, '[; ]arc=(%w+)') + local arc_match = arc_result_from_ar(ar_header) if arc_match then if arc_match == 'none' or arc_match == 'pass' then