Multiple headers with same name unsupported
Created by: vladfedin
Seems we got multiply headers with same name unsupported.
E.g. if we need something like:
X-Amz-Meta-ReviewedBy = jane@johnsmith.net
X-Amz-Meta-ReviewedBy = joe@johnsmith.net
in our http request it wont work well, as it will try to create two values on same key in headers table.
Its probably handled in Request.lua, 52:
for k, v in pairs(spore.headers or {}) do headers[k] = v end
and then 83-92
for kk, vv in pairs(headers) do
kk = tostring(kk)
vv = tostring(vv)
local nn
vv, nn = vv:gsub(':' .. k, v)
if nn > 0 then
headers[kk] = vv
self.headers[kk] = vv
n = n + 1
end
may be its better to hold them in separate tables, not in key-value pairs.
So it will look like:
headers = {
{'X-Amz-Meta-ReviewedBy'; 'jane@johnsmith.net';};
{'X-Amz-Meta-ReviewedBy'; 'joe@johnsmith.net';};
}
instead of erroneous:
headers = {
['X-Amz-Meta-ReviewedBy'] = 'jane@johnsmith.net';
['X-Amz-Meta-ReviewedBy'] = 'joe@johnsmith.net';
}
Please tell me if I get some flaws in my reasoning.
Thanks for reading, Sincerely yours V.F.