Fixed URL encoding to generate %0x instead of %x

Tue, 16 Dec 2008 03:46:17 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Tue, 16 Dec 2008 03:46:17 +0500
changeset 627
3712d36b6d25
parent 621
cd2cab5400fc
child 629
6f9052edb18d
child 631
6957fe7b0313

Fixed URL encoding to generate %0x instead of %x

net/http.lua file | annotate | diff | comparison | revisions
prosody file | annotate | diff | comparison | revisions
tools/ejabberd2prosody.lua file | annotate | diff | comparison | revisions
util/datamanager.lua file | annotate | diff | comparison | revisions
--- a/net/http.lua	Sat Dec 13 17:43:52 2008 +0000
+++ b/net/http.lua	Tue Dec 16 03:46:17 2008 +0500
@@ -13,7 +13,7 @@
 local print = function () end
 
 local urlcodes = setmetatable({}, { __index = function (t, k) t[k] = char(tonumber("0x"..k)); return t[k]; end });
-local urlencode = function (s) return s and (s:gsub("%W", function (c) return string.format("%%%x", c:byte()); end)); end
+local urlencode = function (s) return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); end
 
 module "http"
 
--- a/prosody	Sat Dec 13 17:43:52 2008 +0000
+++ b/prosody	Tue Dec 16 03:46:17 2008 +0500
@@ -115,7 +115,7 @@
 	path = path:gsub("/", path_separator);
 	local x = io.popen("mkdir \""..path.."\" 2>&1"):read("*a");
 end
-function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%x", c:byte()); end)); end
+function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); end
 function mkdirs(host)
 	if not _mkdir[host] then
 		local host_dir = string.format("%s/%s", data_path, encode(host));
--- a/tools/ejabberd2prosody.lua	Sat Dec 13 17:43:52 2008 +0000
+++ b/tools/ejabberd2prosody.lua	Tue Dec 16 03:46:17 2008 +0500
@@ -37,7 +37,7 @@
 	--print("mkdir",path);
 	local x = io.popen("mkdir "..path.." 2>&1"):read("*a");
 end
-function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%x", c:byte()); end)); end
+function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); end
 function getpath(username, host, datastore, ext)
 	ext = ext or "dat";
 	if username then
--- a/util/datamanager.lua	Sat Dec 13 17:43:52 2008 +0000
+++ b/util/datamanager.lua	Tue Dec 16 03:46:17 2008 +0500
@@ -44,7 +44,7 @@
 	end
 
 	encode = function (s)
-		return s and (s:gsub("%W", function (c) return format("%%%x", c:byte()); end));
+		return s and (s:gsub("%W", function (c) return format("%%%02x", c:byte()); end));
 	end
 end
 

mercurial