diff options
author | Matthew Wild <mwild1@gmail.com> | 2013-04-15 16:43:08 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2013-04-15 16:43:08 +0100 |
commit | 6c0fbb813fe6fc10fefeb076221e756521bd033e (patch) | |
tree | 283cdf9c8f06279d6e30071dcf82fcb1dfd09a44 /util/http.lua | |
parent | 5f344ff0956b7dd54d190c579904c5a25ef6d2cd (diff) | |
parent | 0e656606c0200da0f0b35df4bd827245a2828fa7 (diff) | |
download | prosody-6c0fbb813fe6fc10fefeb076221e756521bd033e.tar.gz prosody-6c0fbb813fe6fc10fefeb076221e756521bd033e.zip |
Merge 0.9->trunk
Diffstat (limited to 'util/http.lua')
-rw-r--r-- | util/http.lua | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/util/http.lua b/util/http.lua index 5dd636d9..f7259920 100644 --- a/util/http.lua +++ b/util/http.lua @@ -5,12 +5,14 @@ -- COPYING file in the source package for more information. -- -local http = {}; +local format, char = string.format, string.char; +local pairs, ipairs, tonumber = pairs, ipairs, tonumber; +local t_insert, t_concat = table.insert, table.concat; -function http.urlencode(s) +local function urlencode(s) return s and (s:gsub("[^a-zA-Z0-9.~_-]", function (c) return format("%%%02x", c:byte()); end)); end -function http.urldecode(s) +local function urldecode(s) return s and (s:gsub("%%(%x%x)", function (c) return char(tonumber(c,16)); end)); end @@ -24,7 +26,7 @@ local function _formencodepart(s) end)); end -function http.formencode(form) +local function formencode(form) local result = {}; if form[1] then -- Array of ordered { name, value } for _, field in ipairs(form) do @@ -38,7 +40,7 @@ function http.formencode(form) return t_concat(result, "&"); end -function http.formdecode(s) +local function formdecode(s) if not s:match("=") then return urldecode(s); end local r = {}; for k, v in s:gmatch("([^=&]*)=([^&]*)") do @@ -50,11 +52,13 @@ function http.formdecode(s) return r; end -function http.contains_token(field, token) +local function contains_token(field, token) field = ","..field:gsub("[ \t]", ""):lower()..","; return field:find(","..token:lower()..",", 1, true) ~= nil; end - - -return http; +return { + urlencode = urlencode, urldecode = urldecode; + formencode = formencode, formdecode = formdecode; + contains_token = contains_token; +}; |