diff options
author | Ingela Anderton Andin <[email protected]> | 2017-01-25 11:04:23 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2017-01-25 11:04:23 +0100 |
commit | c2a833811c768fc38b51a5241f55eb25786ac13e (patch) | |
tree | b0dda62b75135d4850fa736f1661afd91b812bda /lib/ssl/src/ssl_dist_admin_sup.erl | |
parent | 7400b93124572af795c8d7356e22e3bf1f1f2a09 (diff) | |
parent | c6472824546dc8e6914139c2443b926d3f0945cc (diff) | |
download | otp-c2a833811c768fc38b51a5241f55eb25786ac13e.tar.gz otp-c2a833811c768fc38b51a5241f55eb25786ac13e.tar.bz2 otp-c2a833811c768fc38b51a5241f55eb25786ac13e.zip |
Merge branch 'ingela/ssl/pem-chache-own-process/OTP-13874' into maint
* ingela/ssl/pem-chache-own-process/OTP-13874:
ssl: Move PEM cache to a dedicated process
Diffstat (limited to 'lib/ssl/src/ssl_dist_admin_sup.erl')
-rw-r--r-- | lib/ssl/src/ssl_dist_admin_sup.erl | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/ssl/src/ssl_dist_admin_sup.erl b/lib/ssl/src/ssl_dist_admin_sup.erl new file mode 100644 index 0000000000..f60806c4cb --- /dev/null +++ b/lib/ssl/src/ssl_dist_admin_sup.erl @@ -0,0 +1,74 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2016-2016. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%% +%% %CopyrightEnd% +%% + +%% + +-module(ssl_dist_admin_sup). + +-behaviour(supervisor). + +%% API +-export([start_link/0]). + +%% Supervisor callback +-export([init/1]). + +%%%========================================================================= +%%% API +%%%========================================================================= + +-spec start_link() -> {ok, pid()} | ignore | {error, term()}. + +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +%%%========================================================================= +%%% Supervisor callback +%%%========================================================================= + +init([]) -> + PEMCache = pem_cache_child_spec(), + SessionCertManager = session_and_cert_manager_child_spec(), + {ok, {{rest_for_one, 10, 3600}, [PEMCache, SessionCertManager]}}. + + +%%-------------------------------------------------------------------- +%%% Internal functions +%%-------------------------------------------------------------------- + +pem_cache_child_spec() -> + Name = ssl_pem_cache_dist, + StartFunc = {ssl_pem_cache, start_link_dist, [[]]}, + Restart = permanent, + Shutdown = 4000, + Modules = [ssl_pem_cache], + Type = worker, + {Name, StartFunc, Restart, Shutdown, Type, Modules}. + +session_and_cert_manager_child_spec() -> + Opts = ssl_admin_sup:manager_opts(), + Name = ssl_dist_manager, + StartFunc = {ssl_manager, start_link_dist, [Opts]}, + Restart = permanent, + Shutdown = 4000, + Modules = [ssl_manager], + Type = worker, + {Name, StartFunc, Restart, Shutdown, Type, Modules}. + |