#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)
struct fts_user {
union mail_user_module_context module_ctx;
+ const struct fts_settings *set;
int refcount;
struct language_list *lang_list;
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);
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
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) {
#ifndef FTS_USER_H
#define FTS_USER_H
+#include "fts-settings.h"
+
struct fts_user_language {
const struct language *lang;
struct lang_filter *filter;
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);