]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Add and use auth_request_set_auth_successful()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 4 Aug 2020 09:32:27 +0000 (12:32 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 27 Aug 2020 06:20:17 +0000 (06:20 +0000)
src/auth/auth-request-fields.c
src/auth/auth-request.c
src/auth/auth-request.h

index d4cff164126d71b1ab82d480c98d22acb10fe395..cd6409809161fabb07dca44aca6a51d281525389 100644 (file)
@@ -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;
+}
index 90c645a6a93ccab68c4a11510e31afa29c78b9f1..27eae077c493f2f96df927c31a81c1d03999d58e 100644 (file)
@@ -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);
index 5666daeab5f7414034233776bb73b943cf1f4a66..af682a6e9a06c6e4f43e8adb7bd140a175bdaa3a 100644 (file)
@@ -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,