Reviewed-by: Michael Adam <obnox@samba.org>
+/*
+ loop over a marshalling buffer
+
+ - pass r==NULL to start
+ - loop the number of times indicated by m->count
+*/
+static struct ctdb_rec_data *db_ctdb_marshall_loop_next_key(
+ struct ctdb_marshall_buffer *m, struct ctdb_rec_data *r, TDB_DATA *key)
+{
+ if (r == NULL) {
+ r = (struct ctdb_rec_data *)&m->data[0];
+ } else {
+ r = (struct ctdb_rec_data *)(r->length + (uint8_t *)r);
+ }
+
+ key->dptr = &r->data[0];
+ key->dsize = r->keylen;
+ return r;
+}
+
/*
loop over a marshalling buffer
/*
loop over a marshalling buffer
struct ctdb_ltdb_header *header,
TDB_DATA *key, TDB_DATA *data)
{
struct ctdb_ltdb_header *header,
TDB_DATA *key, TDB_DATA *data)
{
+ r = db_ctdb_marshall_loop_next_key(m, r, key);
- r = (struct ctdb_rec_data *)&m->data[0];
- } else {
- r = (struct ctdb_rec_data *)(r->length + (uint8_t *)r);
}
if (reqid != NULL) {
*reqid = r->reqid;
}
}
if (reqid != NULL) {
*reqid = r->reqid;
}
- key->dptr = &r->data[0];
- key->dsize = r->keylen;
-
if (data != NULL) {
data->dptr = &r->data[r->keylen];
data->dsize = r->datalen;
if (data != NULL) {
data->dptr = &r->data[r->keylen];
data->dsize = r->datalen;
for (i=0; i<mbuf->count; i++) {
TDB_DATA key;
for (i=0; i<mbuf->count; i++) {
TDB_DATA key;
- rec =db_ctdb_marshall_loop_next(mbuf, rec,
- NULL, NULL,
- &key, NULL);
+ rec = db_ctdb_marshall_loop_next_key(
+ mbuf, rec, &key);
SMB_ASSERT(rec != NULL);
if (!tdb_exists(ltdb, key)) {
SMB_ASSERT(rec != NULL);
if (!tdb_exists(ltdb, key)) {