return ctdb_uint32_len(&u32);
}
-static void ctdb_event_push(enum ctdb_event in, uint8_t *buf)
+static void ctdb_event_push(enum ctdb_event in, uint8_t *buf, size_t *npush)
{
size_t np;
uint32_t u32 = in;
ctdb_uint32_push(&u32, buf, &np);
+
+ *npush = np;
}
static int ctdb_event_pull(uint8_t *buf, size_t buflen,
- TALLOC_CTX *mem_ctx, enum ctdb_event *out)
+ TALLOC_CTX *mem_ctx, enum ctdb_event *out,
+ size_t *npull)
{
uint32_t uint32_value;
enum ctdb_event value;
}
*out = value;
+ *npull = np;
return 0;
}
{
size_t offset = 0, np;
- ctdb_event_push(in->event, buf);
- offset += ctdb_event_len(in->event);
+ ctdb_event_push(in->event, buf, &np);
+ offset += np;
ctdb_uint32_push(&in->timeout, buf+offset, &np);
offset += np;
return ENOMEM;
}
- ret = ctdb_event_pull(buf, buflen, rdata, &rdata->event);
+ ret = ctdb_event_pull(buf, buflen, rdata, &rdata->event, &np);
if (ret != 0) {
goto fail;
}
- offset += ctdb_event_len(rdata->event);
+ offset += np;
ret = ctdb_uint32_pull(buf+offset, buflen-offset, &rdata->timeout,
&np);
struct ctdb_event_request_status *in,
uint8_t *buf)
{
- size_t offset = 0;
+ size_t offset = 0, np;
- ctdb_event_push(in->event, buf);
- offset += ctdb_event_len(in->event);
+ ctdb_event_push(in->event, buf, &np);
+ offset += np;
ctdb_event_status_state_push(in->state, buf+offset);
}
struct ctdb_event_request_status **out)
{
struct ctdb_event_request_status *rdata;
- size_t offset = 0;
+ size_t offset = 0, np;
int ret;
rdata = talloc(mem_ctx, struct ctdb_event_request_status);
return ENOMEM;
}
- ret = ctdb_event_pull(buf, buflen, rdata, &rdata->event);
+ ret = ctdb_event_pull(buf, buflen, rdata, &rdata->event, &np);
if (ret != 0) {
talloc_free(rdata);
return ret;
}
- offset += ctdb_event_len(rdata->event);
+ offset += np;
ret = ctdb_event_status_state_pull(buf+offset, buflen-offset,
rdata, &rdata->state);