From: Stephan Bosch Date: Mon, 6 Mar 2023 02:39:52 +0000 (+0100) Subject: auth: sasl-server - Add sasl_server_request_get_extra_field() X-Git-Tag: 2.4.2~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab7b329878b9db5e7b368b0da592d70ce179e5a8;p=thirdparty%2Fdovecot%2Fcore.git auth: sasl-server - Add sasl_server_request_get_extra_field() --- diff --git a/src/auth/sasl-server-mech-gssapi.c b/src/auth/sasl-server-mech-gssapi.c index f045aee829..fa27a16263 100644 --- a/src/auth/sasl-server-mech-gssapi.c +++ b/src/auth/sasl-server-mech-gssapi.c @@ -387,9 +387,8 @@ k5_principal_is_authorized(struct gssapi_auth_request *request, const char *name struct auth_request *auth_request = &request->auth_request; const char *value, *const *authorized_names, *const *tmp; - value = auth_fields_find(auth_request->fields.extra_fields, - "k5principals"); - if (value == NULL) + if (!sasl_server_request_get_extra_field(auth_request, "k5principals", + &value)) return FALSE; authorized_names = t_strsplit_spaces(value, ","); diff --git a/src/auth/sasl-server-protected.h b/src/auth/sasl-server-protected.h index b2f4902c1a..294496669e 100644 --- a/src/auth/sasl-server-protected.h +++ b/src/auth/sasl-server-protected.h @@ -75,6 +75,10 @@ bool sasl_server_request_set_authzid(struct auth_request *request, void sasl_server_request_set_realm(struct auth_request *request, const char *realm); +bool sasl_server_request_get_extra_field(struct auth_request *request, + const char *name, + const char **field_r); + void sasl_server_request_output(struct auth_request *request, const void *data, size_t data_size); void sasl_server_request_success(struct auth_request *request, diff --git a/src/auth/sasl-server-request.c b/src/auth/sasl-server-request.c index 35fcdad6c2..ccf28e9092 100644 --- a/src/auth/sasl-server-request.c +++ b/src/auth/sasl-server-request.c @@ -28,6 +28,13 @@ void sasl_server_request_set_realm(struct auth_request *request, auth_sasl_request_set_realm(request, realm); } +bool sasl_server_request_get_extra_field(struct auth_request *request, + const char *name, + const char **field_r) +{ + return auth_sasl_request_get_extra_field(request, name, field_r); +} + void sasl_server_request_output(struct auth_request *request, const void *data, size_t data_size) {