static void ctdb_event_request_status_push(
struct ctdb_event_request_status *in,
- uint8_t *buf)
+ uint8_t *buf, size_t *npush)
{
size_t offset = 0, np;
offset += np;
ctdb_event_status_state_push(in->state, buf+offset, &np);
+ offset += np;
+
+ *npush = offset;
}
static int ctdb_event_request_status_pull(
uint8_t *buf, size_t buflen,
TALLOC_CTX *mem_ctx,
- struct ctdb_event_request_status **out)
+ struct ctdb_event_request_status **out,
+ size_t *npull)
{
struct ctdb_event_request_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_request_status_push(in->data.status, buf+offset);
+ ctdb_event_request_status_push(in->data.status, buf+offset,
+ &np);
break;
case CTDB_EVENT_COMMAND_SCRIPT_LIST:
case CTDB_EVENT_COMMAND_STATUS:
ret = ctdb_event_request_status_pull(
buf+offset, buflen-offset,
- mem_ctx, &out->data.status);
+ mem_ctx, &out->data.status,
+ &np);
break;
case CTDB_EVENT_COMMAND_SCRIPT_LIST:
}
PROTOCOL_TYPE3_TEST(struct ctdb_event_request_run, ctdb_event_request_run);
-DEFINE_TEST(struct ctdb_event_request_status, ctdb_event_request_status);
+PROTOCOL_TYPE3_TEST(struct ctdb_event_request_status,
+ ctdb_event_request_status);
DEFINE_TEST(struct ctdb_event_request_script_enable,
ctdb_event_request_script_enable);
DEFINE_TEST(struct ctdb_event_request_script_disable,