summaryrefslogtreecommitdiffstats
path: root/lualib/lua_mime.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lualib/lua_mime.lua')
-rw-r--r--lualib/lua_mime.lua14
1 files changed, 13 insertions, 1 deletions
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