httpclient: fix parsing of IPv6 URLs (#662)

This commit is contained in:
Jo-Philipp Wich 2014-02-05 13:44:07 +00:00
parent c1bd1e59d3
commit b92a01d3ae

View file

@ -108,11 +108,22 @@ end
function request_raw(uri, options)
options = options or {}
local pr, auth, host, port, path
if uri:find("@") then
pr, auth, host, port, path =
uri:match("(%w+)://(.+)@([%w-.]+):?([0-9]*)(.*)")
if uri:find("%[") then
if uri:find("@") then
pr, auth, host, port, path = uri:match("(%w+)://(.+)@(%b[]):?([0-9]*)(.*)")
host = host:sub(2,-2)
else
pr, host, port, path = uri:match("(%w+)://(%b[]):?([0-9]*)(.*)")
host = host:sub(2,-2)
end
else
pr, host, port, path = uri:match("(%w+)://([%w-.]+):?([0-9]*)(.*)")
if uri:find("@") then
pr, auth, host, port, path =
uri:match("(%w+)://(.+)@([%w-.]+):?([0-9]*)(.*)")
else
pr, host, port, path = uri:match("(%w+)://([%w-.]+):?([0-9]*)(.*)")
end
end
if not host then