diff --git a/src/lib-index/mail-index-map-hdr.c b/src/lib-index/mail-index-map-hdr.c index 59b0c7f93d..1caa3f1a2e 100644 --- a/src/lib-index/mail-index-map-hdr.c +++ b/src/lib-index/mail-index-map-hdr.c @@ -293,7 +293,7 @@ int mail_index_map_check_header(struct mail_index_map *map, /* pre-v2.2 (although should have been done in v2.1 already): make sure the old unused fields are cleared */ map->hdr.unused_old_sync_size = 0; - map->hdr.unused_old_sync_stamp = 0; + map->hdr.last_temp_file_scan = 0; } if (hdr->first_recent_uid == 0) { *error_r = "first_recent_uid=0"; diff --git a/src/lib-index/mail-index.h b/src/lib-index/mail-index.h index 1dde6c5f3e..b6434f7a68 100644 --- a/src/lib-index/mail-index.h +++ b/src/lib-index/mail-index.h @@ -106,7 +106,7 @@ struct mail_index_header { uint32_t log_file_head_offset; uint64_t unused_old_sync_size; - uint32_t unused_old_sync_stamp; + uint32_t last_temp_file_scan; /* daily first UIDs that have been added to index. */ uint32_t day_stamp; diff --git a/src/lib-storage/index/index-storage.c b/src/lib-storage/index/index-storage.c index 67493497cf..55904b5c22 100644 --- a/src/lib-storage/index/index-storage.c +++ b/src/lib-storage/index/index-storage.c @@ -861,6 +861,22 @@ int index_storage_mailbox_rename(struct mailbox *src, struct mailbox *dest) return 0; } +int index_mailbox_update_last_temp_file_scan(struct mailbox *box) +{ + uint32_t last_temp_file_scan = ioloop_time; + struct mail_index_transaction *trans = + mail_index_transaction_begin(box->view, + MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL); + mail_index_update_header(trans, + offsetof(struct mail_index_header, last_temp_file_scan), + &last_temp_file_scan, sizeof(last_temp_file_scan), TRUE); + if (mail_index_transaction_commit(&trans) < 0) { + mailbox_set_index_error(box); + return -1; + } + return 0; +} + bool index_storage_is_readonly(struct mailbox *box) { return (box->flags & MAILBOX_FLAG_READONLY) != 0; diff --git a/src/lib-storage/index/index-storage.h b/src/lib-storage/index/index-storage.h index ff5ed4c1cf..9218e1ac65 100644 --- a/src/lib-storage/index/index-storage.h +++ b/src/lib-storage/index/index-storage.h @@ -80,6 +80,8 @@ int index_storage_mailbox_delete(struct mailbox *box); int index_storage_mailbox_delete_dir(struct mailbox *box, bool mailbox_deleted); int index_storage_mailbox_rename(struct mailbox *src, struct mailbox *dest); +int index_mailbox_update_last_temp_file_scan(struct mailbox *box); + bool index_storage_is_readonly(struct mailbox *box); bool index_storage_is_inconsistent(struct mailbox *box);