diff options
author | Linus Nordberg <linus@sunet.se> | 2020-02-11 11:03:47 +0100 |
---|---|---|
committer | Linus Nordberg <linus@sunet.se> | 2020-02-11 11:03:47 +0100 |
commit | 9f50fa4e8d7d82605116e07ea376da7ebedb8a57 (patch) | |
tree | f29231db796abbeca1750209b7e487700f341303 /p11p-daemon/src/p11p_rpc.erl | |
parent | ad84cb6f4d5d6e7154afd9eb05de9bdeb67ca753 (diff) |
WIP track p11 state and shortcut responses when needed
Diffstat (limited to 'p11p-daemon/src/p11p_rpc.erl')
-rw-r--r-- | p11p-daemon/src/p11p_rpc.erl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/p11p-daemon/src/p11p_rpc.erl b/p11p-daemon/src/p11p_rpc.erl index 03a476c..0e52bc5 100644 --- a/p11p-daemon/src/p11p_rpc.erl +++ b/p11p-daemon/src/p11p_rpc.erl @@ -9,7 +9,9 @@ dump/1, error/2, new/0, new/1, + ok/1, parse/2, + req_id/1, serialise/1 ]). @@ -36,6 +38,13 @@ error(CallCode, ErrorCode) -> data_len = size(DataBuf), data = DataBuf}. +ok(CallCode) -> + #p11rpc_msg{ + state = done, + call_code = CallCode, + opt_len = 0, + data_len = 0}. + parse(M) -> parse(M, <<>>). @@ -71,6 +80,11 @@ parse(#p11rpc_msg{buffer = MsgBuf} = M, DataIn) {done, Msg} end. +req_id(Msg) + when Msg#p11rpc_msg.data_len >= 4 -> + {ReqId, _} = parse_req_id(Msg#p11rpc_msg.data), + ReqId. + -spec serialise(p11rpc_msg()) -> binary(). serialise(M) when M#p11rpc_msg.state == done, M#p11rpc_msg.call_code > -1, |