From: Steven Barth Date: Tue, 8 Dec 2009 12:13:26 +0000 (+0000) Subject: httpclient: Add basic auth support X-Git-Tag: 0.10.0~903 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e8220d96a52be888db8611e2908cb3ba97dfe2f8;p=oweals%2Fluci.git httpclient: Add basic auth support --- diff --git a/libs/httpclient/luasrc/httpclient.lua b/libs/httpclient/luasrc/httpclient.lua index 69abddff3..1f0e55b31 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