From: Timo Sirainen Date: Wed, 16 Nov 2022 23:03:28 +0000 (+0200) Subject: lib-storage: Set mail_user.unexpanded_set via unexpanded_set_parser X-Git-Tag: 2.4.0~3337 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d3edb3e1af1becb8226cd556e3336e69b66bd4d;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Set mail_user.unexpanded_set via unexpanded_set_parser There is no need for mail_user_alloc*() to have a settings parameter. --- diff --git a/src/lda/main.c b/src/lda/main.c index 5e76acc5d4..450b7876bc 100644 --- a/src/lda/main.c +++ b/src/lda/main.c @@ -150,15 +150,11 @@ lda_raw_mail_open(struct mail_deliver_input *dinput, const char *path) struct mailbox_header_lookup_ctx *headers_ctx; const struct smtp_address *mail_from; struct istream *input; - const struct mail_user_settings *user_set; time_t mtime; int ret; - user_set = settings_parser_get_root_set(dinput->rcpt_user->unexpanded_set_parser, - &mail_user_setting_parser_info); - raw_mail_user = raw_storage_create_from_set(dinput->rcpt_user->set_parser, - dinput->rcpt_user->set_info, - user_set); + raw_mail_user = raw_storage_create_from_set(dinput->rcpt_user->unexpanded_set_parser, + dinput->rcpt_user->set_info); mail_from = (dinput->mail_from != NULL ? dinput->mail_from : &default_envelope_sender); diff --git a/src/lib-storage/index/raw/raw-storage.c b/src/lib-storage/index/raw/raw-storage.c index 085990cdcd..6f80209d56 100644 --- a/src/lib-storage/index/raw/raw-storage.c +++ b/src/lib-storage/index/raw/raw-storage.c @@ -14,8 +14,7 @@ extern struct mailbox raw_mailbox; struct mail_user * raw_storage_create_from_set(const struct setting_parser_context *unexpanded_set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set) + const struct setting_parser_info *set_info) { struct mail_user *user; struct mail_namespace *ns; @@ -28,7 +27,7 @@ raw_storage_create_from_set(const struct setting_parser_context *unexpanded_set_ /* Don't include raw user's events in statistics or anything else. They would just cause confusion. */ event_disable_callbacks(event); - user = mail_user_alloc(event, "raw mail user", unexpanded_set_parser, set_info, set); + user = mail_user_alloc(event, "raw mail user", unexpanded_set_parser, set_info); event_unref(&event); user->autocreated = TRUE; diff --git a/src/lib-storage/index/raw/raw-storage.h b/src/lib-storage/index/raw/raw-storage.h index 4591dadcfd..90f3c59284 100644 --- a/src/lib-storage/index/raw/raw-storage.h +++ b/src/lib-storage/index/raw/raw-storage.h @@ -31,8 +31,7 @@ extern struct mail_vfuncs raw_mail_vfuncs; struct mail_user * raw_storage_create_from_set(const struct setting_parser_context *unexpanded_set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set); + const struct setting_parser_info *set_info); int raw_mailbox_alloc_stream(struct mail_user *user, struct istream *input, time_t received_time, const char *envelope_sender, diff --git a/src/lib-storage/index/shared/shared-storage.c b/src/lib-storage/index/shared/shared-storage.c index 56923d8b70..e7153fa2d4 100644 --- a/src/lib-storage/index/shared/shared-storage.c +++ b/src/lib-storage/index/shared/shared-storage.c @@ -249,8 +249,7 @@ int shared_storage_get_namespace(struct mail_namespace **_ns, } owner = mail_user_alloc(event_get_parent(user->event), userdomain, - user->unexpanded_set_parser, user->set_info, - user->unexpanded_set); + user->unexpanded_set_parser, user->set_info); owner->_service_user = user->_service_user; mail_storage_service_user_ref(owner->_service_user); owner->creator = user; diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index e3691188cf..661015a13c 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -686,8 +686,7 @@ mail_storage_service_init_post(struct mail_storage_service_ctx *ctx, /* NOTE: if more user initialization is added, add it also to mail_user_dup() */ mail_user = mail_user_alloc_nodup_set(user->event, user->input.username, - user->set_parser, user->user_info, - user->user_set); + user->set_parser, user->user_info); mail_user->_service_user = user; mail_storage_service_user_ref(user); mail_user_set_home(mail_user, *home == '\0' ? NULL : home); diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 766e63efb4..a355b8f0b9 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -53,7 +53,7 @@ mail_user_alloc_int(struct event *parent_event, const char *username, const struct setting_parser_context *unexpanded_set_parser, const struct setting_parser_info *set_info, - const struct mail_user_settings *set, pool_t pool) + pool_t pool) { struct mail_user *user; const char *error; @@ -68,7 +68,9 @@ mail_user_alloc_int(struct event *parent_event, user->unexpanded_set_parser = unexpanded_set_parser; user->set_parser = settings_parser_dup(unexpanded_set_parser, pool); user->set_info = set_info; - user->unexpanded_set = set; + user->unexpanded_set = + settings_parser_get_root_set(unexpanded_set_parser, + &mail_user_setting_parser_info); user->set = settings_parser_get_root_set(user->set_parser, &mail_user_setting_parser_info); user->service = master_service_get_name(master_service); @@ -93,29 +95,26 @@ struct mail_user * mail_user_alloc_nodup_set(struct event *parent_event, const char *username, const struct setting_parser_context *unexpanded_set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set) + const struct setting_parser_info *set_info) { pool_t pool; pool = pool_alloconly_create(MEMPOOL_GROWING"mail user", 16*1024); return mail_user_alloc_int(parent_event, username, - unexpanded_set_parser, set_info, set, pool); + unexpanded_set_parser, set_info, pool); } struct mail_user *mail_user_alloc(struct event *parent_event, const char *username, const struct setting_parser_context *unexpanded_set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set) + const struct setting_parser_info *set_info) { pool_t pool; pool = pool_alloconly_create(MEMPOOL_GROWING"mail user", 16*1024); return mail_user_alloc_int(parent_event, username, settings_parser_dup(unexpanded_set_parser, pool), - set_info, - settings_dup(set_info, set, pool), pool); + set_info, pool); } static void @@ -756,8 +755,7 @@ struct mail_user *mail_user_dup(struct mail_user *user) struct mail_user *user2; user2 = mail_user_alloc(event_get_parent(user->event), user->username, - user->unexpanded_set_parser, user->set_info, - user->unexpanded_set); + user->unexpanded_set_parser, user->set_info); if (user2->_service_user != NULL) { user2->_service_user = user->_service_user; mail_storage_service_user_ref(user2->_service_user); diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index 15cf198c54..36d6157932 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -131,14 +131,12 @@ extern const struct var_expand_func_table *mail_user_var_expand_func_table; struct mail_user *mail_user_alloc(struct event *parent_event, const char *username, const struct setting_parser_context *unexpanded_set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set); + const struct setting_parser_info *set_info); struct mail_user * mail_user_alloc_nodup_set(struct event *parent_event, const char *username, const struct setting_parser_context *set_parser, - const struct setting_parser_info *set_info, - const struct mail_user_settings *set); + const struct setting_parser_info *set_info); /* Returns -1 if settings were invalid. */ int mail_user_init(struct mail_user *user, const char **error_r); diff --git a/src/lmtp/lmtp-client.c b/src/lmtp/lmtp-client.c index 0030c6f869..de982af885 100644 --- a/src/lmtp/lmtp-client.c +++ b/src/lmtp/lmtp-client.c @@ -101,13 +101,9 @@ static void client_raw_user_create(struct client *client, const struct setting_parser_context *set_parser) { - const struct mail_user_settings *user_set; - - user_set = settings_parser_get_root_set(client->set_parser, - &mail_user_setting_parser_info); client->raw_mail_user = raw_storage_create_from_set(set_parser, - client->user_set_info, user_set); + client->user_set_info); } static void client_read_settings(struct client *client, bool ssl)