NTSTATUS (*check_password_recv)(struct tevent_req *subreq,
TALLOC_CTX *mem_ctx,
struct auth_user_info_dc **interim_info,
+ const struct authn_audit_info **client_audit_info,
+ const struct authn_audit_info **server_audit_info,
bool *authoritative);
};
const struct auth_usersupplied_info *user_info;
struct auth_user_info_dc *user_info_dc;
struct auth_method_context *method;
+ const struct authn_audit_info *client_audit_info;
+ const struct authn_audit_info *server_audit_info;
uint8_t authoritative;
};
status = state->method->ops->check_password_recv(subreq, state,
&state->user_info_dc,
+ &state->client_audit_info,
+ &state->server_audit_info,
&authoritative);
TALLOC_FREE(subreq);
if (!authoritative ||
&state->auth_ctx->start_time,
state->user_info, status,
NULL, NULL, NULL,
- NULL /* client_audit_info */,
- NULL /* server_audit_info */);
+ state->client_audit_info,
+ state->server_audit_info);
tevent_req_received(req);
return status;
}
state->user_info_dc->info->domain_name,
state->user_info_dc->info->account_name,
&state->user_info_dc->sids[PRIMARY_USER_SID_INDEX].sid,
- NULL /* client_audit_info */,
- NULL /* server_audit_info */);
+ state->client_audit_info,
+ state->server_audit_info);
- /* Release our handle to state->user_info_dc. */
+ /*
+ * Release our handle to state->user_info_dc.
+ * state->{client,server}_audit_info, if non-NULL, becomes the new
+ * parent.
+ */
*user_info_dc = talloc_reparent(state, mem_ctx, state->user_info_dc);
state->user_info_dc = NULL;
struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct auth_user_info_dc **interim_info,
+ const struct authn_audit_info **client_audit_info,
+ const struct authn_audit_info **server_audit_info,
bool *authoritative)
{
struct anonymous_check_password_state *state = tevent_req_data(
req, struct anonymous_check_password_state);
NTSTATUS status;
+ *client_audit_info = NULL;
+ *server_audit_info = NULL;
+
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct auth_user_info_dc **interim_info,
+ const struct authn_audit_info **client_audit_info,
+ const struct authn_audit_info **server_audit_info,
bool *authoritative)
{
struct name_to_ntstatus_check_password_state *state = tevent_req_data(
NTSTATUS status;
*authoritative = state->authoritative;
+ *client_audit_info = NULL;
+ *server_audit_info = NULL;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct auth_user_info_dc **interim_info,
+ const struct authn_audit_info **client_audit_info,
+ const struct authn_audit_info **server_audit_info,
bool *authoritative)
{
struct authsam_check_password_state *state = tevent_req_data(
*authoritative = state->authoritative;
+ *client_audit_info = NULL;
+
+ *server_audit_info = NULL;
+
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
static NTSTATUS winbind_check_password_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct auth_user_info_dc **user_info_dc,
+ const struct authn_audit_info **client_audit_info,
+ const struct authn_audit_info **server_audit_info,
bool *pauthoritative)
{
struct winbind_check_password_state *state =
NTSTATUS status = NT_STATUS_OK;
*pauthoritative = state->authoritative;
+ *client_audit_info = NULL;
+ *server_audit_info = NULL;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);