diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-06-12 11:21:11 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-06-12 11:21:11 +0100 |
commit | 12d17990b6ab12e8244f1f01ddad7f4528023b61 (patch) | |
tree | b2844741e3d2f3d03c2cae7cc6f8dd1d7fb3e349 | |
parent | aa79672dbdd1bef94119e520daacb47ac06d3935 (diff) | |
download | prosody-12d17990b6ab12e8244f1f01ddad7f4528023b61.tar.gz prosody-12d17990b6ab12e8244f1f01ddad7f4528023b61.zip |
net.http: (Re-)add url[en|de]code functions
-rw-r--r-- | net/http.lua | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/http.lua b/net/http.lua index b39cc6fb..10d96631 100644 --- a/net/http.lua +++ b/net/http.lua @@ -9,16 +9,17 @@ local connlisteners_get = require "net.connlisteners".get; local listener = connlisteners_get("httpclient") or error("No httpclient listener!"); local t_insert, t_concat = table.insert, table.concat; -local tonumber, tostring, pairs, xpcall, select, debug_traceback, char = - tonumber, tostring, pairs, xpcall, select, debug.traceback, string.char; +local tonumber, tostring, pairs, xpcall, select, debug_traceback, char, format = + tonumber, tostring, pairs, xpcall, select, debug.traceback, string.char, string.format; local log = require "util.logger".init("http"); local print = function () end -local urlencode = function (s) return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); end - module "http" +function urlencode(s) return s and (s:gsub("%W", function (c) return format("%%%02x", c:byte()); end)); end +function urldecode(s) return s and (s:gsub("%%(%x%x)", function (c) return char(tonumber(c,16)); end)); end + local function expectbody(reqt, code) if reqt.method == "HEAD" then return nil end if code == 204 or code == 304 then return nil end |