ctdb-protocol: Fix marshalling for ctdb_event_reply_script_list
authorAmitay Isaacs <amitay@gmail.com>
Wed, 26 Jul 2017 15:45:44 +0000 (01:45 +1000)
committerMartin Schwenke <martins@samba.org>
Wed, 30 Aug 2017 12:59:26 +0000 (14:59 +0200)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/protocol/protocol_event.c
ctdb/tests/src/protocol_event_test.c

index 1f608ad8ea1603fc9c0bb5ebd7e44e0af2853673..d7ea6593105015ab2f2c3e9c165515f01500dd72 100644 (file)
@@ -645,17 +645,20 @@ static size_t ctdb_event_reply_script_list_len(
 
 static void ctdb_event_reply_script_list_push(
                                struct ctdb_event_reply_script_list *in,
-                               uint8_t *buf)
+                               uint8_t *buf, size_t *npush)
 {
        size_t np;
 
        ctdb_script_list_push(in->script_list, buf, &np);
+
+       *npush = np;
 }
 
 static int ctdb_event_reply_script_list_pull(
                                uint8_t *buf, size_t buflen,
                                TALLOC_CTX *mem_ctx,
-                               struct ctdb_event_reply_script_list **out)
+                               struct ctdb_event_reply_script_list **out,
+                               size_t *npull)
 {
        struct ctdb_event_reply_script_list *rdata;
        size_t np;
@@ -674,6 +677,7 @@ static int ctdb_event_reply_script_list_pull(
        }
 
        *out = rdata;
+       *npull = np;
        return 0;
 }
 
@@ -727,7 +731,7 @@ static void ctdb_event_reply_data_push(struct ctdb_event_reply_data *in,
 
        case CTDB_EVENT_COMMAND_SCRIPT_LIST:
                ctdb_event_reply_script_list_push(in->data.script_list,
-                                                 buf+offset);
+                                                 buf+offset, &np);
                break;
 
        case CTDB_EVENT_COMMAND_SCRIPT_ENABLE:
@@ -771,7 +775,7 @@ static int ctdb_event_reply_data_pull(uint8_t *buf, size_t buflen,
        case CTDB_EVENT_COMMAND_SCRIPT_LIST:
                ret = ctdb_event_reply_script_list_pull(
                                        buf+offset, buflen-offset,
-                                       mem_ctx, &out->data.script_list);
+                                       mem_ctx, &out->data.script_list, &np);
                break;
 
        case CTDB_EVENT_COMMAND_SCRIPT_ENABLE:
index 57f7d9068ba340475dda6f9124c3abb2811885ca..633c7c360ef1e95d6014ccb5653a8d1d302b7bcf 100644 (file)
@@ -239,7 +239,8 @@ PROTOCOL_TYPE3_TEST(struct ctdb_event_request_script_enable,
 PROTOCOL_TYPE3_TEST(struct ctdb_event_request_script_disable,
                                ctdb_event_request_script_disable);
 PROTOCOL_TYPE3_TEST(struct ctdb_event_reply_status, ctdb_event_reply_status);
-DEFINE_TEST(struct ctdb_event_reply_script_list, ctdb_event_reply_script_list);
+PROTOCOL_TYPE3_TEST(struct ctdb_event_reply_script_list,
+                               ctdb_event_reply_script_list);
 
 PROTOCOL_EVENT1_TEST(struct ctdb_event_request_data, ctdb_event_request_data);