diff options
Diffstat (limited to 'libs/httpclient/luasrc/httpclient.lua')
-rw-r--r-- | libs/httpclient/luasrc/httpclient.lua | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libs/httpclient/luasrc/httpclient.lua b/libs/httpclient/luasrc/httpclient.lua index 69abddff32..1f0e55b318 100644 --- a/libs/httpclient/luasrc/httpclient.lua +++ b/libs/httpclient/luasrc/httpclient.lua @@ -107,7 +107,14 @@ end -- function request_raw(uri, options) options = options or {} - local pr, host, port, path = uri:match("(%w+)://([%w-.]+):?([0-9]*)(.*)") + local pr, auth, host, port, path + 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 + if not host then return nil, -1, "unable to parse URI" end @@ -128,6 +135,10 @@ function request_raw(uri, options) headers.Connection = "close" end + if auth and not headers.Authorization then + headers.Authorization = "Basic " .. nixio.bin.b64encode(auth) + end + local sock, code, msg = nixio.connect(host, port) if not sock then return nil, code, msg |