Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
if (state->is_glocked) {
g_lock_unlock(context->db.g_ctx,
if (state->is_glocked) {
g_lock_unlock(context->db.g_ctx,
+ string_term_tdb_data(context->db.key_name));
struct netlogon_creds_cli_context *ctx = lck->context;
NTSTATUS status;
struct netlogon_creds_cli_context *ctx = lck->context;
NTSTATUS status;
- status = g_lock_unlock(ctx->db.g_ctx, ctx->db.key_name);
+ status = g_lock_unlock(ctx->db.g_ctx,
+ string_term_tdb_data(ctx->db.key_name));
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("g_lock_unlock failed: %s\n", nt_errstr(status));
smb_panic("g_lock_unlock failed");
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("g_lock_unlock failed: %s\n", nt_errstr(status));
smb_panic("g_lock_unlock failed");
NTSTATUS g_lock_lock_recv(struct tevent_req *req);
NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, TDB_DATA key,
enum g_lock_type lock_type, struct timeval timeout);
NTSTATUS g_lock_lock_recv(struct tevent_req *req);
NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, TDB_DATA key,
enum g_lock_type lock_type, struct timeval timeout);
-NTSTATUS g_lock_unlock(struct g_lock_ctx *ctx, const char *name);
+NTSTATUS g_lock_unlock(struct g_lock_ctx *ctx, TDB_DATA key);
NTSTATUS g_lock_write_data(struct g_lock_ctx *ctx, const char *name,
const uint8_t *buf, size_t buflen);
NTSTATUS g_lock_write_data(struct g_lock_ctx *ctx, const char *name,
const uint8_t *buf, size_t buflen);
- status = g_lock_unlock(h->ctx->lock_ctx, h->lock_name);
+ status = g_lock_unlock(h->ctx->lock_ctx,
+ string_term_tdb_data(h->lock_name));
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("g_lock_unlock failed for %s: %s\n", h->lock_name,
nt_errstr(status)));
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("g_lock_unlock failed for %s: %s\n", h->lock_name,
nt_errstr(status)));
}
struct g_lock_unlock_state {
}
struct g_lock_unlock_state {
struct server_id self;
NTSTATUS status;
};
struct server_id self;
NTSTATUS status;
};
ok = g_lock_parse(value.dptr, value.dsize, &lck);
if (!ok) {
ok = g_lock_parse(value.dptr, value.dsize, &lck);
if (!ok) {
- DBG_DEBUG("g_lock_get for %s failed\n", state->name);
+ DBG_DEBUG("g_lock_get for %s failed\n",
+ hex_encode_talloc(talloc_tos(),
+ state->key.dptr,
+ state->key.dsize));
state->status = NT_STATUS_FILE_INVALID;
return;
}
state->status = NT_STATUS_FILE_INVALID;
return;
}
state->status = g_lock_store(rec, &lck, NULL);
}
state->status = g_lock_store(rec, &lck, NULL);
}
-NTSTATUS g_lock_unlock(struct g_lock_ctx *ctx, const char *name)
+NTSTATUS g_lock_unlock(struct g_lock_ctx *ctx, TDB_DATA key)
{
struct g_lock_unlock_state state = {
{
struct g_lock_unlock_state state = {
- .self = messaging_server_id(ctx->msg), .name = name
+ .self = messaging_server_id(ctx->msg), .key = key
- status = dbwrap_do_locked(ctx->db, string_term_tdb_data(name),
- g_lock_unlock_fn, &state);
+ status = dbwrap_do_locked(ctx->db, key, g_lock_unlock_fn, &state);
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("dbwrap_do_locked failed: %s\n",
nt_errstr(status));
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("dbwrap_do_locked failed: %s\n",
nt_errstr(status));
goto done;
}
fn(private_data);
goto done;
}
fn(private_data);
- g_lock_unlock(g_ctx, name);
+ g_lock_unlock(g_ctx, string_term_tdb_data(name));
done:
TALLOC_FREE(g_ctx);
done:
TALLOC_FREE(g_ctx);
static int trust_pw_change_state_destructor(struct trust_pw_change_state *state)
{
static int trust_pw_change_state_destructor(struct trust_pw_change_state *state)
{
- g_lock_unlock(state->g_ctx, state->g_lock_key);
+ g_lock_unlock(state->g_ctx,
+ string_term_tdb_data(state->g_lock_key));
if (!NT_STATUS_IS_OK(status) &&
!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
DBG_ERR("Could not read samba_version_string\n");
if (!NT_STATUS_IS_OK(status) &&
!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
DBG_ERR("Could not read samba_version_string\n");
- g_lock_unlock(ctx, name);
+ g_lock_unlock(ctx, string_term_tdb_data(name));
TALLOC_FREE(ctx);
return status;
}
TALLOC_FREE(ctx);
return status;
}
- status = g_lock_unlock(ctx, lockname);
+ status = g_lock_unlock(ctx, string_term_tdb_data(lockname));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));
goto fail;
}
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));
goto fail;
}
- status = g_lock_unlock(ctx, lockname);
+ status = g_lock_unlock(ctx, string_term_tdb_data(lockname));
if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
fprintf(stderr, "g_lock_unlock returned: %s\n",
nt_errstr(status));
if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
fprintf(stderr, "g_lock_unlock returned: %s\n",
nt_errstr(status));
- status = g_lock_unlock(ctx, lockname);
+ status = g_lock_unlock(ctx, string_term_tdb_data(lockname));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));
nt_errstr(status));
return false;
}
nt_errstr(status));
return false;
}
- status = g_lock_unlock(ctx, lockname);
+ status = g_lock_unlock(ctx, string_term_tdb_data(lockname));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed %s\n",
nt_errstr(status));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed %s\n",
nt_errstr(status));
name[10] = '0' + ((i) % torture_nprocs);
name[10] = '0' + ((i) % torture_nprocs);
- status = g_lock_unlock(ctx, name);
+ status = g_lock_unlock(ctx, string_term_tdb_data(name));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "g_lock_unlock failed: %s\n",
nt_errstr(status));