]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-solr: Fixed updating last indexed uid in fts header.
authorTimo Sirainen <tss@iki.fi>
Wed, 31 Aug 2011 11:23:51 +0000 (14:23 +0300)
committerTimo Sirainen <tss@iki.fi>
Wed, 31 Aug 2011 11:23:51 +0000 (14:23 +0300)
src/plugins/fts-solr/fts-backend-solr-old.c
src/plugins/fts-solr/fts-backend-solr.c

index 33ece23c761701bbba7fa990d865aea072ab5536..eab7500f18586aeca135de3774986670a5877e72 100644 (file)
@@ -466,6 +466,11 @@ fts_backend_solr_update_set_mailbox(struct fts_backend_update_context *_ctx,
        struct mailbox_status status;
        struct mail_namespace *ns;
 
+       if (ctx->prev_uid != 0) {
+               (void)fts_index_set_last_uid(ctx->cur_box, ctx->prev_uid);
+               ctx->prev_uid = 0;
+       }
+
        ctx->cur_box = box;
        ctx->uid_validity = 0;
        i_free_and_null(ctx->id_box_name);
index 5008116d45c7aa6209536c7f9096fc83aced0000..73e3bb4c683ba37e73f26315e4193dbd304e6fb7 100644 (file)
@@ -317,7 +317,10 @@ fts_backend_solr_update_set_mailbox(struct fts_backend_update_context *_ctx,
                (struct solr_fts_backend_update_context *)_ctx;
        const char *box_guid;
 
-       ctx->cur_box = box;
+       if (ctx->prev_uid != 0) {
+               (void)fts_index_set_last_uid(ctx->cur_box, ctx->prev_uid);
+               ctx->prev_uid = 0;
+       }
 
        if (box != NULL) {
                if (fts_mailbox_get_guid(box, &box_guid) < 0)
@@ -328,6 +331,7 @@ fts_backend_solr_update_set_mailbox(struct fts_backend_update_context *_ctx,
        } else {
                memset(ctx->box_guid, 0, sizeof(ctx->box_guid));
        }
+       ctx->cur_box = box;
 }
 
 static void