}
static void ctdb_event_reply_status_push(struct ctdb_event_reply_status *in,
- uint8_t *buf)
+ uint8_t *buf, size_t *npush)
{
size_t offset = 0, np;
offset += np;
ctdb_script_list_push(in->script_list, buf+offset, &np);
+ offset += np;
+
+ *npush = offset;
}
static int ctdb_event_reply_status_pull(uint8_t *buf, size_t buflen,
TALLOC_CTX *mem_ctx,
- struct ctdb_event_reply_status **out)
+ struct ctdb_event_reply_status **out,
+ size_t *npull)
{
struct ctdb_event_reply_status *rdata;
size_t offset = 0, np;
talloc_free(rdata);
return ret;
}
+ offset += np;
*out = rdata;
+ *npull = offset;
return 0;
}
break;
case CTDB_EVENT_COMMAND_STATUS:
- ctdb_event_reply_status_push(in->data.status, buf+offset);
+ ctdb_event_reply_status_push(in->data.status, buf+offset, &np);
break;
case CTDB_EVENT_COMMAND_SCRIPT_LIST:
case CTDB_EVENT_COMMAND_STATUS:
ret = ctdb_event_reply_status_pull(
buf+offset, buflen-offset,
- mem_ctx, &out->data.status);
+ mem_ctx, &out->data.status, &np);
break;
case CTDB_EVENT_COMMAND_SCRIPT_LIST:
ctdb_event_request_script_enable);
PROTOCOL_TYPE3_TEST(struct ctdb_event_request_script_disable,
ctdb_event_request_script_disable);
-DEFINE_TEST(struct ctdb_event_reply_status, ctdb_event_reply_status);
+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_EVENT1_TEST(struct ctdb_event_request_data, ctdb_event_request_data);