From 592242699a859dc18fb683b9264bfc33b1107dcb Mon Sep 17 00:00:00 2001
From: Waqas Hussain <waqas20@gmail.com>
Date: Fri, 21 Dec 2012 13:37:39 +0500
Subject: net.http.parser: Skip url.parse when we don't have a full URL (also
 fixes traceback on paths starting with '//').

---
 net/http/parser.lua | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/net/http/parser.lua b/net/http/parser.lua
index c760a0a4..b53dfa4e 100644
--- a/net/http/parser.lua
+++ b/net/http/parser.lua
@@ -91,7 +91,14 @@ function httpstream.new(success_cb, error_cb, parser_type, options_cb)
 							responseheaders = headers;
 						};
 					else
-						local parsed_url = url_parse(path);
+						local parsed_url;
+						if path:byte() == 47 then -- starts with /
+							local _path, _query = path:match("([^?]*).?(.*)");
+							if _query == "" then _query = nil; end
+							parsed_url = { path = _path, query = _query };
+						else
+							parsed_url = url_parse(path);
+						end
 						path = preprocess_path(parsed_url.path);
 						headers.host = parsed_url.host or headers.host;
 
-- 
cgit v1.2.3