aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2011-08-20 16:51:47 -0400
committerMatthew Wild <mwild1@gmail.com>2011-08-20 16:51:47 -0400
commitcb11644d8dad6d354d495c95ec67b14fd29ce31e (patch)
tree2734cd775e696bd4ec8e0239901a92cdac7be5e5
parente833a3485d39992a58a015a5a2d853ce6f4a58cd (diff)
downloadprosody-cb11644d8dad6d354d495c95ec67b14fd29ce31e.tar.gz
prosody-cb11644d8dad6d354d495c95ec67b14fd29ce31e.zip
net.http: Support for k->v maps in http.formencode
-rw-r--r--net/http.lua10
1 files changed, 8 insertions, 2 deletions
diff --git a/net/http.lua b/net/http.lua
index df4d9a02..1fdde22c 100644
--- a/net/http.lua
+++ b/net/http.lua
@@ -40,8 +40,14 @@ end
function formencode(form)
local result = {};
- for _, field in ipairs(form) do
- t_insert(result, _formencodepart(field.name).."=".._formencodepart(field.value));
+ if form[1] then -- Array of ordered { name, value }
+ for _, field in ipairs(form) do
+ t_insert(result, _formencodepart(field.name).."=".._formencodepart(field.value));
+ end
+ else -- Unordered map of name -> value
+ for name, value in pairs(form) do
+ t_insert(result, _formencodepart(name).."=".._formencodepart(value));
+ end
end
return t_concat(result, "&");
end