}
static void ctdb_event_request_run_push(struct ctdb_event_request_run *in,
- uint8_t *buf)
+ uint8_t *buf, size_t *npush)
{
size_t offset = 0, np;
offset += np;
ctdb_stringn_push(&in->arg_str, buf+offset, &np);
+ offset += np;
+
+ *npush = offset;
}
static int ctdb_event_request_run_pull(uint8_t *buf, size_t buflen,
TALLOC_CTX *mem_ctx,
- struct ctdb_event_request_run **out)
+ struct ctdb_event_request_run **out,
+ size_t *npull)
{
struct ctdb_event_request_run *rdata;
size_t offset = 0, np;
if (ret != 0) {
goto fail;
}
+ offset += np;
*out = rdata;
+ *npull = offset;
return 0;
fail:
switch (in->command) {
case CTDB_EVENT_COMMAND_RUN:
- ctdb_event_request_run_push(in->data.run, buf+offset);
+ ctdb_event_request_run_push(in->data.run, buf+offset, &np);
break;
case CTDB_EVENT_COMMAND_STATUS:
switch (out->command) {
case CTDB_EVENT_COMMAND_RUN:
ret = ctdb_event_request_run_pull(buf+offset, buflen-offset,
- mem_ctx, &out->data.run);
+ mem_ctx, &out->data.run,
+ &np);
break;
case CTDB_EVENT_COMMAND_STATUS:
fflush(stdout);
}
-DEFINE_TEST(struct ctdb_event_request_run, ctdb_event_request_run);
+PROTOCOL_TYPE3_TEST(struct ctdb_event_request_run, ctdb_event_request_run);
DEFINE_TEST(struct ctdb_event_request_status, ctdb_event_request_status);
DEFINE_TEST(struct ctdb_event_request_script_enable,
ctdb_event_request_script_enable);