From: Marco Bettini Date: Wed, 17 Jan 2024 15:18:15 +0000 (+0000) Subject: fts: storage - Add fts_settings to struct fts_mailbox X-Git-Tag: 2.4.1~1124 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68ef7daa037121d41d451ef757ec062a27e43b08;p=thirdparty%2Fdovecot%2Fcore.git fts: storage - Add fts_settings to struct fts_mailbox --- diff --git a/src/plugins/fts/fts-storage.c b/src/plugins/fts/fts-storage.c index d041409d58..1a2fe2ff54 100644 --- a/src/plugins/fts/fts-storage.c +++ b/src/plugins/fts/fts-storage.c @@ -46,6 +46,7 @@ struct fts_mailbox_list { struct fts_mailbox { union mailbox_module_context module_ctx; + const struct fts_settings *set; struct fts_backend_update_context *sync_update_ctx; bool fts_mailbox_excluded; }; @@ -818,6 +819,13 @@ static int fts_mailbox_search_next_match_mail(struct mail_search_context *ctx, return fbox->module_ctx.super.search_next_match_mail(ctx, mail); } +static void fts_mailbox_free(struct mailbox *box) +{ + struct fts_mailbox *fbox = FTS_CONTEXT_REQUIRE(box); + settings_free(fbox->set); + fbox->module_ctx.super.free(box); +} + void fts_mailbox_allocated(struct mailbox *box) { struct fts_mailbox_list *flist = FTS_LIST_CONTEXT(box->list); @@ -827,8 +835,17 @@ void fts_mailbox_allocated(struct mailbox *box) if (flist == NULL || flist->failed) return; + const struct fts_settings *set; + const char *error; + if (settings_get(box->event, &fts_setting_parser_info, 0, &set, &error) < 0) { + e_error(box->event, "%s", error); + return; + } + fbox = p_new(box->pool, struct fts_mailbox, 1); fbox->module_ctx.super = *v; + v->free = fts_mailbox_free; + fbox->set = set; box->vlast = &fbox->module_ctx.super; fbox->fts_mailbox_excluded = fts_user_autoindex_exclude(box); @@ -932,3 +949,9 @@ struct fts_backend *fts_list_backend(struct mailbox_list *list) return flist == NULL ? NULL : flist->backend; } + +const struct fts_settings *fts_mailbox_get_settings(struct mailbox *box) +{ + struct fts_mailbox *fbox = FTS_CONTEXT_REQUIRE(box); + return fbox->set; +} diff --git a/src/plugins/fts/fts-storage.h b/src/plugins/fts/fts-storage.h index dad0b82642..2479ea11aa 100644 --- a/src/plugins/fts/fts-storage.h +++ b/src/plugins/fts/fts-storage.h @@ -70,4 +70,6 @@ void fts_mailbox_list_created(struct mailbox_list *list); int fts_mailbox_get_status(struct mailbox *box, enum mailbox_status_items items, struct mailbox_status *status_r); +const struct fts_settings *fts_mailbox_get_settings(struct mailbox *box); + #endif