box->box_name_hdr_ext_id =
mail_index_ext_register(box->index, "box-name", 0, 0, 0);
+ box->box_last_rename_stamp_ext_id =
+ mail_index_ext_register(box->index, "last-rename-stamp",
+ sizeof(uint32_t), 0, sizeof(uint32_t));
+
box->opened = TRUE;
if ((box->enabled_features & MAILBOX_FEATURE_CONDSTORE) != 0)
return -1;
}
+ if (mailbox_open(dest) == 0) {
+ struct mail_index_transaction *t =
+ mail_index_transaction_begin(dest->view, 0);
+
+ uint32_t stamp = ioloop_time;
+
+ mail_index_update_header_ext(t, dest->box_last_rename_stamp_ext_id,
+ 0, &stamp, sizeof(stamp));
+
+ /* can't do much if this fails anyways */
+ (void)mail_index_transaction_commit(&t);
+ }
+
/* we'll track mailbox names, instead of GUIDs. We may be renaming a
non-selectable mailbox (directory), which doesn't even have a GUID */
mailbox_name_get_sha128(dest->vname, guid);
uint32_t vsize_hdr_ext_id;
uint32_t pop3_uidl_hdr_ext_id;
uint32_t box_name_hdr_ext_id;
+ uint32_t box_last_rename_stamp_ext_id;
/* MAIL_RECENT flags handling */
ARRAY_TYPE(seq_range) recent_flags;