net.server.http: Parse absolute URIs in requests (thanks Maranda)
authorMatthew Wild <mwild1@gmail.com>
Thu, 26 Apr 2012 15:05:05 +0100
changeset 4709 98bfebb38705
parent 4708 0e324923ff95
child 4710 54ca6511e699
child 4714 7dedf8cc173c
net.server.http: Parse absolute URIs in requests (thanks Maranda)
net/http/server.lua
--- a/net/http/server.lua	Thu Apr 26 14:51:55 2012 +0100
+++ b/net/http/server.lua	Thu Apr 26 15:05:05 2012 +0100
@@ -1,6 +1,7 @@
 
 local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat;
 local parser_new = require "net.http.parser".new;
+local url_parse = require "socket.url".parse;
 local events = require "util.events".new();
 local addserver = require "net.server".addserver;
 local log = require "util.logger".init("http.server");
@@ -101,6 +102,9 @@
 	local function success_cb(request)
 		--log("debug", "success_cb: %s", request.path);
 		request.secure = secure;
+		local parsed_dest = url_parse(request.path);
+		request.url = parsed_dest;
+		request.path = parsed_dest.path;
 		t_insert(pending, request);
 		if not waiting then
 			process_next();