From 2a3376e9f2c41bfbcd4edbaab6a1dce9fa6840f9 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 16 Feb 2009 22:47:50 -0500 Subject: [PATCH] dbox: use mailbox uidvalidity file again for assigning new UIDVALIDITY. --HG-- branch : HEAD --- src/lib-storage/index/dbox/dbox-sync-rebuild.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/lib-storage/index/dbox/dbox-sync-rebuild.c b/src/lib-storage/index/dbox/dbox-sync-rebuild.c index cbfe58f94b..5551310e11 100644 --- a/src/lib-storage/index/dbox/dbox-sync-rebuild.c +++ b/src/lib-storage/index/dbox/dbox-sync-rebuild.c @@ -1,8 +1,8 @@ /* Copyright (c) 2007-2009 Dovecot authors, see the included COPYING file */ #include "lib.h" -#include "ioloop.h" #include "array.h" +#include "mailbox-uidvalidity.h" #include "dbox-storage.h" #include "maildir/maildir-uidlist.h" #include "maildir/maildir-keywords.h" @@ -30,15 +30,25 @@ struct dbox_sync_rebuild_context { unsigned int cache_used:1; }; -static void dbox_sync_set_uidvalidity(struct dbox_sync_rebuild_context *ctx) +static uint32_t dbox_get_uidvalidity_next(struct mail_storage *storage) { + const char *path; + + path = mailbox_list_get_path(storage->list, NULL, + MAILBOX_LIST_PATH_TYPE_CONTROL); + path = t_strconcat(path, "/"DBOX_UIDVALIDITY_FILE_NAME, NULL); + return mailbox_uidvalidity_next(path); +} +static void dbox_sync_set_uidvalidity(struct dbox_sync_rebuild_context *ctx) +{ + struct mail_storage *storage = &ctx->mbox->storage->storage; uint32_t uid_validity; /* if uidvalidity is set in the old index, use it */ uid_validity = mail_index_get_header(ctx->view)->uid_validity; if (uid_validity == 0) - uid_validity = ioloop_time; + uid_validity = dbox_get_uidvalidity_next(storage); mail_index_update_header(ctx->trans, offsetof(struct mail_index_header, uid_validity), -- 2.47.3