From: Timo Sirainen Date: Mon, 9 Mar 2026 22:42:05 +0000 (+0200) Subject: lib-auth-client: Add log_error parameter to auth_request_callback_t X-Git-Tag: 2.4.3~83 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0ca2fe52d775fd3b2aa0aa3faf589ab250c5cc98;p=thirdparty%2Fdovecot%2Fcore.git lib-auth-client: Add log_error parameter to auth_request_callback_t --- diff --git a/src/auth/test-auth-client.c b/src/auth/test-auth-client.c index 6b2b5cad9c..c6d2cd9d0f 100644 --- a/src/auth/test-auth-client.c +++ b/src/auth/test-auth-client.c @@ -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) { diff --git a/src/doveadm/doveadm-auth.c b/src/doveadm/doveadm-auth.c index c88029fcf1..3400d7b4ad 100644 --- a/src/doveadm/doveadm-auth.c +++ b/src/doveadm/doveadm-auth.c @@ -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; diff --git a/src/lib-auth-client/auth-client-request.c b/src/lib-auth-client/auth-client-request.c index 9533ee1d23..6b82931c36 100644 --- a/src/lib-auth-client/auth-client-request.c +++ b/src/lib-auth-client/auth-client-request.c @@ -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 diff --git a/src/lib-auth-client/auth-client.h b/src/lib-auth-client/auth-client.h index cce56c3b75..0f908d2a20 100644 --- a/src/lib-auth-client/auth-client.h +++ b/src/lib-auth-client/auth-client.h @@ -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); diff --git a/src/lib-auth-client/test-auth-client.c b/src/lib-auth-client/test-auth-client.c index 277d451fd6..0cae9cf495 100644 --- a/src/lib-auth-client/test-auth-client.c +++ b/src/lib-auth-client/test-auth-client.c @@ -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) { diff --git a/src/login-common/client-common-auth.c b/src/login-common/client-common-auth.c index 7815e687f5..d3623a9941 100644 --- a/src/login-common/client-common-auth.c +++ b/src/login-common/client-common-auth.c @@ -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) { diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 9277c7d7f5..55e9042fbc 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -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;