From 3ba7ca4155c7be439108b174a3b49a508923d378 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Thu, 30 Jun 2016 21:52:59 -0400 Subject: RPC wire format now includes client handle in all requests, and opcode and client handle in all responses. This simplies the daemon a little, and means that the directly-connected serial client uses the same wire format as the daemon. The expense is some redundant code in rpc_client and rpc_server to process (and throw away) this extra stuff. --- xdr.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'xdr.c') diff --git a/xdr.c b/xdr.c index 6266d99..27b8593 100644 --- a/xdr.c +++ b/xdr.c @@ -75,6 +75,17 @@ hal_error_t hal_xdr_decode_int(const uint8_t ** const inbuf, const uint8_t * con return HAL_OK; } +/* Undo the last decode_int - roll back the input pointer. + */ +hal_error_t hal_xdr_undecode_int(const uint8_t ** const inbuf) +{ + if (inbuf == NULL || *inbuf == NULL) + return HAL_ERROR_BAD_ARGUMENTS; + + *inbuf -= sizeof(uint32_t); + return HAL_OK; +} + /* encode/decode_buffer. This covers variable-length string and opaque types. * The data is preceded by a 4-byte length word (encoded as above), and padded * to a multiple of 4 bytes as necessary. -- cgit v1.2.3