NTSTATUS status;
};
-static void dbwrap_store_fn(struct db_record *rec, void *private_data)
+static void dbwrap_store_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct dbwrap_store_state *state = private_data;
state->status = dbwrap_record_store(rec, state->data, state->flags);
NTSTATUS status;
};
-static void dbwrap_delete_fn(struct db_record *rec, void *private_data)
+static void dbwrap_delete_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct dbwrap_delete_state *state = private_data;
state->status = dbwrap_record_delete(rec);
NTSTATUS dbwrap_do_locked(struct db_context *db, TDB_DATA key,
void (*fn)(struct db_record *rec,
+ TDB_DATA value,
void *private_data),
void *private_data)
{
return NT_STATUS_NO_MEMORY;
}
- fn(rec, private_data);
+ fn(rec, rec->value, private_data);
TALLOC_FREE(rec);
NTSTATUS dbwrap_do_locked(struct db_context *db, TDB_DATA key,
void (*fn)(struct db_record *rec,
+ TDB_DATA value,
void *private_data),
void *private_data);
NTSTATUS (*parse_record_recv)(struct tevent_req *req);
NTSTATUS (*do_locked)(struct db_context *db, TDB_DATA key,
void (*fn)(struct db_record *rec,
+ TDB_DATA value,
void *private_data),
void *private_data);
int (*exists)(struct db_context *db,TDB_DATA key);
static NTSTATUS db_tdb_do_locked(struct db_context *db, TDB_DATA key,
void (*fn)(struct db_record *rec,
+ TDB_DATA value,
void *private_data),
void *private_data)
{
.private_data = ctx
};
- fn(&rec, private_data);
+ fn(&rec, rec.value, private_data);
tdb_chainunlock(ctx->wtdb->tdb, key);
struct dbwrap_watched_do_locked_state {
TALLOC_CTX *mem_ctx;
struct db_context *db;
- void (*fn)(struct db_record *rec, void *private_data);
+ void (*fn)(struct db_record *rec,
+ TDB_DATA value,
+ void *private_data);
void *private_data;
struct db_watched_subrec subrec;
return status;
}
-static void dbwrap_watched_do_locked_fn(struct db_record *subrec,
- void *private_data)
+static void dbwrap_watched_do_locked_fn(
+ struct db_record *subrec,
+ TDB_DATA subrec_value,
+ void *private_data)
{
struct dbwrap_watched_do_locked_state *state =
(struct dbwrap_watched_do_locked_state *)private_data;
- TDB_DATA subrec_value = dbwrap_record_get_value(subrec);
struct db_record rec;
bool ok;
rec = (struct db_record) {
- .db = state->db, .key = dbwrap_record_get_key(subrec),
+ .db = state->db,
+ .key = dbwrap_record_get_key(subrec),
.storev = dbwrap_watched_do_locked_storev,
.delete_rec = dbwrap_watched_do_locked_delete,
.private_data = state
rec.value = state->subrec.wrec.data;
}
- state->fn(&rec, state->private_data);
+ state->fn(&rec, state->subrec.wrec.data, state->private_data);
}
static NTSTATUS dbwrap_watched_do_locked(struct db_context *db, TDB_DATA key,
void (*fn)(struct db_record *rec,
+ TDB_DATA value,
void *private_data),
void *private_data)
{
NTSTATUS status;
};
-static void g_lock_lock_fn(struct db_record *rec, void *private_data)
+static void g_lock_lock_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct g_lock_lock_fn_state *state = private_data;
struct server_id blocker = {0};
NTSTATUS status;
};
-static void g_lock_unlock_fn(struct db_record *rec,
- void *private_data)
+static void g_lock_unlock_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct g_lock_unlock_state *state = private_data;
- TDB_DATA value;
struct g_lock lck;
size_t i;
bool ok;
- value = dbwrap_record_get_value(rec);
-
ok = g_lock_parse(value.dptr, value.dsize, &lck);
if (!ok) {
DBG_DEBUG("g_lock_parse for %s failed\n",
NTSTATUS status;
};
-static void g_lock_write_data_fn(struct db_record *rec,
- void *private_data)
+static void g_lock_write_data_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct g_lock_write_data_state *state = private_data;
- TDB_DATA value;
struct g_lock lck;
size_t i;
bool ok;
- value = dbwrap_record_get_value(rec);
-
ok = g_lock_parse(value.dptr, value.dsize, &lck);
if (!ok) {
DBG_DEBUG("g_lock_parse for %s failed\n",
NTSTATUS status;
};
-static void leases_db_do_locked_fn(struct db_record *rec, void *private_data)
+static void leases_db_do_locked_fn(
+ struct db_record *rec,
+ TDB_DATA db_value,
+ void *private_data)
{
struct leases_db_do_locked_state *state = private_data;
- TDB_DATA db_value = dbwrap_record_get_value(rec);
DATA_BLOB blob = { .data = db_value.dptr, .length = db_value.dsize };
struct leases_db_value *value = NULL;
enum ndr_err_code ndr_err;
};
static void add_fd_to_close_entry_fn(
- struct db_record *rec, void *private_data)
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct add_fd_to_close_entry_state *state = private_data;
TDB_DATA values[] = {
- dbwrap_record_get_value(rec),
+ value,
{ .dptr = (uint8_t *)&(state->fsp->fh->fd),
.dsize = sizeof(state->fsp->fh->fd) },
};
}
static void fd_close_posix_fn(
- struct db_record *rec, void *private_data)
+ struct db_record *rec,
+ TDB_DATA data,
+ void *private_data)
{
- TDB_DATA data = dbwrap_record_get_value(rec);
size_t num_fds, i;
SMB_ASSERT((data.dsize % sizeof(int)) == 0);
void *private_data;
};
-static void share_mode_do_locked_fn(struct db_record *rec,
- void *private_data)
+static void share_mode_do_locked_fn(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct share_mode_do_locked_state *state = private_data;
bool modified_dependent = false;
bool reset_static_share_mode_record = false;
- TDB_DATA value = dbwrap_record_get_value(rec);
if (static_share_mode_record == NULL) {
static_share_mode_record = rec;
NTSTATUS status;
};
-static void set_share_mode_fn(struct db_record *rec, void *private_data)
+static void set_share_mode_fn(
+ struct db_record *rec,
+ TDB_DATA data,
+ void *private_data)
{
struct set_share_mode_state *state = private_data;
- TDB_DATA data = dbwrap_record_get_value(rec);
size_t idx, num_share_modes;
struct share_mode_entry tmp;
struct share_mode_entry_buf buf;
}
static void share_mode_forall_entries_fn(
- struct db_record *rec, void *private_data)
+ struct db_record *rec,
+ TDB_DATA data,
+ void *private_data)
{
struct share_mode_forall_entries_state *state = private_data;
struct share_mode_data *d = state->lck->data;
- struct TDB_DATA data = dbwrap_record_get_value(rec);
size_t num_share_modes;
bool writeback = false;
NTSTATUS status;
NTSTATUS status;
};
-static void share_mode_entry_do_fn(struct db_record *rec, void *private_data)
+static void share_mode_entry_do_fn(
+ struct db_record *rec,
+ TDB_DATA data,
+ void *private_data)
{
struct share_mode_entry_do_state *state = private_data;
- struct TDB_DATA data = dbwrap_record_get_value(rec);
size_t idx;
bool found = false;
bool modified;
NTSTATUS status;
};
-static void do_locked1_cb(struct db_record *rec, void *private_data)
+static void do_locked1_cb(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct do_locked1_state *state =
(struct do_locked1_state *)private_data;
state->status = NT_STATUS_OK;
}
-static void do_locked1_del(struct db_record *rec, void *private_data)
+static void do_locked1_del(
+ struct db_record *rec,
+ TDB_DATA value,
+ void *private_data)
{
struct do_locked1_state *state =
(struct do_locked1_state *)private_data;