aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Nehab <diego.nehab@gmail.com>2015-08-24 16:41:24 -0300
committerDiego Nehab <diego.nehab@gmail.com>2015-08-24 16:41:24 -0300
commit46d7e75f3e71d75bf07ae83d7df4aa276e484473 (patch)
tree04c7aedb342078dd8dff07154ba6aad4384d00c8
parentb6a10ccb68e84f24537917c585873e32e7632885 (diff)
parent2314235b3ac62f5519177efadc2a738fd7224ee4 (diff)
downloadluasocket-46d7e75f3e71d75bf07ae83d7df4aa276e484473.tar.gz
luasocket-46d7e75f3e71d75bf07ae83d7df4aa276e484473.tar.bz2
luasocket-46d7e75f3e71d75bf07ae83d7df4aa276e484473.zip
Merge pull request #96 from chastabor/master
Generate headers before proxy changes host and port
-rw-r--r--src/http.lua13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/http.lua b/src/http.lua
index d5457f6..45ffa15 100644
--- a/src/http.lua
+++ b/src/http.lua
@@ -221,6 +221,15 @@ local function adjustheaders(reqt)
221 lower["authorization"] = 221 lower["authorization"] =
222 "Basic " .. (mime.b64(reqt.user .. ":" .. reqt.password)) 222 "Basic " .. (mime.b64(reqt.user .. ":" .. reqt.password))
223 end 223 end
224 -- if we have proxy authentication information, pass it along
225 local proxy = reqt.proxy or _M.PROXY
226 if proxy then
227 proxy = url.parse(proxy)
228 if proxy.user and proxy.password then
229 lower["proxy-authorization"] =
230 "Basic " .. (mime.b64(proxy.user .. ":" .. proxy.password))
231 end
232 end
224 -- override with user headers 233 -- override with user headers
225 for i,v in base.pairs(reqt.headers or lower) do 234 for i,v in base.pairs(reqt.headers or lower) do
226 lower[string.lower(i)] = v 235 lower[string.lower(i)] = v
@@ -246,10 +255,10 @@ local function adjustrequest(reqt)
246 "invalid host '" .. base.tostring(nreqt.host) .. "'") 255 "invalid host '" .. base.tostring(nreqt.host) .. "'")
247 -- compute uri if user hasn't overriden 256 -- compute uri if user hasn't overriden
248 nreqt.uri = reqt.uri or adjusturi(nreqt) 257 nreqt.uri = reqt.uri or adjusturi(nreqt)
249 -- ajust host and port if there is a proxy
250 nreqt.host, nreqt.port = adjustproxy(nreqt)
251 -- adjust headers in request 258 -- adjust headers in request
252 nreqt.headers = adjustheaders(nreqt) 259 nreqt.headers = adjustheaders(nreqt)
260 -- ajust host and port if there is a proxy
261 nreqt.host, nreqt.port = adjustproxy(nreqt)
253 return nreqt 262 return nreqt
254end 263end
255 264