diff options
author | Kirilll Zaborsky <[email protected]> | 2015-07-24 14:02:48 +0300 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2015-09-08 18:16:47 +0200 |
commit | a66d9fb8813d32c7ded2253a7a5904f5b20b5ba8 (patch) | |
tree | 481bb6bcd67d3d0e095e543713b4376184df0278 /lib/inets/test | |
parent | ee5587d585052fe7b64c972029a6c68c403b71dc (diff) | |
download | otp-a66d9fb8813d32c7ded2253a7a5904f5b20b5ba8.tar.gz otp-a66d9fb8813d32c7ded2253a7a5904f5b20b5ba8.tar.bz2 otp-a66d9fb8813d32c7ded2253a7a5904f5b20b5ba8.zip |
inets: Forward connection errors with https proxy
httpc should return meaningful error reason disregarding whether
it is being used with http proxy or not
Diffstat (limited to 'lib/inets/test')
-rw-r--r-- | lib/inets/test/httpc_proxy_SUITE.erl | 20 | ||||
-rwxr-xr-x | lib/inets/test/httpc_proxy_SUITE_data/server_proxy.sh | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/inets/test/httpc_proxy_SUITE.erl b/lib/inets/test/httpc_proxy_SUITE.erl index 786de1bc42..6d7af4ea5d 100644 --- a/lib/inets/test/httpc_proxy_SUITE.erl +++ b/lib/inets/test/httpc_proxy_SUITE.erl @@ -58,7 +58,7 @@ groups() -> [http_emulate_lower_versions |local_proxy_cases()]}, {local_proxy_https,[], - local_proxy_cases()}]. + local_proxy_cases() ++ local_proxy_https_cases()}]. %% internal functions @@ -77,6 +77,9 @@ local_proxy_cases() -> http_stream, http_not_modified_otp_6821]. +local_proxy_https_cases() -> + [https_connect_error]. + %%-------------------------------------------------------------------- init_per_suite(Config0) -> @@ -432,6 +435,21 @@ header_value(Name, [{HeaderName,HeaderValue}|Headers]) -> end. %%-------------------------------------------------------------------- +https_connect_error(doc) -> + ["Error from CONNECT tunnel should be returned"]; +https_connect_error(Config) when is_list(Config) -> + {HttpServer,HttpPort} = ?config(http, Config), + Method = get, + %% using HTTPS scheme with HTTP port to trigger connection error + URL = "https://" ++ HttpServer ++ ":" ++ + integer_to_list(HttpPort) ++ "/index.html", + Opts = [], + HttpOpts = [], + Request = {URL,[]}, + {error,{failed_connect,[_,{tls,_,_}]}} = + httpc:request(Method, Request, HttpOpts, Opts). + +%%-------------------------------------------------------------------- %% Internal Functions ------------------------------------------------ %%-------------------------------------------------------------------- diff --git a/lib/inets/test/httpc_proxy_SUITE_data/server_proxy.sh b/lib/inets/test/httpc_proxy_SUITE_data/server_proxy.sh index 9d1698c386..473024ae63 100755 --- a/lib/inets/test/httpc_proxy_SUITE_data/server_proxy.sh +++ b/lib/inets/test/httpc_proxy_SUITE_data/server_proxy.sh @@ -169,6 +169,8 @@ MaxRequestsPerChild 0 ViaProxyName "tinyproxy" ConnectPort $APACHE_HTTPS_PORT +# to test connect error +ConnectPort $APACHE_HTTP_PORT EOF (tinyproxy -d -c tinyproxy.conf 1>/dev/null 2>&1 </dev/null &)& wait_for_pidfile tinyproxy.pid |