diff options
author | Ingela Anderton Andin <[email protected]> | 2018-11-05 11:11:27 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2018-11-05 13:19:19 +0100 |
commit | e64822b68ec1f06481af5ea776273b6dbb526d63 (patch) | |
tree | ba87b01ee86e26d0fef001b4aed4074edda5caa3 /lib/ssl/test/ssl_test_lib.erl | |
parent | 8f4eb75f5a8d3f76d4e5e1c7d56024c727358ac7 (diff) | |
download | otp-e64822b68ec1f06481af5ea776273b6dbb526d63.tar.gz otp-e64822b68ec1f06481af5ea776273b6dbb526d63.tar.bz2 otp-e64822b68ec1f06481af5ea776273b6dbb526d63.zip |
ssl: controlling_process should be allowed on transpor_accept sockets along
with handshake
Fix of commit 68d9244ae33e5eea36250c3bb9ffe046a4db5647
Diffstat (limited to 'lib/ssl/test/ssl_test_lib.erl')
-rw-r--r-- | lib/ssl/test/ssl_test_lib.erl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/ssl/test/ssl_test_lib.erl b/lib/ssl/test/ssl_test_lib.erl index 289793bac8..8a2f0824fb 100644 --- a/lib/ssl/test/ssl_test_lib.erl +++ b/lib/ssl/test/ssl_test_lib.erl @@ -204,6 +204,14 @@ start_server_transport_abuse_socket(Args) -> Result end. +start_server_transport_control(Args) -> + Result = spawn_link(?MODULE, transport_switch_control, [Args]), + receive + {listen, up} -> + Result + end. + + transport_accept_abuse(Opts) -> Node = proplists:get_value(node, Opts), Port = proplists:get_value(port, Opts), @@ -220,6 +228,23 @@ transport_accept_abuse(Opts) -> _ = rpc:call(Node, ssl, handshake, [AcceptSocket, infinity]), Pid ! {self(), ok}. + +transport_switch_control(Opts) -> + Node = proplists:get_value(node, Opts), + Port = proplists:get_value(port, Opts), + Options = proplists:get_value(options, Opts), + Pid = proplists:get_value(from, Opts), + Transport = proplists:get_value(transport, Opts, ssl), + ct:log("~p:~p~nssl:listen(~p, ~p)~n", [?MODULE,?LINE, Port, Options]), + {ok, ListenSocket} = rpc:call(Node, Transport, listen, [Port, Options]), + Pid ! {listen, up}, + send_selected_port(Pid, Port, ListenSocket), + {ok, AcceptSocket} = rpc:call(Node, ssl, transport_accept, + [ListenSocket]), + ok = rpc:call(Node, ssl, controlling_process, [AcceptSocket, self()]), + Pid ! {self(), ok}. + + remove_close_msg(0) -> ok; remove_close_msg(ReconnectTimes) -> |