File 0573-ssl-Correct-application-environment-configuration.patch of Package erlang
From 0e386621987cd512ed4c77eb81ba89843a0c9681 Mon Sep 17 00:00:00 2001
From: Ingela Anderton Andin <ingela@erlang.org>
Date: Tue, 16 Dec 2025 11:16:13 +0100
Subject: [PATCH] ssl: Correct application environment configuration
Closes #10467
---
lib/ssl/src/ssl_config.erl | 4 +-
lib/ssl/test/ssl_session_cache_SUITE.erl | 65 +++++++++++++-----------
2 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/lib/ssl/src/ssl_config.erl b/lib/ssl/src/ssl_config.erl
index 88c6bdcbb2..1cdb670079 100644
--- a/lib/ssl/src/ssl_config.erl
+++ b/lib/ssl/src/ssl_config.erl
@@ -422,14 +422,14 @@ max_session_cache_size(server) ->
end.
session_cb_opts(client = Role)->
- case application:get_env(ssl, session_cb, ssl_client_session_cache_db) of
+ case application:get_env(ssl, client_session_cb, ssl_client_session_cache_db) of
ssl_client_session_cache_db = ClientCb ->
{ClientCb, []};
ClientCb ->
{ClientCb, session_cb_init_args(Role)}
end;
session_cb_opts(server = Role) ->
- case application:get_env(ssl, session_cb, ssl_server_session_cache_db) of
+ case application:get_env(ssl, server_session_cb, ssl_server_session_cache_db) of
ssl_server_session_cache_db = ServerCb ->
{ServerCb, []};
ServerCb ->
diff --git a/lib/ssl/test/ssl_session_cache_SUITE.erl b/lib/ssl/test/ssl_session_cache_SUITE.erl
index f40b868e07..fc4acbf6ed 100644
--- a/lib/ssl/test/ssl_session_cache_SUITE.erl
+++ b/lib/ssl/test/ssl_session_cache_SUITE.erl
@@ -71,7 +71,7 @@
%%--------------------------------------------------------------------
-all() ->
+all() ->
[
{group, 'tlsv1.2'},
{group, 'tlsv1.1'},
@@ -103,7 +103,7 @@ init_per_suite(Config0) ->
try crypto:start() of
ok ->
ssl_test_lib:clean_start(),
- %% make rsa certs using
+ %% make rsa certs using
ssl_test_lib:make_rsa_cert(Config0)
catch _:_ ->
{skip, "Crypto did not start"}
@@ -114,7 +114,7 @@ end_per_suite(_Config) ->
application:stop(crypto).
init_per_group(GroupName, Config) ->
- ssl_test_lib:init_per_group(GroupName, Config).
+ ssl_test_lib:init_per_group(GroupName, Config).
end_per_group(GroupName, Config) ->
ssl_test_lib:end_per_group(GroupName, Config).
@@ -154,7 +154,7 @@ init_per_testcase(max_table_size, Config) ->
ssl_test_lib:set_protocol_versions(Versions),
application:set_env(ssl, session_cache_server_max, ?MAX_TABLE_SIZE),
application:set_env(ssl, session_cache_client_max, ?MAX_TABLE_SIZE),
- ssl:start(),
+ ssl:start(),
ssl_test_lib:ct_log_supported_protocol_versions(Config),
ct:timetrap({seconds, 40}),
Config.
@@ -164,8 +164,10 @@ init_customized_session_cache(Type, Config) ->
ssl:stop(),
application:load(ssl),
ssl_test_lib:set_protocol_versions(Versions),
- application:set_env(ssl, session_cb, ?MODULE),
- application:set_env(ssl, session_cb_init_args, [{type, Type}]),
+ application:set_env(ssl, client_session_cb, ?MODULE),
+ application:set_env(ssl, server_session_cb, ?MODULE),
+ application:set_env(ssl, client_session_cb_init_args, [{type, Type}]),
+ application:set_env(ssl, server_session_cb_init_args, [{type, Type}]),
ssl:start(),
ssl_test_lib:ct_log_supported_protocol_versions(Config),
catch (end_per_testcase(list_to_atom("session_cache_process" ++ atom_to_list(Type)),
@@ -176,11 +178,14 @@ init_customized_session_cache(Type, Config) ->
Config.
end_per_testcase(session_cache_process_list, Config) ->
- application:unset_env(ssl, session_cb),
+ application:unset_env(ssl, client_session_cb),
+ application:unset_env(ssl, server_session_cb),
end_per_testcase(default_action, Config);
end_per_testcase(session_cache_process_mnesia, Config) ->
- application:unset_env(ssl, session_cb),
- application:unset_env(ssl, session_cb_init_args),
+ application:unset_env(ssl, client_session_cb),
+ application:unset_env(ssl, server_session_cb),
+ application:unset_env(ssl, client_session_cb_init_args),
+ application:unset_env(ssl, server_session_cb_init_args),
mnesia:kill(),
ssl:stop(),
ssl:start(),
@@ -271,9 +276,9 @@ session_cleanup(Config) when is_list(Config) ->
%% Make sure session has expired and been cleaned up
check_timer(SessionTimer),
-
+
ct:sleep(?SLEEP), %% Make sure clean has had time to run
-
+
undefined = ?CLIENT_CB:lookup(ClientCache, {{Hostname, Port}, Id}),
process_flag(trap_exit, false),
@@ -308,29 +313,30 @@ save_specific_session(Config) when is_list(Config) ->
{tcp_options, [{active, false}]},
{options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
-
+
Client1 = ssl_test_lib:start_client([{node, ClientNode},
{port, Port}, {host, Hostname},
{mfa, {ssl_test_lib, session_id, []}},
{from, self()}, {options, ClientOpts}]),
Server ! listen,
-
+
Client2 = ssl_test_lib:start_client([{node, ClientNode},
{port, Port}, {host, Hostname},
{mfa, {ssl_test_lib, session_id, []}},
- {from, self()}, {options, [{reuse_sessions, save} | ClientOpts]}]),
+ {from, self()},
+ {options, [{reuse_sessions, save} | ClientOpts]}]),
SessionID1 =
- receive
+ receive
{Client1, S1} ->
S1
end,
-
+
SessionID2 =
- receive
+ receive
{Client2, S2} ->
S2
end,
-
+
true = SessionID1 =/= SessionID2,
{status, _, _, StatusInfo} = sys:get_status(whereis(ssl_manager)),
@@ -344,8 +350,9 @@ save_specific_session(Config) when is_list(Config) ->
Client3 = ssl_test_lib:start_client([{node, ClientNode},
{port, Port}, {host, Hostname},
{mfa, {ssl_test_lib, session_id, []}},
- {from, self()}, {options, [{reuse_session, SessionID2} | ClientOpts]}]),
- receive
+ {from, self()},
+ {options, [{reuse_session, SessionID2} | ClientOpts]}]),
+ receive
{Client3, SessionID2} ->
ok;
{Client3, SessionID3}->
@@ -370,16 +377,17 @@ max_table_size(Config) when is_list(Config) ->
{tcp_options, [{active, false}]},
{options, ServerOpts}]),
Port = ssl_test_lib:inet_port(Server),
- LastClient = clients_start(Server,
- ClientNode, Hostname, Port, ClientOpts, 20, [{reuse_sessions, save}]),
- receive
+ LastClient = clients_start(Server,
+ ClientNode, Hostname,
+ Port, ClientOpts, 20, [{reuse_sessions, save}]),
+ receive
{LastClient, {ok, _}} ->
ok
end,
{status, _, _, StatusInfo} = sys:get_status(whereis(ssl_manager)),
[_, _,_, _, Prop] = StatusInfo,
State = ssl_test_lib:state(Prop),
- ClientCache = element(2, State),
+ ClientCache = element(2, State),
M = ?CLIENT_CB:size(ClientCache),
?CT_LOG("Cache size ~p",[M]),
ssl_test_lib:close(Server, 500),
@@ -555,10 +563,10 @@ clients_start(_Server, ClientNode, Hostname, Port, ClientOpts, 0, Opts) ->
ssl_test_lib:start_client([{node, ClientNode},
{port, Port}, {host, Hostname},
{mfa, {?MODULE, connection_info_result, []}},
- %% Make sure session is registered
+ %% Make sure session is registered
{from, self()}, {options, Opts ++ ClientOpts}]);
clients_start(Server, ClientNode, Hostname, Port, ClientOpts, N, Opts) ->
- spawn_link(ssl_test_lib, start_client,
+ spawn_link(ssl_test_lib, start_client,
[[{node, ClientNode},
{port, Port}, {host, Hostname},
{mfa, {?MODULE, connection_info_result, []}},
@@ -569,7 +577,6 @@ clients_start(Server, ClientNode, Hostname, Port, ClientOpts, N, Opts) ->
Server ! listen,
wait_for_server(),
clients_start(Server, ClientNode, Hostname, Port, ClientOpts, N-1, Opts).
-
check_timer(Timer) ->
case erlang:read_timer(Timer) of
@@ -582,6 +589,6 @@ check_timer(Timer) ->
ct:sleep(Int),
check_timer(Timer)
end.
-
+
wait_for_server() ->
- ct:sleep(100).
+ ct:sleep(100).
--
2.51.0