static void
mailbox_list_index_sync_update_hdr(struct mailbox_list_index_sync_context *sync_ctx)
{
- if (sync_ctx->orig_highest_name_id != sync_ctx->ilist->highest_name_id) {
+ if (sync_ctx->orig_highest_name_id != sync_ctx->ilist->highest_name_id ||
+ sync_ctx->ilist->corrupted) {
/* new names added. this implicitly resets refresh flag */
T_BEGIN {
mailbox_list_index_sync_names(sync_ctx);
} T_END;
+ sync_ctx->ilist->corrupted = FALSE;
} else if (mailbox_list_index_need_refresh(sync_ctx->ilist,
sync_ctx->view)) {
/* we're synced, reset refresh flag */
mail_index_mark_corrupted(ilist->index);
return -1;
}
+ ilist->corrupted = TRUE;
}
if (mailbox_list_index_parse_records(ilist, view, &error) < 0) {
mailbox_list_set_critical(list,
}
/* FIXME: find any missing mailboxes, add them and write the
index back. */
+ ilist->corrupted = TRUE;
}
return 0;
}
unsigned int updating_status:1;
unsigned int has_backing_store:1;
unsigned int index_last_check_changed:1;
+ unsigned int corrupted:1;
};
struct mailbox_list_index_iterate_context {