} smbXsrv_open_flags;
typedef struct {
- [ignore] db_record *db_rec;
server_id server_id;
uint32 open_global_id;
hyper open_persistent_id;
op->global->open_global_id, &key_buf);
NTSTATUS status;
- if (op->global->db_rec != NULL) {
- DEBUG(0, ("smbXsrv_open_update(0x%08x): "
- "Called with db_rec != NULL'\n",
- op->global->open_global_id));
- return NT_STATUS_INTERNAL_ERROR;
- }
-
status = dbwrap_do_locked(
table->global.db_ctx, key, smbXsrv_open_update_fn, &state);
if (!NT_STATUS_IS_OK(status)) {
}
struct smbXsrv_open_global_traverse_state {
- int (*fn)(struct smbXsrv_open_global0 *, void *);
+ int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *);
void *private_data;
};
return -1;
}
- global->db_rec = rec;
- ret = state->fn(global, state->private_data);
+ ret = state->fn(rec, global, state->private_data);
talloc_free(global);
return ret;
}
NTSTATUS smbXsrv_open_global_traverse(
- int (*fn)(struct smbXsrv_open_global0 *, void *),
- void *private_data)
+ int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *),
+ void *private_data)
{
NTSTATUS status;
const struct GUID *create_guid,
NTTIME now,
struct smbXsrv_open **_open);
+
+struct db_record;
NTSTATUS smbXsrv_open_global_traverse(
- int (*fn)(struct smbXsrv_open_global0 *, void *),
+ int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *),
void *private_data);
NTSTATUS smbXsrv_open_cleanup(uint64_t persistent_id);
return ret;
}
-static int wipedbs_traverse_open(struct smbXsrv_open_global0 *open,
+static int wipedbs_traverse_open(struct db_record *db_rec,
+ struct smbXsrv_open_global0 *open,
void *wipedbs_state)
{
struct wipedbs_state *state =
goto done;
}
- tmp = dbwrap_record_get_key(open->db_rec);
+ tmp = dbwrap_record_get_key(db_rec);
rec->key = tdb_data_talloc_copy(rec, tmp);
- tmp = dbwrap_record_get_value(open->db_rec);
+ tmp = dbwrap_record_get_value(db_rec);
rec->val = tdb_data_talloc_copy(rec, tmp);
rec->desc = talloc_asprintf(
goto done;
}
- state->open_db = dbwrap_record_get_db(open->db_rec);
+ state->open_db = dbwrap_record_get_db(db_rec);
DLIST_ADD(sd->open_records, rec);
ret = 0;