From: Timo Sirainen Date: Fri, 22 Jul 2011 10:51:57 +0000 (+0300) Subject: fts: Make sure fts_index_get_last_uid() gets the latest value from index. X-Git-Tag: 2.1.alpha1~221 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=403762eeaebbedce130b1cec435441b22ee8f349;p=thirdparty%2Fdovecot%2Fcore.git fts: Make sure fts_index_get_last_uid() gets the latest value from index. --- diff --git a/src/plugins/fts/fts-api.c b/src/plugins/fts/fts-api.c index 98afb1b833..8e1bf687b1 100644 --- a/src/plugins/fts/fts-api.c +++ b/src/plugins/fts/fts-api.c @@ -310,20 +310,26 @@ static bool fts_index_get_header(struct mailbox *box, struct fts_index_header *hdr_r, uint32_t *ext_id_r) { + struct mail_index_view *view; const void *data; size_t data_size; + bool ret; + (void)mail_index_refresh(box->index); + view = mail_index_view_open(box->index); *ext_id_r = mail_index_ext_register(box->index, "fts", sizeof(struct fts_index_header), 0, 0); - mail_index_get_header_ext(box->view, *ext_id_r, &data, &data_size); + mail_index_get_header_ext(view, *ext_id_r, &data, &data_size); if (data_size < sizeof(*hdr_r)) { memset(hdr_r, 0, sizeof(*hdr_r)); - return FALSE; + ret = FALSE; + } else { + memcpy(hdr_r, data, data_size); + ret = TRUE; } - - memcpy(hdr_r, data, data_size); - return TRUE; + mail_index_view_close(&view); + return ret; } bool fts_index_get_last_uid(struct mailbox *box, uint32_t *last_uid_r)