瀏覽代碼

Handle Schemaless Proxy URLs in ENV vars

We've had multiple tickets opened because of unclear PROXY settings when
the scheme is missing form the URI. To be helpful, we instead add them
dynamically whenever they're missing.

Example issues:
- https://github.com/erlang/rebar3/issues/1747
- https://github.com/erlang/rebar3/issues/1697
pull/1756/head
Fred Hebert 7 年之前
父節點
當前提交
01eeda6c2c
共有 1 個檔案被更改,包括 9 行新增1 行删除
  1. +9
    -1
      src/rebar_utils.erl

+ 9
- 1
src/rebar_utils.erl 查看文件

@ -854,10 +854,18 @@ set_httpc_options(_, []) ->
ok;
set_httpc_options(Scheme, Proxy) ->
{ok, {_, UserInfo, Host, Port, _, _}} = http_uri:parse(Proxy),
URI = normalise_proxy(Scheme, Proxy),
{ok, {_, UserInfo, Host, Port, _, _}} = http_uri:parse(URI),
httpc:set_options([{Scheme, {{Host, Port}, []}}], rebar),
set_proxy_auth(UserInfo).
normalise_proxy(Scheme, URI) ->
case re:run(URI, "://", [unicode]) of
nomatch when Scheme =:= https_proxy -> "https://" ++ URI;
nomatch when Scheme =:= proxy -> "http://" ++ URI;
_ -> URI
end.
url_append_path(Url, ExtraPath) ->
case http_uri:parse(Url) of
{ok, {Scheme, UserInfo, Host, Port, Path, Query}} ->

Loading…
取消
儲存