aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/ssl_sup.erl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2014-05-12 10:02:57 +0200
committerIngela Anderton Andin <[email protected]>2014-05-12 10:02:57 +0200
commit441c5a4dbc01e33db11b9497c14927da1af896f6 (patch)
tree6cb5ca8a67bac193f266e839681ab31f607d3c78 /lib/ssl/src/ssl_sup.erl
parent3b85eee9540b49936d203978369c2a5d7bdd24c4 (diff)
parentc80735b0c82ec0bbaa2e2bda4f1598210b193556 (diff)
downloadotp-441c5a4dbc01e33db11b9497c14927da1af896f6.tar.gz
otp-441c5a4dbc01e33db11b9497c14927da1af896f6.tar.bz2
otp-441c5a4dbc01e33db11b9497c14927da1af896f6.zip
Merge branch 'ia/ssl/inherit/OTP-11897' into maint
* ia/ssl/inherit/OTP-11897: ssl: Handle socket option inheritance when pooling of accept sockets is used
Diffstat (limited to 'lib/ssl/src/ssl_sup.erl')
-rw-r--r--lib/ssl/src/ssl_sup.erl19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/ssl/src/ssl_sup.erl b/lib/ssl/src/ssl_sup.erl
index e1aeb11ca4..7cccf8d5a5 100644
--- a/lib/ssl/src/ssl_sup.erl
+++ b/lib/ssl/src/ssl_sup.erl
@@ -47,8 +47,10 @@ init([]) ->
TLSConnetionManager = tls_connection_manager_child_spec(),
%% Not supported yet
%%DTLSConnetionManager = tls_connection_manager_child_spec(),
-
- {ok, {{one_for_all, 10, 3600}, [SessionCertManager, TLSConnetionManager]}}.
+ %% Handles emulated options so that they inherited by the accept socket, even when setopts is performed on
+ %% the listen socket
+ ListenOptionsTracker = listen_options_tracker_child_spec(),
+ {ok, {{one_for_all, 10, 3600}, [SessionCertManager, TLSConnetionManager, ListenOptionsTracker]}}.
manager_opts() ->
@@ -85,7 +87,7 @@ tls_connection_manager_child_spec() ->
StartFunc = {tls_connection_sup, start_link, []},
Restart = permanent,
Shutdown = 4000,
- Modules = [tls_connection, ssl_connection],
+ Modules = [tls_connection_sup],
Type = supervisor,
{Name, StartFunc, Restart, Shutdown, Type, Modules}.
@@ -98,6 +100,17 @@ tls_connection_manager_child_spec() ->
%% Type = supervisor,
%% {Name, StartFunc, Restart, Shutdown, Type, Modules}.
+
+listen_options_tracker_child_spec() ->
+ Name = ssl_socket,
+ StartFunc = {ssl_listen_tracker_sup, start_link, []},
+ Restart = permanent,
+ Shutdown = 4000,
+ Modules = [ssl_socket],
+ Type = supervisor,
+ {Name, StartFunc, Restart, Shutdown, Type, Modules}.
+
+
session_cb_init_args() ->
case application:get_env(ssl, session_cb_init_args) of
{ok, Args} when is_list(Args) ->