diff options
Diffstat (limited to 'source3/nsswitch/winbindd_pam.c')
-rw-r--r-- | source3/nsswitch/winbindd_pam.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/source3/nsswitch/winbindd_pam.c b/source3/nsswitch/winbindd_pam.c index 47affa66fb..4797ba79f4 100644 --- a/source3/nsswitch/winbindd_pam.c +++ b/source3/nsswitch/winbindd_pam.c @@ -185,7 +185,7 @@ static void set_auth_errors(struct winbindd_response *resp, NTSTATUS result) Authenticate a user with a clear text password **********************************************************************/ -enum winbindd_result winbindd_pam_auth(struct winbindd_cli_state *state) +void winbindd_pam_auth(struct winbindd_cli_state *state) { struct winbindd_domain *domain; fstring name_domain, name_user; @@ -215,13 +215,11 @@ enum winbindd_result winbindd_pam_auth(struct winbindd_cli_state *state) state->request.data.auth.user, state->response.data.auth.nt_status_string, state->response.data.auth.pam_error)); - return WINBINDD_ERROR; + request_error(state); + return; } - async_domain_request(state->mem_ctx, domain, - &state->request, &state->response, - request_finished_cont, state); - return WINBINDD_PENDING; + sendto_domain(state, domain); } enum winbindd_result winbindd_dual_pam_auth(struct winbindd_domain *domain, @@ -500,7 +498,7 @@ done: Challenge Response Authentication Protocol **********************************************************************/ -enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) +void winbindd_pam_auth_crap(struct winbindd_cli_state *state) { struct winbindd_domain *domain = NULL; const char *domain_name = NULL; @@ -546,10 +544,8 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) domain = find_auth_domain(domain_name); if (domain != NULL) { - async_domain_request(state->mem_ctx, domain, - &state->request, &state->response, - request_finished_cont, state); - return WINBINDD_PENDING; + sendto_domain(state, domain); + return; } result = NT_STATUS_NO_SUCH_USER; @@ -560,7 +556,8 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) state->request.data.auth.user, state->response.data.auth.nt_status_string, state->response.data.auth.pam_error)); - return WINBINDD_ERROR; + request_error(state); + return; } @@ -802,7 +799,7 @@ done: /* Change a user password */ -enum winbindd_result winbindd_pam_chauthtok(struct winbindd_cli_state *state) +void winbindd_pam_chauthtok(struct winbindd_cli_state *state) { NTSTATUS result; char *oldpass, *newpass; @@ -816,9 +813,6 @@ enum winbindd_result winbindd_pam_chauthtok(struct winbindd_cli_state *state) /* Setup crap */ - if (state == NULL) - return WINBINDD_ERROR; - parse_domain_user(state->request.data.chauthtok.user, domain, user); if (!(contact_domain = find_domain_from_name(domain))) { @@ -858,5 +852,8 @@ done: state->response.data.auth.nt_status_string, state->response.data.auth.pam_error)); - return NT_STATUS_IS_OK(result) ? WINBINDD_OK : WINBINDD_ERROR; + if (NT_STATUS_IS_OK(result)) + request_ok(state); + else + request_error(state); } |