]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Remove mail_user.unexpanded_set_parser and related code
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 12 Jan 2023 22:05:30 +0000 (00:05 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Nov 2023 12:20:16 +0000 (14:20 +0200)
Use mail_storage_service_user.set_parser instead.

src/lda/main.c
src/lib-storage/index/shared/shared-storage.c
src/lib-storage/mail-storage-service.c
src/lib-storage/mail-user.c
src/lib-storage/mail-user.h

index 0a3f370c463ce4956ab2171691017163c536a0bc..a25058fe2ba7acc87d2919c71bd43f0d82155e39 100644 (file)
@@ -155,8 +155,9 @@ lda_raw_mail_open(struct mail_deliver_input *dinput, const char *path)
 
        struct mail_storage_service_ctx *storage_service =
                mail_storage_service_user_get_service_ctx(dinput->rcpt_user->service_user);
-       raw_mail_user = raw_storage_create_from_set(storage_service,
-                               dinput->rcpt_user->unexpanded_set_parser);
+       struct setting_parser_context *set_parser =
+               mail_storage_service_user_get_settings_parser(dinput->rcpt_user->service_user);
+       raw_mail_user = raw_storage_create_from_set(storage_service, set_parser);
 
        mail_from = (dinput->mail_from != NULL ?
                     dinput->mail_from : &default_envelope_sender);
index 3e0337d5651e9d1f636e7f1476d0746587aa63d5..a31086667694c2e6bea0bd55d2fe0cd3370f5f4c 100644 (file)
@@ -258,10 +258,12 @@ int shared_storage_get_namespace(struct mail_namespace **_ns,
                mail_storage_service_user_get_service_ctx(user->service_user);
        struct event *service_user_event =
                mail_storage_service_user_get_event(user->service_user);
+       struct setting_parser_context *service_user_set_parser =
+               mail_storage_service_user_get_settings_parser(user->service_user);
        const struct mail_storage_service_input input = {
                .event_parent = event_get_parent(service_user_event),
                .username = userdomain,
-               .unexpanded_set_parser = user->unexpanded_set_parser,
+               .unexpanded_set_parser = service_user_set_parser,
                .session_id = user->session_id,
                .autocreated = TRUE,
                .no_userdb_lookup = TRUE,
index 8beed2cb8638ef82a834904d1ccd56e9e76c5dfd..4db2db7181e3a91ea4a1c61a57f3bc50f1845ec8 100644 (file)
@@ -673,7 +673,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, user->set_parser);
+       mail_user = mail_user_alloc(user);
        *mail_user_r = mail_user;
        if (user->input.autocreated)
                mail_user->autocreated = TRUE;
index 751cf92ba77228d694a3e130ab1da62ad18e28ae..25db99c5f83fa9c30af3b040e704db6ab7a8a7d6 100644 (file)
@@ -61,29 +61,28 @@ void mail_user_add_event_fields(struct mail_user *user)
        }
 }
 
-static struct mail_user *
-mail_user_alloc_int(struct mail_storage_service_user *service_user,
-                   struct setting_parser_context *unexpanded_set_parser,
-                   pool_t pool)
+struct mail_user *
+mail_user_alloc(struct mail_storage_service_user *service_user)
 {
        struct mail_user *user;
        struct event *parent_event =
                mail_storage_service_user_get_event(service_user);
        const char *username =
                mail_storage_service_user_get_username(service_user);
+       struct setting_parser_context *service_user_set_parser =
+               mail_storage_service_user_get_settings_parser(service_user);
        i_assert(*username != '\0');
 
+       pool_t pool = pool_alloconly_create(MEMPOOL_GROWING"mail user", 16*1024);
        user = p_new(pool, struct mail_user, 1);
        user->pool = pool;
        user->refcount = 1;
        user->service_user = service_user;
        mail_storage_service_user_ref(service_user);
        user->username = p_strdup(pool, username);
-       user->unexpanded_set_parser = unexpanded_set_parser;
-       settings_parser_ref(user->unexpanded_set_parser);
-       user->set_parser = settings_parser_dup(unexpanded_set_parser, pool);
+       user->set_parser = settings_parser_dup(service_user_set_parser, pool);
        user->unexpanded_set =
-               settings_parser_get_root_set(unexpanded_set_parser,
+               settings_parser_get_root_set(service_user_set_parser,
                                             &mail_user_setting_parser_info);
        user->set = settings_parser_get_root_set(user->set_parser,
                                                 &mail_user_setting_parser_info);
@@ -100,30 +99,6 @@ mail_user_alloc_int(struct mail_storage_service_user *service_user,
        return user;
 }
 
-struct mail_user *
-mail_user_alloc_nodup_set(struct mail_storage_service_user *service_user,
-                         struct setting_parser_context *unexpanded_set_parser)
-{
-       pool_t pool;
-
-       pool = pool_alloconly_create(MEMPOOL_GROWING"mail user", 16*1024);
-       return mail_user_alloc_int(service_user, unexpanded_set_parser, pool);
-}
-
-struct mail_user *mail_user_alloc(struct mail_storage_service_user *service_user,
-                                 struct setting_parser_context *unexpanded_set_parser)
-{
-       pool_t pool;
-
-       pool = pool_alloconly_create(MEMPOOL_GROWING"mail user", 16*1024);
-       struct setting_parser_context *set_parser =
-               settings_parser_dup(unexpanded_set_parser, pool);
-       struct mail_user *user =
-               mail_user_alloc_int(service_user, set_parser, pool);
-       settings_parser_unref(&set_parser);
-       return user;
-}
-
 static void
 mail_user_expand_plugins_envs(struct mail_user *user)
 {
@@ -278,7 +253,6 @@ void mail_user_unref(struct mail_user **_user)
                user->v.deinit(user);
        } T_END;
        settings_parser_unref(&user->set_parser);
-       settings_parser_unref(&user->unexpanded_set_parser);
        event_unref(&user->event);
        i_assert(user->refcount == 1);
        pool_unref(&user->pool);
@@ -780,8 +754,7 @@ struct mail_user *mail_user_dup(struct mail_user *user)
 {
        struct mail_user *user2;
 
-       user2 = mail_user_alloc(user->service_user,
-                               user->unexpanded_set_parser);
+       user2 = mail_user_alloc(user->service_user);
        if (user->_home != NULL)
                mail_user_set_home(user2, user->_home);
        mail_user_set_vars(user2, user->service, &user->conn);
index cd7e03ded227c240bfd2d4bb68a78d34d8eb5590..261ee47197ceb2c7f61aa1c2737d3df6cd8cc0ee 100644 (file)
@@ -57,7 +57,6 @@ struct mail_user {
           This could be set by plugins that need to fail the initialization. */
        const char *error;
 
-       struct setting_parser_context *unexpanded_set_parser;
        struct setting_parser_context *set_parser;
        const struct mail_user_settings *unexpanded_set;
        struct mail_user_settings *set;
@@ -126,11 +125,7 @@ extern struct auth_master_connection *mail_user_auth_master_conn;
 extern const struct var_expand_func_table *mail_user_var_expand_func_table;
 
 struct mail_user *
-mail_user_alloc(struct mail_storage_service_user *service_user,
-               struct setting_parser_context *unexpanded_set_parser);
-struct mail_user *
-mail_user_alloc_nodup_set(struct mail_storage_service_user *service_user,
-                         struct setting_parser_context *set_parser);
+mail_user_alloc(struct mail_storage_service_user *service_user);
 /* Returns -1 if settings were invalid. */
 int mail_user_init(struct mail_user *user, const char **error_r);