]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Fixed crashing with Squat.
authorTimo Sirainen <tss@iki.fi>
Fri, 7 Aug 2009 19:12:04 +0000 (15:12 -0400)
committerTimo Sirainen <tss@iki.fi>
Fri, 7 Aug 2009 19:12:04 +0000 (15:12 -0400)
A better solution would be for Squat to use existing mailboxes' Squat
indexes, but for now this isn't done.

--HG--
branch : HEAD

src/plugins/fts-solr/fts-backend-solr.c
src/plugins/fts/fts-api-private.h
src/plugins/fts/fts-storage.c

index 3b3ed4b4e6bd384ebd1dd315a7d238b973ee8f46..ddacd7d64f587ad6c2274b19bcaf066e6367c1fa 100644 (file)
@@ -798,7 +798,7 @@ static int fts_backend_solr_lookup(struct fts_backend_lookup_context *ctx,
 
 struct fts_backend fts_backend_solr = {
        MEMBER(name) "solr",
-       MEMBER(flags) 0,
+       MEMBER(flags) FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS,
 
        {
                fts_backend_solr_init,
index 261640ea97df65afc091285ff8aaea7a3efbf2cf..188d0b3b88f52f5573beca5915f361a6fbeb194f 100644 (file)
@@ -43,7 +43,9 @@ enum fts_backend_flags {
        /* If set, the backend is used for TEXT and BODY search
           optimizations. Otherwise only TEXT_FAST and BODY_FAST are
           optimized. */
-       FTS_BACKEND_FLAG_SUBSTRING_LOOKUPS      = 0x01
+       FTS_BACKEND_FLAG_SUBSTRING_LOOKUPS      = 0x01,
+       /* Backend supports virtual mailbox lookups. */
+       FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS        = 0x02
 };
 
 struct fts_backend {
index c5d67bf8cdb70326b3a311bc296f86dfe2ad5a17..6014ee8c287c7bfc9ba962ad21e5ecf0449ce786 100644 (file)
@@ -435,7 +435,8 @@ static int fts_build_init(struct fts_search_context *fctx)
                return 0;
        }
 
-       if (fctx->fbox->virtual)
+       if (fctx->fbox->virtual &&
+           (fctx->build_backend->flags & FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS) != 0)
                ret = fts_build_init_virtual(fctx);
        else
                ret = fts_build_init_trans(fctx, fctx->t);