Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4709:d2693511dd33 HEAD
Let FTS backend init function take a struct mailbox instead of path.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 25 Oct 2006 02:46:14 +0300 |
parents | e3534695b58a |
children | d0e37ed08bdb |
files | src/plugins/fts/fts-api-private.h src/plugins/fts/fts-api.c src/plugins/fts/fts-api.h src/plugins/fts/fts-storage.c |
diffstat | 4 files changed, 15 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts/fts-api-private.h Wed Oct 25 02:45:14 2006 +0300 +++ b/src/plugins/fts/fts-api-private.h Wed Oct 25 02:46:14 2006 +0300 @@ -4,7 +4,7 @@ #include "fts-api.h" struct fts_backend_vfuncs { - struct fts_backend *(*init)(const char *path); + struct fts_backend *(*init)(struct mailbox *box); void (*deinit)(struct fts_backend *backend); struct fts_backend_build_context *
--- a/src/plugins/fts/fts-api.c Wed Oct 25 02:45:14 2006 +0300 +++ b/src/plugins/fts/fts-api.c Wed Oct 25 02:46:14 2006 +0300 @@ -33,16 +33,19 @@ } struct fts_backend * -fts_backend_init(const char *backend_name, const char *path) +fts_backend_init(const char *backend_name, struct mailbox *box) { const struct fts_backend *const *be; unsigned int i, count; - be = array_get(&backends, &count); - for (i = 0; i < count; i++) { - if (strcmp(be[i]->name, backend_name) == 0) - return be[i]->v.init(path); + if (array_is_created(&backends)) { + be = array_get(&backends, &count); + for (i = 0; i < count; i++) { + if (strcmp(be[i]->name, backend_name) == 0) + return be[i]->v.init(box); + } } + i_error("Unknown FTS backend: %s", backend_name); return NULL; }
--- a/src/plugins/fts/fts-api.h Wed Oct 25 02:45:14 2006 +0300 +++ b/src/plugins/fts/fts-api.h Wed Oct 25 02:46:14 2006 +0300 @@ -1,10 +1,12 @@ #ifndef __FTS_API_H #define __FTS_API_H +struct mailbox; + #include "seq-range-array.h" struct fts_backend * -fts_backend_init(const char *backend_name, const char *path); +fts_backend_init(const char *backend_name, struct mailbox *box); void fts_backend_deinit(struct fts_backend *backend); /* Initialize adding new data to the index. last_uid_r is set to the last UID
--- a/src/plugins/fts/fts-storage.c Wed Oct 25 02:45:14 2006 +0300 +++ b/src/plugins/fts/fts-storage.c Wed Oct 25 02:46:14 2006 +0300 @@ -13,8 +13,6 @@ #include <stdlib.h> -#define FTS_INDEX_NAME "dovecot.index.fts" - #define FTS_CONTEXT(obj) \ *((void **)array_idx_modifiable(&(obj)->module_contexts, \ fts_storage_module_id)) @@ -162,6 +160,7 @@ (block.hdr != NULL || block.size != 0)) { str_truncate(ctx->headers, 0); ctx->save_part = FALSE; + prev_part = block.part; skip_part = NULL; } @@ -360,7 +359,7 @@ { struct fts_mailbox *fbox; struct fts_backend *backend; - const char *env, *path; + const char *env; if (fts_next_hook_mailbox_opened != NULL) fts_next_hook_mailbox_opened(box); @@ -369,12 +368,7 @@ if (env == NULL) return; - path = mail_storage_get_mailbox_index_dir(box->storage, box->name); - if (path == NULL) - return; - - path = t_strconcat(path, "/" FTS_INDEX_NAME, NULL); - backend = fts_backend_init(env, path); + backend = fts_backend_init(env, box); if (backend == NULL) return;