summaryrefslogtreecommitdiff
path: root/p11p-daemon/src/p11p_remote_manager.erl
diff options
context:
space:
mode:
Diffstat (limited to 'p11p-daemon/src/p11p_remote_manager.erl')
-rw-r--r--p11p-daemon/src/p11p_remote_manager.erl18
1 files changed, 9 insertions, 9 deletions
diff --git a/p11p-daemon/src/p11p_remote_manager.erl b/p11p-daemon/src/p11p_remote_manager.erl
index 633a4aa..d2bbd11 100644
--- a/p11p-daemon/src/p11p_remote_manager.erl
+++ b/p11p-daemon/src/p11p_remote_manager.erl
@@ -12,8 +12,8 @@
%% API.
-export([start_link/0]).
--export([remote_for_token/1, kill_remote/2]). % For servers.
--export([timeout/1]). % For remotes.
+-export([remote_for_token/1, client_change/2]). % For servers.
+-export([server_change/2]). % For remotes.
%% Genserver callbacks.
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
@@ -44,11 +44,11 @@ start_link() ->
-spec remote_for_token(string()) -> pid().
remote_for_token(TokName) ->
gen_server:call(?MODULE, {remote_for_token, TokName}).
-kill_remote(TokName, Pid) ->
- gen_server:call(?MODULE, {kill_remote, {TokName, Pid}}).
+client_change(Change, Args) ->
+ gen_server:call(?MODULE, {client_change, Change, Args}).
-timeout(TokName) ->
- gen_server:call(?MODULE, {timeout, TokName}).
+server_change(Change, Args) ->
+ gen_server:call(?MODULE, {server_change, Change, Args}).
%% Genserver callbacks.
init([]) ->
@@ -68,7 +68,7 @@ handle_call({remote_for_token, TokName}, _From, #state{tokens = Tokens} = State)
_ ->
{reply, Pid, State}
end;
-handle_call({timeout, TokName}, _From, #state{tokens = Tokens} = State) ->
+handle_call({server_change, timeout, [TokName]}, _From, #state{tokens = Tokens} = State) ->
lager:debug("~p: ~s: timed out", [self(), TokName]),
%% TODO: do some code dedup with remote_for_token?
#{TokName := Token} = Tokens,
@@ -79,12 +79,12 @@ handle_call({timeout, TokName}, _From, #state{tokens = Tokens} = State) ->
NewState = State#state{tokens = Tokens#{TokName := NewToken}},
lager:debug("~p: ~s: updated token: ~p", [self(), TokName, NewToken]),
{reply, ok, NewState};
-handle_call({kill_remote, {TokName, Pid}}, From, #state{tokens = Tokens} = State) ->
+handle_call({client_change, client_gone, [TokName, Pid]}, From, #state{tokens = Tokens} = State) ->
lager:debug("~p: killing off remote ~p on request from ~p", [self(), Pid, From]),
gen_server:stop(Pid),
#{TokName := Token} = Tokens,
Remotes = Token#token.remotes,
- NewRemotes = lists:map(fun(E) ->
+ NewRemotes = lists:map(fun(E) -> % TODO: any risk of losing list order?
case E#remote.pid of
Pid -> E#remote{pid = undefined};
_ -> E