|
|
@ -56,7 +56,8 @@ |
|
|
|
wordsize/0, |
|
|
|
tup_umerge/2, |
|
|
|
tup_sort/1, |
|
|
|
line_count/1]). |
|
|
|
line_count/1, |
|
|
|
set_httpc_options/0]). |
|
|
|
|
|
|
|
%% for internal use only |
|
|
|
-export([otp_release/0]). |
|
|
@ -661,3 +662,54 @@ maybe_ends_in_comma(H) -> |
|
|
|
"," ++ Flag -> lists:reverse(Flag); |
|
|
|
_ -> false |
|
|
|
end. |
|
|
|
|
|
|
|
set_httpc_options() -> |
|
|
|
%% Get http_proxy and https_proxy environment variables |
|
|
|
case os:getenv("http_proxy") of |
|
|
|
false -> |
|
|
|
Http = ""; |
|
|
|
Http -> |
|
|
|
Http |
|
|
|
end, |
|
|
|
case os:getenv("https_proxy") of |
|
|
|
false -> |
|
|
|
Https = ""; |
|
|
|
Https -> |
|
|
|
Https |
|
|
|
end, |
|
|
|
|
|
|
|
%% Parse the variables to extract host and port |
|
|
|
Opts = [], |
|
|
|
case http_uri:parse(Http) of |
|
|
|
{ok,{_, [], Host, Port, _, []}} -> |
|
|
|
Opts1 = Opts ++ [{proxy, {{Host, Port}, []}}]; |
|
|
|
{error, _} -> |
|
|
|
Opts1 = Opts |
|
|
|
end, |
|
|
|
|
|
|
|
case http_uri:parse(Https) of |
|
|
|
{ok,{_, [], Host2, Port2, _, []}} -> |
|
|
|
Opts2 = Opts1 ++ [{https_proxy, {{Host2, Port2}, []}}]; |
|
|
|
{error, _} -> |
|
|
|
Opts2 = Opts1 |
|
|
|
end, |
|
|
|
|
|
|
|
case Opts2 of |
|
|
|
[] -> |
|
|
|
Opts3 = [ |
|
|
|
{max_sessions, 4}, |
|
|
|
{max_keep_alive_length, 4}, |
|
|
|
{keep_alive_timeout, 120000}, |
|
|
|
{max_pipeline_length, 4}, |
|
|
|
{pipeline_timeout, 60000} |
|
|
|
]; |
|
|
|
_ -> |
|
|
|
Opts3 = Opts2 ++ [ |
|
|
|
{max_sessions, 4}, |
|
|
|
{max_keep_alive_length, 4}, |
|
|
|
{keep_alive_timeout, 120000}, |
|
|
|
{max_pipeline_length, 4}, |
|
|
|
{pipeline_timeout, 60000} |
|
|
|
] |
|
|
|
end, |
|
|
|
httpc:set_options(Opts3). |