From: Timo Sirainen Date: Tue, 4 Aug 2020 09:32:27 +0000 (+0300) Subject: auth: Add and use auth_request_set_auth_successful() X-Git-Tag: 2.3.13~319 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4dc7edd9115ce3512634a99c2fc9af9a80822594;p=thirdparty%2Fdovecot%2Fcore.git auth: Add and use auth_request_set_auth_successful() --- diff --git a/src/auth/auth-request-fields.c b/src/auth/auth-request-fields.c index d4cff16412..cd64098091 100644 --- a/src/auth/auth-request-fields.c +++ b/src/auth/auth-request-fields.c @@ -230,7 +230,7 @@ bool auth_request_import(struct auth_request *request, else if (strcmp(key, "requested-login-user") == 0) fields->requested_login_user = p_strdup(request->pool, value); else if (strcmp(key, "successful") == 0) - fields->successful = TRUE; + auth_request_set_auth_successful(request); else if (strcmp(key, "skip-password-check") == 0) fields->skip_password_check = TRUE; else if (strcmp(key, "delayed-credentials") == 0) { @@ -432,3 +432,8 @@ void auth_request_set_realm(struct auth_request *request, const char *realm) request->fields.realm = p_strdup(request->pool, realm); } + +void auth_request_set_auth_successful(struct auth_request *request) +{ + request->fields.successful = TRUE; +} diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 90c645a6a9..27eae077c4 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -279,7 +279,7 @@ void auth_request_success_continue(struct auth_policy_check_ctx *ctx) auth_request_fail(request); return; } - request->fields.successful = TRUE; + auth_request_set_auth_successful(request); /* log before delay */ auth_request_log_finished(request); diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 5666daeab5..af682a6e9a 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -65,6 +65,9 @@ struct auth_request_fields { enum auth_request_secured secured; + /* Authentication was successfully finished, including policy checks + and such. There may still be some final delay or final SASL + response. */ bool successful:1; bool skip_password_check:1; @@ -237,6 +240,8 @@ bool auth_request_set_login_username(struct auth_request *request, const char *username, const char **error_r); void auth_request_set_realm(struct auth_request *request, const char *realm); +/* Request was fully successfully authenticated, including policy checks etc. */ +void auth_request_set_auth_successful(struct auth_request *request); void auth_request_set_field(struct auth_request *request, const char *name, const char *value,