return -1;
}
- if (sync_ctx->base_uid_validity != 0 &&
- sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity) {
+ if ((sync_ctx->base_uid_validity != 0 &&
+ sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity) ||
+ sync_ctx->hdr->uid_validity == 0) {
+ if (sync_ctx->hdr->uid_validity == 0) {
+ /* we couldn't rewrite X-IMAPbase because it's
+ a read-only mbox */
+ i_assert(sync_ctx->ibox->mbox_readonly);
+ sync_ctx->base_uid_validity = time(NULL);
+ }
mail_index_update_header(sync_ctx->t,
offsetof(struct mail_index_header, uid_validity),
&sync_ctx->base_uid_validity,