From 5a0b68eeaf48cd1655057f36f19357146bf08e1d Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 19 Nov 2009 18:20:23 -0500 Subject: [PATCH] Added mailbox_list_set_changelog_writable(). --HG-- branch : HEAD --- src/lib-storage/mailbox-list-private.h | 2 ++ src/lib-storage/mailbox-list.c | 7 ++++++- src/lib-storage/mailbox-list.h | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib-storage/mailbox-list-private.h b/src/lib-storage/mailbox-list-private.h index 2bfe8b3a30..db75a59207 100644 --- a/src/lib-storage/mailbox-list-private.h +++ b/src/lib-storage/mailbox-list-private.h @@ -107,6 +107,8 @@ struct mailbox_list { bool temporary_error; ARRAY_DEFINE(module_contexts, union mailbox_list_module_context *); + + unsigned int changelog_disabled:1; }; struct mailbox_list_iterate_context { diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index 7970c8c402..774443a56a 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -701,7 +701,7 @@ void mailbox_list_add_change(struct mailbox_list *list, { struct mailbox_log_record rec; - if (!mailbox_list_init_changelog(list) || + if (!mailbox_list_init_changelog(list) || list->changelog_disabled || mail_guid_128_is_empty(mailbox_guid)) return; @@ -921,6 +921,11 @@ struct mailbox_log *mailbox_list_get_changelog(struct mailbox_list *list) return !mailbox_list_init_changelog(list) ? NULL : list->changelog; } +void mailbox_list_set_changelog_writable(struct mailbox_list *list, bool set) +{ + list->changelog_disabled = !set; +} + static int mailbox_list_try_delete(struct mailbox_list *list, const char *dir) { if (unlink_directory(dir, TRUE) == 0 || errno == ENOENT) diff --git a/src/lib-storage/mailbox-list.h b/src/lib-storage/mailbox-list.h index c20a0e8e3f..dc0eef8d31 100644 --- a/src/lib-storage/mailbox-list.h +++ b/src/lib-storage/mailbox-list.h @@ -188,7 +188,8 @@ int mailbox_list_get_guid(struct mailbox_list *list, const char *name, uint8_t mailbox_guid[MAIL_GUID_128_SIZE]); /* Returns mailbox's change log, or NULL if it doesn't have one. */ struct mailbox_log *mailbox_list_get_changelog(struct mailbox_list *list); - +/* Enable/disable writing mailbox changes to changelog. */ +void mailbox_list_set_changelog_writable(struct mailbox_list *list, bool set); /* Returns a prefix that temporary files should use without conflicting with the namespace. */ -- 2.47.3