]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-auth-client: Add log_error parameter to auth_request_callback_t
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 9 Mar 2026 22:42:05 +0000 (00:42 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 12 Mar 2026 14:59:51 +0000 (14:59 +0000)
src/auth/test-auth-client.c
src/doveadm/doveadm-auth.c
src/lib-auth-client/auth-client-request.c
src/lib-auth-client/auth-client.h
src/lib-auth-client/test-auth-client.c
src/login-common/client-common-auth.c
src/login-common/sasl-server.c

index 6b2b5cad9c307c5f006ffc02222dc97c3515c1d0..c6d2cd9d0fc2d8d7118099751a931a0b4915daa7 100644 (file)
@@ -19,7 +19,8 @@ static void auth_client_connected(int *server_fd)
 
 static void
 test_callback(struct auth_client_request *req, enum auth_request_status status,
-             const char *b64, const char *const *args, void *context)
+             const char *log_error ATTR_UNUSED, const char *b64,
+             const char *const *args, void *context)
 {
        struct auth_client *client ATTR_UNUSED = context;
        if (status == AUTH_REQUEST_STATUS_CONTINUE) {
index c88029fcf1ee673dcd5d251bf3762ed52d2e76e4..3400d7b4ade98c9b80366aa6b415f47fec530a10 100644 (file)
@@ -158,8 +158,8 @@ cmd_user_input(struct auth_master_connection *conn,
 
 static void
 auth_callback(struct auth_client_request *request,
-             enum auth_request_status status, const char *data_base64,
-             const char *const *args, void *context)
+             enum auth_request_status status, const char *log_error ATTR_UNUSED,
+             const char *data_base64, const char *const *args, void *context)
 {
        struct authtest_input *input = context;
        const unsigned char *sasl_output;
index 9533ee1d231dafe318f142460aad9727dee5b77e..6b82931c3679af6ee8276e93c3e02a806619968d 100644 (file)
@@ -256,7 +256,7 @@ call_callback(struct auth_client_request *request,
                if (args == NULL && status != AUTH_REQUEST_STATUS_OK)
                        args = temp_failure_args;
        }
-       callback(request, status, data_base64, args, request->context);
+       callback(request, status, "Authentication failure", data_base64, args, request->context);
 }
 
 static void
index cce56c3b75f354ddcdce81913736772d1387f56d..0f908d2a20abdf6ef0a34efa451e106127de5ad6 100644 (file)
@@ -79,9 +79,12 @@ struct auth_request_info {
 
 /* Continue/finish authentication. data_base64 is set for
    AUTH_REQUEST_STATUS_CONTINUE and perhaps AUTH_REQUEST_STATUS_OK.
-   args is set for all statuses except AUTH_REQUEST_STATUS_CONTINUE. */
+   args is set for all statuses except AUTH_REQUEST_STATUS_CONTINUE.
+   log_error contains an error that can be logged as the reason why
+   authentication failed. */
 typedef void auth_request_callback_t(struct auth_client_request *request,
                                     enum auth_request_status status,
+                                    const char *log_error,
                                     const char *data_base64,
                                     const char *const *args, void *context);
 
index 277d451fd669432695b28c083672ef2a487ec765..0cae9cf4959ecf36f692147f425cdb46b1b00c9e 100644 (file)
@@ -867,6 +867,7 @@ struct login_test {
 static void
 test_client_auth_callback(struct auth_client_request *request,
                          enum auth_request_status status,
+                         const char *log_error ATTR_UNUSED,
                          const char *data_base64 ATTR_UNUSED,
                          const char *const *args ATTR_UNUSED, void *context)
 {
index 7815e687f5c3c3ebc3a6ee8a6d07aabafa8432af..d3623a99416a2f716bfde52a32b50c1cfd4b67a0 100644 (file)
@@ -389,6 +389,7 @@ static void proxy_reset(struct client *client)
 static void
 proxy_redirect_reauth_callback(struct auth_client_request *request,
                               enum auth_request_status status,
+                              const char *log_error ATTR_UNUSED,
                               const char *data_base64 ATTR_UNUSED,
                               const char *const *args, void *context)
 {
index 9277c7d7f5e069b9a125f97a46007daca3d5f5ac..55e9042fbc5610c7ad6db8d2039a077e5aa52a3e 100644 (file)
@@ -377,7 +377,9 @@ sasl_server_auth_success_finish(struct client *client, bool nologin,
 
 static void
 authenticate_callback(struct auth_client_request *request,
-                     enum auth_request_status status, const char *data_base64,
+                     enum auth_request_status status,
+                     const char *log_error ATTR_UNUSED,
+                     const char *data_base64,
                      const char *const *args, void *context)
 {
        struct client *client = context;