소스 검색

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}} ->

불러오는 중...
취소
저장