summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@sunet.se>2019-06-28 12:54:47 +0200
committerLinus Nordberg <linus@sunet.se>2019-06-28 12:54:47 +0200
commit91911b2816f79b5526f9b437906c7fcf5e7dd9be (patch)
tree57f772f600062c0375e2b5e98c9a629a9d097cfd
parentd774f3668e620b239df91af01cbda043b580405b (diff)
serialise rpc
-rw-r--r--p11p-daemon/src/p11p_rpc.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/p11p-daemon/src/p11p_rpc.erl b/p11p-daemon/src/p11p_rpc.erl
index d29f783..8292ccf 100644
--- a/p11p-daemon/src/p11p_rpc.erl
+++ b/p11p-daemon/src/p11p_rpc.erl
@@ -40,8 +40,16 @@ parse(#p11rpc_msg{buffer = Buf} = M, Data) when M#p11rpc_msg.state == data ->
end.
-spec serialise(p11rpc_msg()) -> binary().
-serialise(_M) ->
- <<"fixme">>.
+serialise(M) when M#p11rpc_msg.state == done,
+ M#p11rpc_msg.call_code > -1,
+ M#p11rpc_msg.opt_len > -1,
+ M#p11rpc_msg.data_len > -1 ->
+ CallCode = M#p11rpc_msg.call_code,
+ OptLen = M#p11rpc_msg.opt_len,
+ DataLen = M#p11rpc_msg.data_len,
+ Options = M#p11rpc_msg.options,
+ Data = M#p11rpc_msg.data,
+ <<CallCode:32/integer, OptLen:32/integer, DataLen:32/integer, Options/binary, Data/binary>>.
%% Private