From 0dc617cb0eab563e9b248b3b7d029b56dbf517d6 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 7 Oct 2021 09:45:03 +0100 Subject: [PATCH] [Minor] Lua_mime: Allow to add headers in specific order --- lualib/lua_mime.lua | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lualib/lua_mime.lua b/lualib/lua_mime.lua index 72190b19e..ad38d3c32 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 -- 2.39.5