From: Marco Bettini Date: Mon, 4 Dec 2023 14:56:17 +0000 (+0000) Subject: fts: storage - Add fts_settings to struct fts_user X-Git-Tag: 2.4.1~1126 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb94ad301ce3fcf1b7dbe199f015baad7efc260c;p=thirdparty%2Fdovecot%2Fcore.git fts: storage - Add fts_settings to struct fts_user --- diff --git a/src/plugins/fts/fts-user.c b/src/plugins/fts/fts-user.c index 8aac625fda..5ae6e39ff3 100644 --- a/src/plugins/fts/fts-user.c +++ b/src/plugins/fts/fts-user.c @@ -10,6 +10,8 @@ #include "lang-filter.h" #include "lang-tokenizer.h" #include "fts-user.h" +#include "settings.h" +#include "fts-settings.h" #define FTS_USER_CONTEXT(obj) \ MODULE_CONTEXT(obj, fts_user_module) @@ -18,6 +20,7 @@ struct fts_user { union mail_user_module_context module_ctx; + const struct fts_settings *set; int refcount; struct language_list *lang_list; @@ -343,6 +346,12 @@ struct fts_user_language *fts_user_get_data_lang(struct mail_user *user) return fuser->data_lang; } +const struct fts_settings *fts_user_get_settings(struct mail_user *user) +{ + struct fts_user *fuser = FTS_USER_CONTEXT_REQUIRE(user); + return fuser->set; +} + bool fts_user_autoindex_exclude(struct mailbox *box) { struct fts_user *fuser = FTS_USER_CONTEXT_REQUIRE(box->storage->user); @@ -371,7 +380,8 @@ static void fts_user_free(struct fts_user *fuser) array_foreach_elem(&fuser->languages, user_lang) fts_user_language_free(user_lang); } - mailbox_match_plugin_deinit(&fuser->autoindex_exclude); + + settings_free(fuser->set); } static int @@ -405,7 +415,15 @@ int fts_mail_user_init(struct mail_user *user, bool initialize_libfts, return 0; } + const char *error; + const struct fts_settings *set; + if (settings_get(user->event, &fts_setting_parser_info, 0, &set, &error) < 0) { + e_error(user->event, "%s", error); + return -1; + } + fuser = p_new(user->pool, struct fts_user, 1); + fuser->set = set; fuser->refcount = 1; if (initialize_libfts) { if (fts_mail_user_init_libfts(user, fuser, error_r) < 0) { diff --git a/src/plugins/fts/fts-user.h b/src/plugins/fts/fts-user.h index 29dee8ab6e..78f8657f3c 100644 --- a/src/plugins/fts/fts-user.h +++ b/src/plugins/fts/fts-user.h @@ -1,6 +1,8 @@ #ifndef FTS_USER_H #define FTS_USER_H +#include "fts-settings.h" + struct fts_user_language { const struct language *lang; struct lang_filter *filter; @@ -18,6 +20,8 @@ struct fts_user_language *fts_user_get_data_lang(struct mail_user *user); const ARRAY_TYPE(fts_user_language) * fts_user_get_data_languages(struct mail_user *user); +const struct fts_settings *fts_user_get_settings(struct mail_user *user); + bool fts_user_autoindex_exclude(struct mailbox *box); size_t fts_mail_user_message_max_size(struct mail_user *user);