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.erl11
1 files changed, 6 insertions, 5 deletions
diff --git a/p11p-daemon/src/p11p_remote_manager.erl b/p11p-daemon/src/p11p_remote_manager.erl
index 74f035b..0acec66 100644
--- a/p11p-daemon/src/p11p_remote_manager.erl
+++ b/p11p-daemon/src/p11p_remote_manager.erl
@@ -35,13 +35,13 @@
-record(remote, {
tokname :: string(),
servid :: atom(),
- modpath :: string(), % FIXME: filename
- pid = undefined :: pid() | undefined
+ modpath :: string(),
+ pid :: pid() | undefined
}).
-record(token, {
- remotes :: [#remote{}], % Active remote in hd().
- replay = <<>> :: binary()
+ remotes :: [#remote{}], % Active remote in hd().
+ replay = <<>> :: binary() % FIXME: seems unfeasable, remove
}).
-record(state, {
@@ -80,8 +80,9 @@ handle_call({remote_for_token, TokName}, _From, #state{tokens = Tokens} = State)
_ ->
{reply, Pid, State}
end;
-handle_call({server_event, timeout, [TokName]}, _From, #state{tokens = Tokens} = State) ->
+handle_call({server_event, timeout, [TokName, Server]}, _From, #state{tokens = Tokens} = State) ->
lager:debug("~p: ~s: timed out", [self(), TokName]),
+ gen_server:stop(Server), % Hang up p11 client.
%% TODO: do some code dedup with remote_for_token?
#{TokName := Token} = Tokens,
Remotes = Token#token.remotes,