summaryrefslogtreecommitdiff
path: root/p11p-daemon/src/p11p_rpc.erl
diff options
context:
space:
mode:
authorLinus Nordberg <linus@sunet.se>2020-02-11 11:03:47 +0100
committerLinus Nordberg <linus@sunet.se>2020-02-11 11:03:47 +0100
commit9f50fa4e8d7d82605116e07ea376da7ebedb8a57 (patch)
treef29231db796abbeca1750209b7e487700f341303 /p11p-daemon/src/p11p_rpc.erl
parentad84cb6f4d5d6e7154afd9eb05de9bdeb67ca753 (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.erl14
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,