return result;
}
-static bool gencache_pull_timeout(TDB_DATA data, time_t *pres, char **payload)
+static bool gencache_pull_timeout(TDB_DATA data, time_t *pres, DATA_BLOB *payload)
{
time_t res;
char *slash = NULL;
*pres = res;
}
if (payload != NULL) {
- *payload = endptr+1;
+ endptr += 1;
+ *payload = (DATA_BLOB) {
+ .data = discard_const_p(uint8_t, endptr),
+ .length = data.dsize - PTR_DIFF(endptr, data.dptr),
+ };
}
return true;
}
static int gencache_parse_fn(TDB_DATA key, TDB_DATA data, void *private_data)
{
struct gencache_parse_state *state;
- DATA_BLOB blob;
struct gencache_timeout t;
- char *payload;
+ DATA_BLOB payload;
bool ret;
if (data.dptr == NULL) {
return -1;
}
state = (struct gencache_parse_state *)private_data;
- blob = data_blob_const(
- payload, data.dsize - PTR_DIFF(payload, data.dptr));
- state->parser(&t, blob, state->private_data);
+ state->parser(&t, payload, state->private_data);
if (state->copy_to_notrans) {
tdb_store(cache_notrans->tdb, key, data, 0);
char *keystr;
char *free_key = NULL;
time_t timeout;
- char *payload;
+ DATA_BLOB payload;
if (tdb_data_cmp(key, last_stabilize_key()) == 0) {
return 0;
"(key=[%s], timeout=[%s])\n",
keystr, timestring(talloc_tos(), timeout)));
- state->fn(keystr,
- data_blob_const(payload,
- data.dsize - PTR_DIFF(payload, data.dptr)),
- timeout, state->private_data);
+ state->fn(keystr, payload, timeout, state->private_data);
done:
TALLOC_FREE(free_key);