From: Stephan Bosch Date: Sat, 4 Mar 2023 03:32:42 +0000 (+0100) Subject: auth: sasl-server - Add sasl_server_request_internal_failure() X-Git-Tag: 2.4.2~272 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf4d8dd8dc011598ed4e18717f45d203ab6af3ed;p=thirdparty%2Fdovecot%2Fcore.git auth: sasl-server - Add sasl_server_request_internal_failure() Wraps auth_request_internal_failure(). --- diff --git a/src/auth/auth-sasl-mech-apop.c b/src/auth/auth-sasl-mech-apop.c index f3dd6f6f50..75b3772078 100644 --- a/src/auth/auth-sasl-mech-apop.c +++ b/src/auth/auth-sasl-mech-apop.c @@ -58,7 +58,7 @@ apop_credentials_callback(enum passdb_result result, sasl_server_request_failure(auth_request); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); break; default: sasl_server_request_failure(auth_request); diff --git a/src/auth/sasl-server-mech-cram-md5.c b/src/auth/sasl-server-mech-cram-md5.c index 143f11af34..7f54695ea1 100644 --- a/src/auth/sasl-server-mech-cram-md5.c +++ b/src/auth/sasl-server-mech-cram-md5.c @@ -119,7 +119,7 @@ credentials_callback(enum passdb_result result, verify_credentials(auth_request, credentials, size); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); break; default: sasl_server_request_failure(auth_request); diff --git a/src/auth/sasl-server-mech-digest-md5.c b/src/auth/sasl-server-mech-digest-md5.c index c4bad4d104..038c93063d 100644 --- a/src/auth/sasl-server-mech-digest-md5.c +++ b/src/auth/sasl-server-mech-digest-md5.c @@ -538,7 +538,7 @@ credentials_callback(enum passdb_result result, verify_credentials(auth_request, credentials, size); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); break; default: sasl_server_request_failure(auth_request); diff --git a/src/auth/sasl-server-mech-gssapi.c b/src/auth/sasl-server-mech-gssapi.c index 7d022243aa..ddd63c30e5 100644 --- a/src/auth/sasl-server-mech-gssapi.c +++ b/src/auth/sasl-server-mech-gssapi.c @@ -508,12 +508,12 @@ gssapi_credentials_callback(enum passdb_result result, now the k5principals field will have been filled in. */ switch (result) { case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); return; case PASSDB_RESULT_USER_DISABLED: case PASSDB_RESULT_PASS_EXPIRED: /* User is explicitly disabled, don't allow it to log in */ - auth_request_fail(auth_request); + sasl_server_request_failure(auth_request); return; case PASSDB_RESULT_NEXT: case PASSDB_RESULT_SCHEME_NOT_AVAILABLE: @@ -526,7 +526,7 @@ gssapi_credentials_callback(enum passdb_result result, if (mech_gssapi_userok(request, auth_request->fields.user) == 0) sasl_server_request_success(auth_request, NULL, 0); else - auth_request_fail(auth_request); + sasl_server_request_failure(auth_request); } static int @@ -635,7 +635,7 @@ mech_gssapi_auth_continue(struct auth_request *auth_request, i_unreached(); } if (ret < 0) - auth_request_fail(auth_request); + sasl_server_request_failure(auth_request); } static void @@ -651,7 +651,7 @@ mech_gssapi_auth_initial(struct auth_request *auth_request, obtain_service_credentials(request, &request->service_cred); if (GSS_ERROR(major_status) != 0) { - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); return; } request->authn_name = GSS_C_NO_NAME; diff --git a/src/auth/sasl-server-mech-oauth2.c b/src/auth/sasl-server-mech-oauth2.c index 5cd53c979b..8fad0aef6e 100644 --- a/src/auth/sasl-server-mech-oauth2.c +++ b/src/auth/sasl-server-mech-oauth2.c @@ -33,7 +33,7 @@ oauth2_fail(struct oauth2_auth_request *oauth2_req, struct auth_request *request = &oauth2_req->request; if (failure == NULL) { - auth_request_internal_failure(request); + sasl_server_request_internal_failure(request); return; } diff --git a/src/auth/sasl-server-mech-otp.c b/src/auth/sasl-server-mech-otp.c index e7a45a390a..7804f01711 100644 --- a/src/auth/sasl-server-mech-otp.c +++ b/src/auth/sasl-server-mech-otp.c @@ -122,7 +122,7 @@ otp_credentials_callback(enum passdb_result result, otp_send_challenge(request, credentials, size); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); break; default: sasl_server_request_failure(auth_request); @@ -176,7 +176,7 @@ otp_set_credentials_callback(bool success, struct auth_request *auth_request) if (success) sasl_server_request_success(auth_request, "", 0); else { - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); otp_unlock(request); } diff --git a/src/auth/sasl-server-mech-plain-common.c b/src/auth/sasl-server-mech-plain-common.c index ce7b82524c..e18981aaad 100644 --- a/src/auth/sasl-server-mech-plain-common.c +++ b/src/auth/sasl-server-mech-plain-common.c @@ -13,7 +13,7 @@ void sasl_server_mech_plain_verify_callback(enum passdb_result result, sasl_server_request_success(request, "", 0); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(request); + sasl_server_request_internal_failure(request); break; default: sasl_server_request_failure(request); diff --git a/src/auth/sasl-server-mech-scram.c b/src/auth/sasl-server-mech-scram.c index ad8525c970..e1f31c1435 100644 --- a/src/auth/sasl-server-mech-scram.c +++ b/src/auth/sasl-server-mech-scram.c @@ -52,7 +52,7 @@ credentials_callback(enum passdb_result result, sasl_server_request_output(auth_request, output, output_len); break; case PASSDB_RESULT_INTERNAL_FAILURE: - auth_request_internal_failure(auth_request); + sasl_server_request_internal_failure(auth_request); break; default: sasl_server_request_failure(auth_request); diff --git a/src/auth/sasl-server-protected.h b/src/auth/sasl-server-protected.h index 96e6b56033..4bfbf5dbe7 100644 --- a/src/auth/sasl-server-protected.h +++ b/src/auth/sasl-server-protected.h @@ -74,5 +74,6 @@ void sasl_server_request_success(struct auth_request *request, void sasl_server_request_failure_with_reply(struct auth_request *request, const void *data, size_t data_size); void sasl_server_request_failure(struct auth_request *request); +void sasl_server_request_internal_failure(struct auth_request *request); #endif diff --git a/src/auth/sasl-server-request.c b/src/auth/sasl-server-request.c index b989717926..222cc85690 100644 --- a/src/auth/sasl-server-request.c +++ b/src/auth/sasl-server-request.c @@ -31,18 +31,35 @@ void sasl_server_request_success(struct auth_request *request, auth_sasl_request_output(request, &output); } -void sasl_server_request_failure_with_reply(struct auth_request *request, - const void *data, size_t data_size) +static void +sasl_server_request_failure_common(struct auth_request *request, + enum sasl_server_output_status status, + const void *data, size_t data_size) { const struct sasl_server_output output = { - .status = SASL_SERVER_OUTPUT_FAILURE, + .status = status, .data = data, .data_size = data_size, }; auth_sasl_request_output(request, &output); } +void sasl_server_request_failure_with_reply(struct auth_request *request, + const void *data, size_t data_size) +{ + sasl_server_request_failure_common(request, SASL_SERVER_OUTPUT_FAILURE, + data, data_size); +} + void sasl_server_request_failure(struct auth_request *request) { - sasl_server_request_failure_with_reply(request, "", 0); + sasl_server_request_failure_common(request, SASL_SERVER_OUTPUT_FAILURE, + "", 0); +} + +void sasl_server_request_internal_failure(struct auth_request *request) +{ + sasl_server_request_failure_common(request, + SASL_SERVER_OUTPUT_INTERNAL_FAILURE, + "", 0); }