]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added mailbox_list_set_changelog_writable().
authorTimo Sirainen <tss@iki.fi>
Thu, 19 Nov 2009 23:20:23 +0000 (18:20 -0500)
committerTimo Sirainen <tss@iki.fi>
Thu, 19 Nov 2009 23:20:23 +0000 (18:20 -0500)
--HG--
branch : HEAD

src/lib-storage/mailbox-list-private.h
src/lib-storage/mailbox-list.c
src/lib-storage/mailbox-list.h

index 2bfe8b3a305efb4f225612ab95601a66f461bafe..db75a592074ecb1ce2c41eb1e56e7f176507ed57 100644 (file)
@@ -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 {
index 7970c8c40207076254b2814168bdb72542f137ba..774443a56a55610873df7c392a71ab6888e52719 100644 (file)
@@ -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)
index c20a0e8e3fa8099657b684bb1b4d09d66339bb27..dc0eef8d3162d460a4c524d3eaf78e37e3afc855 100644 (file)
@@ -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. */