diff options
author | Amitay Isaacs <amitay@gmail.com> | 2017-06-30 00:11:45 +1000 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2017-08-30 14:59:22 +0200 |
commit | c1a2f423172ad464e3147cb0504a51412ca7bc1b (patch) | |
tree | 4c7994eae340a4cf6d3f04d286240b86b58c5f5c /ctdb/protocol/protocol_basic.c | |
parent | 222b63779fc1bee0ce12fc77118e15b1071885dc (diff) | |
download | samba-c1a2f423172ad464e3147cb0504a51412ca7bc1b.tar.gz |
ctdb-protocol: Add marshalling for bool
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb/protocol/protocol_basic.c')
-rw-r--r-- | ctdb/protocol/protocol_basic.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ctdb/protocol/protocol_basic.c b/ctdb/protocol/protocol_basic.c index 619a3804532..4f08f8d335c 100644 --- a/ctdb/protocol/protocol_basic.c +++ b/ctdb/protocol/protocol_basic.c @@ -162,6 +162,45 @@ int ctdb_double_pull(uint8_t *buf, size_t buflen, double *out, size_t *npull) return 0; } +size_t ctdb_bool_len(bool *in) +{ + uint8_t u8 = *in; + + return ctdb_uint8_len(&u8); +} + +void ctdb_bool_push(bool *in, uint8_t *buf, size_t *npush) +{ + size_t np; + uint8_t u8 = *in; + + ctdb_uint8_push(&u8, buf, &np); + *npush = np; +} + +int ctdb_bool_pull(uint8_t *buf, size_t buflen, bool *out, size_t *npull) +{ + size_t np; + uint8_t u8; + int ret; + + ret = ctdb_uint8_pull(buf, buflen, &u8, &np); + if (ret != 0) { + return ret; + } + + if (u8 == 0) { + *out = false; + } else if (u8 == 1) { + *out = true; + } else { + return EINVAL; + } + + *npull = np; + return 0; +} + size_t ctdb_string_len(const char *str) { if (str == NULL) { |