projects
/
project
/
luci.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c1bd1e5
)
httpclient: fix parsing of IPv6 URLs (#662)
author
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 5 Feb 2014 13:44:07 +0000
(13:44 +0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 5 Feb 2014 13:44:07 +0000
(13:44 +0000)
libs/httpclient/luasrc/httpclient.lua
patch
|
blob
|
history
diff --git
a/libs/httpclient/luasrc/httpclient.lua
b/libs/httpclient/luasrc/httpclient.lua
index
93eed05
..
c866be6
100644
(file)
--- a/
libs/httpclient/luasrc/httpclient.lua
+++ b/
libs/httpclient/luasrc/httpclient.lua
@@
-108,11
+108,22
@@
end
function request_raw(uri, options)
options = options or {}
local pr, auth, host, port, path
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
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
end
if not host then