diff options
author | Amitay Isaacs <amitay@gmail.com> | 2017-07-06 14:04:51 +1000 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2017-08-30 14:59:24 +0200 |
commit | 9e11de448d8c1dced72d57ccfbb80c9e45aa2269 (patch) | |
tree | 737cbb098c96a10b93322ca4dedee0c2bbbd6b98 /ctdb/tests | |
parent | d7c247dd7284097c3aa4a0c6f41551edb43d6e29 (diff) | |
download | samba-9e11de448d8c1dced72d57ccfbb80c9e45aa2269.tar.gz |
ctdb-protocol: Fix marshalling for ctdb_public_ip
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb/tests')
-rw-r--r-- | ctdb/tests/src/protocol_types_compat_test.c | 47 | ||||
-rw-r--r-- | ctdb/tests/src/protocol_types_test.c | 2 |
2 files changed, 48 insertions, 1 deletions
diff --git a/ctdb/tests/src/protocol_types_compat_test.c b/ctdb/tests/src/protocol_types_compat_test.c index ad908d0b515..a69d8d891f6 100644 --- a/ctdb/tests/src/protocol_types_compat_test.c +++ b/ctdb/tests/src/protocol_types_compat_test.c @@ -1166,6 +1166,51 @@ static int ctdb_uptime_pull_old(uint8_t *buf, size_t buflen, return 0; } +static size_t ctdb_public_ip_len_old(struct ctdb_public_ip *in) +{ + return sizeof(struct ctdb_public_ip); +} + +static void ctdb_public_ip_push_old(struct ctdb_public_ip *in, uint8_t *buf) +{ + memcpy(buf, in, sizeof(struct ctdb_public_ip)); +} + +static int ctdb_public_ip_pull_elems_old(uint8_t *buf, size_t buflen, + TALLOC_CTX *mem_ctx, + struct ctdb_public_ip *out) +{ + if (buflen < sizeof(struct ctdb_public_ip)) { + return EMSGSIZE; + } + + memcpy(out, buf, sizeof(struct ctdb_public_ip)); + + return 0; +} + +static int ctdb_public_ip_pull_old(uint8_t *buf, size_t buflen, + TALLOC_CTX *mem_ctx, + struct ctdb_public_ip **out) +{ + struct ctdb_public_ip *val; + int ret; + + val = talloc(mem_ctx, struct ctdb_public_ip); + if (val == NULL) { + return ENOMEM; + } + + ret = ctdb_public_ip_pull_elems_old(buf, buflen, val, val); + if (ret != 0) { + TALLOC_FREE(val); + return ret; + } + + *out = val; + return ret; +} + COMPAT_TYPE3_TEST(struct ctdb_statistics, ctdb_statistics); COMPAT_TYPE3_TEST(struct ctdb_vnn_map, ctdb_vnn_map); @@ -1191,6 +1236,7 @@ COMPAT_TYPE3_TEST(struct ctdb_tickle_list, ctdb_tickle_list); COMPAT_TYPE3_TEST(struct ctdb_addr_info, ctdb_addr_info); COMPAT_TYPE3_TEST(struct ctdb_transdb, ctdb_transdb); COMPAT_TYPE3_TEST(struct ctdb_uptime, ctdb_uptime); +COMPAT_TYPE3_TEST(struct ctdb_public_ip, ctdb_public_ip); int main(int argc, char *argv[]) { @@ -1221,6 +1267,7 @@ int main(int argc, char *argv[]) COMPAT_TEST_FUNC(ctdb_addr_info)(); COMPAT_TEST_FUNC(ctdb_transdb)(); COMPAT_TEST_FUNC(ctdb_uptime)(); + COMPAT_TEST_FUNC(ctdb_public_ip)(); return 0; } diff --git a/ctdb/tests/src/protocol_types_test.c b/ctdb/tests/src/protocol_types_test.c index d17beb47d1e..2360304ccd4 100644 --- a/ctdb/tests/src/protocol_types_test.c +++ b/ctdb/tests/src/protocol_types_test.c @@ -70,7 +70,7 @@ PROTOCOL_TYPE3_TEST(struct ctdb_tickle_list, ctdb_tickle_list); PROTOCOL_TYPE3_TEST(struct ctdb_addr_info, ctdb_addr_info); PROTOCOL_TYPE3_TEST(struct ctdb_transdb, ctdb_transdb); PROTOCOL_TYPE3_TEST(struct ctdb_uptime, ctdb_uptime); -DEFINE_TEST(struct ctdb_public_ip, ctdb_public_ip); +PROTOCOL_TYPE3_TEST(struct ctdb_public_ip, ctdb_public_ip); DEFINE_TEST(struct ctdb_public_ip_list, ctdb_public_ip_list); DEFINE_TEST(struct ctdb_node_and_flags, ctdb_node_and_flags); DEFINE_TEST(struct ctdb_node_map, ctdb_node_map); |