From: Timo Sirainen Date: Tue, 4 Aug 2020 11:23:18 +0000 (+0300) Subject: auth: auth_request_init_userdb_reply() - Add add_default_fields parameter X-Git-Tag: 2.3.13~316 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e04efc5cbfc65feb0dc667a7a41eafe85545a3fb;p=thirdparty%2Fdovecot%2Fcore.git auth: auth_request_init_userdb_reply() - Add add_default_fields parameter --- diff --git a/src/auth/auth-request-fields.c b/src/auth/auth-request-fields.c index e3a9519f39..5be1a1211d 100644 --- a/src/auth/auth-request-fields.c +++ b/src/auth/auth-request-fields.c @@ -444,14 +444,17 @@ void auth_request_set_password_verified(struct auth_request *request) request->fields.skip_password_check = TRUE; } -void auth_request_init_userdb_reply(struct auth_request *request) +void auth_request_init_userdb_reply(struct auth_request *request, + bool add_default_fields) { const char *error; request->fields.userdb_reply = auth_fields_init(request->pool); - if (userdb_template_export(request->userdb->default_fields_tmpl, - request, &error) < 0) { - e_error(authdb_event(request), - "Failed to expand default_fields: %s", error); + if (add_default_fields) { + if (userdb_template_export(request->userdb->default_fields_tmpl, + request, &error) < 0) { + e_error(authdb_event(request), + "Failed to expand default_fields: %s", error); + } } } diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index a0518ce5e4..755def330e 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -1571,7 +1571,7 @@ void auth_request_lookup_user(struct auth_request *request, request->userdb_lookup = TRUE; request->userdb_result_from_cache = FALSE; if (request->fields.userdb_reply == NULL) - auth_request_init_userdb_reply(request); + auth_request_init_userdb_reply(request, TRUE); else { /* we still want to set default_fields. these override any existing fields set by previous userdbs (because if that is @@ -1833,7 +1833,7 @@ void auth_request_set_field(struct auth_request *request, /* for prefetch userdb */ request->userdb_prefetch_set = TRUE; if (request->fields.userdb_reply == NULL) - auth_request_init_userdb_reply(request); + auth_request_init_userdb_reply(request, TRUE); if (strcmp(name, "userdb_userdb_import") == 0) { /* we can't put the whole userdb_userdb_import value to extra_cache_fields or it doesn't work diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 94caecf6c6..0bac4beafd 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -260,7 +260,8 @@ void auth_request_set_fields(struct auth_request *request, const char *const *fields, const char *default_scheme) ATTR_NULL(3); -void auth_request_init_userdb_reply(struct auth_request *request); +void auth_request_init_userdb_reply(struct auth_request *request, + bool add_default_fields); void auth_request_set_userdb_field(struct auth_request *request, const char *name, const char *value); void auth_request_set_userdb_field_values(struct auth_request *request, diff --git a/src/auth/auth-worker-client.c b/src/auth/auth-worker-client.c index 30e058793b..af7cddf46d 100644 --- a/src/auth/auth-worker-client.c +++ b/src/auth/auth-worker-client.c @@ -549,7 +549,7 @@ auth_worker_handle_user(struct auth_worker_command *cmd, } if (auth_request->fields.userdb_reply == NULL) - auth_request_init_userdb_reply(auth_request); + auth_request_init_userdb_reply(auth_request, TRUE); auth_request_userdb_lookup_begin(auth_request); auth_request->userdb->userdb->iface-> lookup(auth_request, lookup_user_callback);