From: Vsevolod Stakhov Date: Thu, 7 Oct 2021 08:45:03 +0000 (+0100) Subject: [Minor] Lua_mime: Allow to add headers in specific order X-Git-Tag: 3.1~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0dc617cb0eab563e9b248b3b7d029b56dbf517d6;p=thirdparty%2Frspamd.git [Minor] Lua_mime: Allow to add headers in specific order --- diff --git a/lualib/lua_mime.lua b/lualib/lua_mime.lua index 72190b19e6..ad38d3c32f 100644 --- a/lualib/lua_mime.lua +++ b/lualib/lua_mime.lua @@ -519,7 +519,8 @@ exports.modify_headers = function(task, hdr_alterations) local remove = hdr_alterations.remove or {} local hdr_flattened = {} -- For C API - for hname,hdr in pairs(add) do + + local function flatten_add_header(hname, hdr) if not hdr_flattened[hname] then hdr_flattened[hname] = {add = {}} end @@ -532,6 +533,17 @@ exports.modify_headers = function(task, hdr_alterations) end end end + if hdr_alterations.order then + -- Get headers alterations ordered + for _,hname in ipairs(hdr_alterations.order) do + flatten_add_header(hname, add[hname]) + end + else + for hname,hdr in pairs(add) do + flatten_add_header(hname, hdr) + end + end + for hname,hdr in pairs(remove) do if not hdr_flattened[hname] then