}
int fts_backend_init(const char *backend_name, struct mail_namespace *ns,
- const char **error_r, struct fts_backend **backend_r)
+ struct event *event, const char **error_r,
+ struct fts_backend **backend_r)
{
const struct fts_backend *be;
struct fts_backend *backend;
backend = be->v.alloc();
backend->ns = ns;
+ backend->event = event_create(event);
+ event_add_category(backend->event, &event_category_fts);
+ event_set_append_log_prefix(backend->event, t_strdup_printf(
+ "fts-%s: ", backend->name));
+
if (backend->v.init(backend, error_r) < 0) {
+ event_unref(&backend->event);
backend->v.deinit(backend);
return -1;
}
- backend->event = event_create(mailbox_list_get_event(ns->list));
- event_add_category(backend->event, &event_category_fts);
- event_set_append_log_prefix(backend->event, t_strdup_printf(
- "fts-%s: ", backend->name));
-
fts_header_filters_init(backend);
*backend_r = backend;
return 0;
extern struct event_category event_category_fts;
int fts_backend_init(const char *backend_name, struct mail_namespace *ns,
- const char **error_r, struct fts_backend **backend_r);
+ struct event *event, const char **error_r,
+ struct fts_backend **backend_r);
void fts_backend_deinit(struct fts_backend **backend);
/* Get the last_uid for the mailbox. */
} else if (set->driver[0] == '\0') {
e_debug(ns->list->event,
"fts: No fts_driver setting - plugin disabled");
- } else if (fts_backend_init(set->driver, ns, &error, &backend) < 0) {
+ } else if (fts_backend_init(set->driver, ns, ns->list->event,
+ &error, &backend) < 0) {
flist->failed = TRUE;
e_error(ns->list->event,
"fts: Failed to initialize backend '%s': %s",