From 42907ced08178a2a99662148870ff5217959bf78 Mon Sep 17 00:00:00 2001 From: Waqas Hussain 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(-) (limited to 'net/http') 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