summaryrefslogtreecommitdiff
path: root/libcli/auth/netlogon_creds_cli.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcli/auth/netlogon_creds_cli.c')
-rw-r--r--libcli/auth/netlogon_creds_cli.c62
1 files changed, 2 insertions, 60 deletions
diff --git a/libcli/auth/netlogon_creds_cli.c b/libcli/auth/netlogon_creds_cli.c
index 081b18efb0e..31bd98ddc94 100644
--- a/libcli/auth/netlogon_creds_cli.c
+++ b/libcli/auth/netlogon_creds_cli.c
@@ -1084,10 +1084,8 @@ struct netlogon_creds_cli_auth_state {
bool try_auth3;
bool try_auth2;
bool require_auth2;
- struct netlogon_creds_cli_locked_state *locked_state;
};
-static void netlogon_creds_cli_auth_locked(struct tevent_req *subreq);
static void netlogon_creds_cli_auth_challenge_start(struct tevent_req *req);
struct tevent_req *netlogon_creds_cli_auth_send(TALLOC_CTX *mem_ctx,
@@ -1099,7 +1097,6 @@ struct tevent_req *netlogon_creds_cli_auth_send(TALLOC_CTX *mem_ctx,
{
struct tevent_req *req;
struct netlogon_creds_cli_auth_state *state;
- struct netlogon_creds_cli_locked_state *locked_state;
NTSTATUS status;
req = tevent_req_create(mem_ctx, &state,
@@ -1124,21 +1121,10 @@ struct tevent_req *netlogon_creds_cli_auth_send(TALLOC_CTX *mem_ctx,
state->idx_nt_hashes = 0;
state->nt_hashes = nt_hashes;
- if (context->db.locked_state != NULL) {
- tevent_req_nterror(req, NT_STATUS_LOCK_NOT_GRANTED);
- return tevent_req_post(req, ev);
- }
-
- locked_state = talloc_zero(state, struct netlogon_creds_cli_locked_state);
- if (tevent_req_nomem(locked_state, req)) {
+ if (context->db.lock != NETLOGON_CREDS_CLI_LCK_EXCLUSIVE) {
+ tevent_req_nterror(req, NT_STATUS_NOT_LOCKED);
return tevent_req_post(req, ev);
}
- talloc_set_destructor(locked_state,
- netlogon_creds_cli_locked_state_destructor);
- locked_state->context = context;
-
- context->db.locked_state = locked_state;
- state->locked_state = locked_state;
state->srv_name_slash = talloc_asprintf(state, "\\\\%s",
context->server.computer);
@@ -1156,23 +1142,6 @@ struct tevent_req *netlogon_creds_cli_auth_send(TALLOC_CTX *mem_ctx,
state->used_nt_hash = state->nt_hashes[state->idx_nt_hashes];
state->current_flags = context->client.proposed_flags;
- if (context->db.g_ctx != NULL) {
- struct tevent_req *subreq;
-
- subreq = g_lock_lock_send(state, ev,
- context->db.g_ctx,
- context->db.key_name,
- G_LOCK_WRITE);
- if (tevent_req_nomem(subreq, req)) {
- return tevent_req_post(req, ev);
- }
- tevent_req_set_callback(subreq,
- netlogon_creds_cli_auth_locked,
- req);
-
- return req;
- }
-
status = dbwrap_purge(state->context->db.ctx,
state->context->db.key_data);
if (tevent_req_nterror(req, status)) {
@@ -1187,32 +1156,6 @@ struct tevent_req *netlogon_creds_cli_auth_send(TALLOC_CTX *mem_ctx,
return req;
}
-static void netlogon_creds_cli_auth_locked(struct tevent_req *subreq)
-{
- struct tevent_req *req =
- tevent_req_callback_data(subreq,
- struct tevent_req);
- struct netlogon_creds_cli_auth_state *state =
- tevent_req_data(req,
- struct netlogon_creds_cli_auth_state);
- NTSTATUS status;
-
- status = g_lock_lock_recv(subreq);
- TALLOC_FREE(subreq);
- if (tevent_req_nterror(req, status)) {
- return;
- }
- state->locked_state->is_glocked = true;
-
- status = dbwrap_purge(state->context->db.ctx,
- state->context->db.key_data);
- if (tevent_req_nterror(req, status)) {
- return;
- }
-
- netlogon_creds_cli_auth_challenge_start(req);
-}
-
static void netlogon_creds_cli_auth_challenge_done(struct tevent_req *subreq);
static void netlogon_creds_cli_auth_challenge_start(struct tevent_req *req)
@@ -1456,7 +1399,6 @@ static void netlogon_creds_cli_auth_srvauth_done(struct tevent_req *subreq)
status = dbwrap_store(state->context->db.ctx,
state->context->db.key_data,
data, TDB_REPLACE);
- TALLOC_FREE(state->locked_state);
if (tevent_req_nterror(req, status)) {
return;
}