Mercurial > dovecot > core-2.2
changeset 13102:ed7f134a9429
fts: Make sure fts_index_get_last_uid() gets the latest value from index.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 22 Jul 2011 13:51:57 +0300 |
parents | 7b9978eb6f91 |
children | 88f1c971f3a9 |
files | src/plugins/fts/fts-api.c |
diffstat | 1 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts/fts-api.c Fri Jul 22 13:21:59 2011 +0300 +++ b/src/plugins/fts/fts-api.c Fri Jul 22 13:51:57 2011 +0300 @@ -310,20 +310,26 @@ 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)