From 4123d00ae71b0d7625fd7f6e17c584e3da11de05 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Thu, 10 Oct 2024 14:54:31 +0300 Subject: [PATCH] lib-storage: Drop username and domain %variable variants These can be produced with %{user | username} and %{user | domain}. --- src/lib-storage/mail-storage-service.c | 12 +----------- src/lib-storage/mail-storage-settings.c | 5 +++-- src/lib-storage/mail-user.c | 8 ++++---- src/lib-storage/mail-user.h | 2 +- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 84c137cd58..243968bab9 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -338,24 +338,18 @@ get_var_expand_table(struct master_service *service, struct mail_storage_service_user *user, const struct mail_storage_service_input *input) { - const char *username = t_strcut(input->username, '@'); - const char *domain = i_strchr_to_next(input->username, '@'); const char *local_name = NULL; const char *master_user; - const char *auth_user, *auth_username, *auth_domain; + const char *auth_user; if (user == NULL || user->auth_user == NULL) { auth_user = input->username; - auth_username = username; - auth_domain = domain; if (input->userdb_fields != NULL) master_user = get_master_user(input->userdb_fields); else master_user = NULL; } else { auth_user = user->auth_user; - auth_username = t_strcut(user->auth_user, '@'); - auth_domain = i_strchr_to_next(user->auth_user, '@'); local_name = user->local_name; master_user = user->master_user; } @@ -376,15 +370,11 @@ get_var_expand_table(struct master_service *service, const struct var_expand_table stack_tab[] = { { .key = "user", .value = input->username }, - { .key = "username", .value = username }, - { .key = "domain", .value = domain }, { .key = "service", .value = service_name }, { .key = "local_ip", .value = net_ip2addr(&input->local_ip) }, { .key = "remote_ip", .value = net_ip2addr(&input->remote_ip) }, { .key = "session", .value = input->session_id }, { .key = "auth_user", .value = auth_user }, - { .key = "auth_username", .value = auth_username }, - { .key = "auth_domain", .value = auth_domain }, { .key = "hostname", .value = hostname }, { .key = "local_name", .value = local_name }, { .key = "protocol", .value = protocol }, diff --git a/src/lib-storage/mail-storage-settings.c b/src/lib-storage/mail-storage-settings.c index 562f55133b..0a03635ba4 100644 --- a/src/lib-storage/mail-storage-settings.c +++ b/src/lib-storage/mail-storage-settings.c @@ -365,7 +365,7 @@ static const struct mail_user_settings mail_user_default_settings = { .mail_log_prefix = "%{service}(%{user})<%{process:pid}><%{session}>: ", .hostname = "", - .postmaster_address = "postmaster@%{domain|default(hostname)}", + .postmaster_address = "postmaster@%{user|domain|default(hostname)}", }; const struct setting_parser_info mail_user_setting_parser_info = { @@ -639,6 +639,7 @@ mail_storage_settings_ext_check(struct event *event ATTR_UNUSED, "guid", NULL }; + *error_r = NULL; for (; *pop3_uidl_vars != NULL; pop3_uidl_vars++) { if (!str_array_find(pop3_uidl_allowed_vars, *pop3_uidl_vars)) { *error_r = t_strdup_printf( @@ -651,7 +652,7 @@ mail_storage_settings_ext_check(struct event *event ATTR_UNUSED, var_expand_program_free(&prog); if (!uidl_format_ok) { - if (pop3_uidl_vars == NULL) + if (*error_r == NULL) *error_r = "pop3_uidl_format setting doesn't contain any " "%% variables."; return FALSE; diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 2dfb34f279..6f1c6e489a 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -333,7 +333,7 @@ mail_user_var_expand_params(struct mail_user *user) struct var_expand_params *params = p_new(user->pool, struct var_expand_params, 1); params->table = p_memdup(user->pool, stack_tab, sizeof(stack_tab)); - params->providers = mail_user_var_expand_func_table; + params->providers = mail_user_var_expand_providers; params->context = user; params->event = user->event; @@ -812,11 +812,11 @@ mail_user_get_dict_op_settings(struct mail_user *user) return user->dict_op_set; } -static const struct var_expand_provider mail_user_var_expand_func_table_arr[] = { +static const struct var_expand_provider mail_user_var_expand_providers_arr[] = { /* default to owner_home being the same as user's home - this is overridden by shared storage */ { "userdb", mail_user_var_expand_func_userdb }, { NULL, NULL } }; -const struct var_expand_provider *mail_user_var_expand_func_table = - mail_user_var_expand_func_table_arr; +const struct var_expand_provider *mail_user_var_expand_providers = + mail_user_var_expand_providers_arr; diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index e3577b8a2f..3f804b2a33 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -123,7 +123,7 @@ union mail_user_module_context { }; extern struct mail_user_module_register mail_user_module_register; extern struct auth_master_connection *mail_user_auth_master_conn; -extern const struct var_expand_provider *mail_user_var_expand_func_table; +extern const struct var_expand_provider *mail_user_var_expand_providers; struct mail_user * mail_user_alloc(struct mail_storage_service_user *service_user); -- 2.47.3