diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/fs/lua.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 6012a454..2231dde5 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua | |||
@@ -488,7 +488,15 @@ local redirect_protocols = { | |||
488 | 488 | ||
489 | local function http_request(url, http, loop_control) | 489 | local function http_request(url, http, loop_control) |
490 | local result = {} | 490 | local result = {} |
491 | local res, status, headers, err = http.request { url = url, proxy = cfg.proxy, redirect = false, sink = ltn12.sink.table(result) } | 491 | |
492 | local proxy = cfg.proxy | ||
493 | if type(proxy) ~= "string" then proxy = nil end | ||
494 | -- LuaSocket's http.request crashes when given URLs missing the scheme part. | ||
495 | if proxy and not proxy:find("://") then | ||
496 | proxy = "http://" .. proxy | ||
497 | end | ||
498 | |||
499 | local res, status, headers, err = http.request { url = url, proxy = proxy, redirect = false, sink = ltn12.sink.table(result) } | ||
492 | if not res then | 500 | if not res then |
493 | return nil, status | 501 | return nil, status |
494 | elseif status == 301 or status == 302 then | 502 | elseif status == 301 or status == 302 then |