Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7207:2dffefc14e25 HEAD
Keep struct mailbox pointer in struct fts_backend.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 03 Feb 2008 22:41:29 +0200 |
parents | 83a3239808d3 |
children | eec99cefd3bd |
files | src/plugins/fts/fts-api-private.h src/plugins/fts/fts-api.c |
diffstat | 2 files changed, 21 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts/fts-api-private.h Sat Feb 02 12:12:37 2008 +0200 +++ b/src/plugins/fts/fts-api-private.h Sun Feb 03 22:41:29 2008 +0200 @@ -41,6 +41,7 @@ struct fts_backend { const char *name; + struct mailbox *box; enum fts_backend_flags flags; struct fts_backend_vfuncs v;
--- a/src/plugins/fts/fts-api.c Sat Feb 02 12:12:37 2008 +0200 +++ b/src/plugins/fts/fts-api.c Sun Feb 03 22:41:29 2008 +0200 @@ -32,8 +32,8 @@ array_free(&backends); } -struct fts_backend * -fts_backend_init(const char *backend_name, struct mailbox *box) +static const struct fts_backend * +fts_backend_class_lookup(const char *backend_name) { const struct fts_backend *const *be; unsigned int i, count; @@ -42,12 +42,27 @@ 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); + return be[i]; } } + return NULL; +} - i_error("Unknown FTS backend: %s", backend_name); - return NULL; +struct fts_backend * +fts_backend_init(const char *backend_name, struct mailbox *box) +{ + const struct fts_backend *be; + struct fts_backend *backend; + + be = fts_backend_class_lookup(backend_name); + if (be == NULL) { + i_error("Unknown FTS backend: %s", backend_name); + return NULL; + } + + backend = be->v.init(box); + backend->box = box; + return backend; } void fts_backend_deinit(struct fts_backend **_backend)