uint8_t mailbox_guid[MAIL_GUID_128_SIZE];
unsigned int recreate:1;
+ unsigned int recreate_on_change:1;
unsigned int initial_read:1;
unsigned int initial_hdr_read:1;
unsigned int retry_rewind:1;
ret = -1;
if (uidlist->unsorted) {
- uidlist->recreate = TRUE;
+ uidlist->recreate_on_change = TRUE;
maildir_uidlist_records_sort_by_uid(uidlist);
}
if (uidlist->next_uid <= uidlist->prev_read_uid)
uidlist->fd_size = st.st_size;
uidlist->last_read_offset = st.st_size;
uidlist->recreate = FALSE;
+ uidlist->recreate_on_change = FALSE;
uidlist->have_mailbox_guid = TRUE;
maildir_uidlist_update_hdr(uidlist, &st);
}
struct stat st;
uoff_t file_size;
- if (maildir_uidlist_want_recreate(ctx))
+ if (maildir_uidlist_want_recreate(ctx) || uidlist->recreate_on_change)
return maildir_uidlist_recreate(uidlist);
if (!uidlist->locked_refresh || uidlist->fd == -1) {