int fts_backend_get_last_uid(struct fts_backend *backend, struct mailbox *box, uint32_t *last_uid_r) { struct fts_index_header hdr; if (box->virtual_vfuncs != NULL) { /* virtual mailboxes themselves don't have any indexes, so catch this call here */ if (!fts_index_get_header(box, &hdr)) *last_uid_r = 0; else *last_uid_r = hdr.last_indexed_uid; return 0; } return backend->v.get_last_uid(backend, box, last_uid_r); }
int fts_backend_get_last_uid(struct fts_backend *backend, struct mailbox *box, uint32_t *last_uid_r) { struct fts_index_header hdr; if (strcmp(box->storage->name, VIRTUAL_STORAGE_NAME) == 0) { /* virtual mailboxes themselves don't have any indexes, so catch this call here */ if (!fts_index_get_header(box, &hdr)) *last_uid_r = 0; else *last_uid_r = hdr.last_indexed_uid; return 0; } return backend->v.get_last_uid(backend, box, last_uid_r); }
static int fts_backend_solr_get_last_uid(struct fts_backend *_backend, struct mailbox *box, uint32_t *last_uid_r) { struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend; struct fts_index_header hdr; if (fts_index_get_header(box, &hdr)) { *last_uid_r = hdr.last_indexed_uid; return 0; } /* either nothing has been indexed, or the index was corrupted. do it the slow way. */ if (fts_backend_solr_get_last_uid_fallback(backend, box, last_uid_r) < 0) return -1; fts_index_set_last_uid(box, *last_uid_r); return 0; }