From acda4bf3fd4ed82d0545923e1c9b100a26f0a92b Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Mon, 17 Feb 2020 15:54:35 +0100 Subject: Make the $PID part of socket names configurable --- p11p-daemon/config/sys.config | 3 ++- p11p-daemon/src/p11p_config.erl | 14 ++++++++++++++ p11p-daemon/src/p11p_server_sup.erl | 8 +++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/p11p-daemon/config/sys.config b/p11p-daemon/config/sys.config index c10ce49..0af2837 100644 --- a/p11p-daemon/config/sys.config +++ b/p11p-daemon/config/sys.config @@ -3,7 +3,8 @@ {p11p, [ {loglevel, 3}, - %%{socket_dir, "/run/p11p"}, + %%{socket_dir, "/run/p11p"}, % Default: /run/user/$EUID/p11p. + %%{socket_path_has_pid, false}, % Default: true. {proxyapp_bin_path, "/usr/lib/x86_64-linux-gnu/p11-kit/p11-kit-remote"}, {testing_drop_prob, 0}, {vtokens, diff --git a/p11p-daemon/src/p11p_config.erl b/p11p-daemon/src/p11p_config.erl index 12a90b9..2ee578b 100644 --- a/p11p-daemon/src/p11p_config.erl +++ b/p11p-daemon/src/p11p_config.erl @@ -14,6 +14,7 @@ nameof/1, proxyapp_bin_path/0, socket_dir/0, + socket_path_has_pid/0, testing_drop_prob/0, tokens/0, token_balance/1, @@ -39,6 +40,7 @@ -record(state, { socket_dir :: string(), + socket_path_has_pid :: boolean(), proxyapp_bin_path :: string(), testing_drop_prob :: non_neg_integer(), tokens :: #{string() => token()} @@ -57,6 +59,8 @@ handle_call(proxyapp_bin_path, _From, S = #state{proxyapp_bin_path = Path}) -> {reply, Path, S}; handle_call(socket_dir, _From, S = #state{socket_dir = Dir}) -> {reply, Dir, S}; +handle_call(socket_path_has_pid, _From, S = #state{socket_path_has_pid = B}) -> + {reply, B, S}; handle_call(testing_drop_prob, _From, S = #state{testing_drop_prob = P}) -> {reply, P, S}; handle_call(tokens, _From, State = #state{tokens = Tokens}) -> @@ -102,6 +106,9 @@ proxyapp_bin_path() -> socket_dir() -> gen_server:call(?MODULE, socket_dir). +socket_path_has_pid() -> + gen_server:call(?MODULE, socket_path_has_pid). + testing_drop_prob() -> gen_server:call(?MODULE, testing_drop_prob). @@ -148,6 +155,9 @@ init_state() -> socket_dir = application:get_env(p11p, socket_dir, default_socket_dir()), + socket_path_has_pid = application:get_env(p11p, + socket_path_has_pid, + true), proxyapp_bin_path = application:get_env(p11p, proxyapp_bin_path, ?PROXYAPP_DEFAULT), @@ -164,6 +174,10 @@ init_state(Filename) -> string, "socket_dir", default_socket_dir()), + socket_path_has_pid = p11p_config_file:get(Config, + bool, + "socket_path_has_pid", + true), proxyapp_bin_path = p11p_config_file:get(Config, string, "proxyapp_bin_path", diff --git a/p11p-daemon/src/p11p_server_sup.erl b/p11p-daemon/src/p11p_server_sup.erl index 11e1830..1880677 100644 --- a/p11p-daemon/src/p11p_server_sup.erl +++ b/p11p-daemon/src/p11p_server_sup.erl @@ -56,4 +56,10 @@ mkdir_socket_basepath() -> -spec socket_path(string(), string()) -> string(). socket_path(BasePath, Name) -> - BasePath ++ "/" ++ Name ++ "-" ++ os:getpid(). + case p11p_config:socket_path_has_pid() of + true -> + BasePath ++ "/" ++ Name ++ "-" ++ os:getpid(); + false -> + BasePath ++ "/" ++ Name + end. + -- cgit v1.1