diff options
Diffstat (limited to 'p11p-daemon/src/p11p_remote_manager.erl')
-rw-r--r-- | p11p-daemon/src/p11p_remote_manager.erl | 11 |
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, |