]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Use mailbox_list_created hook
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 3 Feb 2017 12:22:02 +0000 (14:22 +0200)
committerGitLab <gitlab@git.dovecot.net>
Fri, 3 Feb 2017 15:16:36 +0000 (17:16 +0200)
Otherwise the deinit hook might get lost and fts would not be deinitialized.

Reverts 11f12ca1c97583b551a4286fa6cd1ab33aa67680 which seems to have been unnecessary

Fixes indexer-worker signal 11 crash

src/plugins/fts/fts-plugin.c
src/plugins/fts/fts-storage.c
src/plugins/fts/fts-storage.h

index 2a4c2165009a49c765e15dfbb769628a4c61ca91..287b0491a7c729531f5781514d07738849c3573e 100644 (file)
@@ -13,7 +13,7 @@
 const char *fts_plugin_version = DOVECOT_ABI_VERSION;
 
 static struct mail_storage_hooks fts_mail_storage_hooks = {
-       .mail_namespaces_added = fts_mail_namespaces_added,
+       .mailbox_list_created = fts_mailbox_list_created,
        .mailbox_allocated = fts_mailbox_allocated,
        .mail_allocated = fts_mail_allocated
 };
index 857f845114a7fe6cbfe0b148dc5e47c4b2691316..4d1687191af995ef43618fe2e0ef6d76da45aca2 100644 (file)
@@ -830,13 +830,18 @@ static void fts_mailbox_list_deinit(struct mailbox_list *list)
        flist->module_ctx.super.deinit(list);
 }
 
-
-
-static void
-fts_mailbox_list_init(struct mailbox_list *list, const char *name)
+void
+fts_mailbox_list_created(struct mailbox_list *list)
 {
        struct fts_backend *backend;
        const char *path, *error;
+       const char *name = mail_user_plugin_getenv(list->ns->user, "fts");
+
+       if (name == NULL || name[0] == '\0') {
+               if (list->mail_set->mail_debug)
+                       i_debug("fts: No fts setting - plugin disabled");
+               return;
+       }
 
        if (!mailbox_list_get_root_path(list, MAILBOX_LIST_PATH_TYPE_INDEX, &path)) {
                if (list->mail_set->mail_debug) {
@@ -865,22 +870,6 @@ fts_mailbox_list_init(struct mailbox_list *list, const char *name)
        }
 }
 
-void fts_mail_namespaces_added(struct mail_namespace *namespaces)
-{
-       struct mail_namespace *ns;
-       const char *name;
-
-       name = mail_user_plugin_getenv(namespaces->user, "fts");
-       if (name == NULL || name[0] == '\0') {
-               if (namespaces->user->mail_debug)
-                       i_debug("fts: No fts setting - plugin disabled");
-               return;
-       }
-
-       for (ns = namespaces; ns != NULL; ns = ns->next)
-               fts_mailbox_list_init(ns->list, name);
-}
-
 struct fts_backend *fts_mailbox_backend(struct mailbox *box)
 {
        struct fts_mailbox_list *flist = FTS_LIST_CONTEXT(box->list);
index bfc99993bbec794d4fbc8617f46a6d6183085ffe..ed79880cc7bf348f1f0fd71e0c0e8af103e471ca 100644 (file)
@@ -53,6 +53,5 @@ struct fts_backend *fts_list_backend(struct mailbox_list *list);
 
 void fts_mail_allocated(struct mail *mail);
 void fts_mailbox_allocated(struct mailbox *box);
-void fts_mail_namespaces_added(struct mail_namespace *namespaces);
-
+void fts_mailbox_list_created(struct mailbox_list *list);
 #endif