From: Marco Bettini Date: Mon, 11 Sep 2023 08:16:03 +0000 (+0000) Subject: fts: fts_search_get_first_missing_uid() - Set last_indexed_uid_r also when uid is... X-Git-Tag: 2.4.0~2533 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5cc0c207de4c6839794444b17276d3424cfe8766;p=thirdparty%2Fdovecot%2Fcore.git fts: fts_search_get_first_missing_uid() - Set last_indexed_uid_r also when uid is found Previously last_indexed_uid_r was set only if uid was not found. Now we set it to the uid provided in input (the functions invoked do not provide the information). --- diff --git a/src/plugins/fts/fts-search.c b/src/plugins/fts/fts-search.c index c87d7573c6..14992ebe26 100644 --- a/src/plugins/fts/fts-search.c +++ b/src/plugins/fts/fts-search.c @@ -344,21 +344,20 @@ int fts_search_get_first_missing_uid(struct fts_backend *backend, { uint32_t messages_count = mail_index_view_get_messages_count(box->view); uint32_t uid, last_indexed_uid; - int ret; if (messages_count == 0) return 1; mail_index_lookup_uid(box->view, messages_count, &uid); for (bool refreshed = FALSE;; refreshed = TRUE) { - ret = fts_backend_is_uid_indexed(backend, box, uid, - &last_indexed_uid); - if (ret != 0) + int ret = fts_backend_is_uid_indexed(backend, box, uid, + &last_indexed_uid); + if (ret < 0) + return ret; + + *last_indexed_uid_r = last_indexed_uid; + if (ret > 0 || refreshed || backend->updating) return ret; - if (refreshed || backend->updating) { - *last_indexed_uid_r = last_indexed_uid; - return 0; - } /* UID doesn't seem to be indexed yet. Refresh FTS and check again. */