summaryrefslogtreecommitdiffhomepage
path: root/libs/httpclient
diff options
context:
space:
mode:
Diffstat (limited to 'libs/httpclient')
-rw-r--r--libs/httpclient/luasrc/httpclient.lua19
1 files changed, 15 insertions, 4 deletions
diff --git a/libs/httpclient/luasrc/httpclient.lua b/libs/httpclient/luasrc/httpclient.lua
index 93eed05c6..c866be685 100644
--- 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
- 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