]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
index-storage: Code cleanup.
authorTimo Sirainen <tss@iki.fi>
Thu, 30 Jul 2009 23:19:42 +0000 (19:19 -0400)
committerTimo Sirainen <tss@iki.fi>
Thu, 30 Jul 2009 23:19:42 +0000 (19:19 -0400)
--HG--
branch : HEAD

src/lib-storage/index/dbox/dbox-storage.c
src/lib-storage/index/index-storage.c
src/lib-storage/index/index-storage.h

index b377f3a28d071b7b8e65d906642a3bcfd9615ea2..be21347fc2ac5281809b2f48fe9b5ef6df4323b9 100644 (file)
@@ -155,8 +155,6 @@ dbox_mailbox_alloc(struct mail_storage *storage, struct mailbox_list *list,
        mbox->ibox.box.storage = storage;
        mbox->ibox.box.list = list;
        mbox->ibox.mail_vfuncs = &dbox_mail_vfuncs;
-       mbox->ibox.keep_index_backups = TRUE;
-       mbox->ibox.index_never_in_memory = TRUE;
 
        index_storage_mailbox_alloc(&mbox->ibox, name, input, flags,
                                    DBOX_INDEX_PREFIX);
@@ -164,6 +162,9 @@ dbox_mailbox_alloc(struct mail_storage *storage, struct mailbox_list *list,
                                   MAIL_INDEX_SYNC_TYPE_APPEND |
                                   MAIL_INDEX_SYNC_TYPE_EXPUNGE);
 
+       mbox->ibox.index_flags |= MAIL_INDEX_OPEN_FLAG_KEEP_BACKUPS |
+               MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY;
+
        mbox->storage = (struct dbox_storage *)storage;
        mbox->alt_path =
                p_strdup(pool, dbox_get_alt_path(list, mbox->ibox.box.path));
index 4350e5495c17372a326a95b9bd90fb554ea23d87..964881588dd70dab9e480d61e264f8ced7195289 100644 (file)
@@ -385,13 +385,11 @@ int index_storage_mailbox_open(struct mailbox *box)
 
        i_assert(!box->opened);
 
-       index_flags = mail_storage_settings_to_index_flags(box->storage->set);
-       if (!ibox->move_to_memory)
-               index_flags |= MAIL_INDEX_OPEN_FLAG_CREATE;
-       if (ibox->keep_index_backups)
-               index_flags |= MAIL_INDEX_OPEN_FLAG_KEEP_BACKUPS;
-       if (ibox->index_never_in_memory) {
-               index_flags |= MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY;
+       index_flags = ibox->index_flags;
+       if (ibox->move_to_memory)
+               ibox->index_flags &= ~MAIL_INDEX_OPEN_FLAG_CREATE;
+
+       if ((index_flags & MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY) != 0) {
                if (mail_index_is_in_memory(ibox->index)) {
                        mail_storage_set_critical(box->storage,
                                "Couldn't create index file");
@@ -414,7 +412,7 @@ int index_storage_mailbox_open(struct mailbox *box)
 
        ret = mail_index_open(ibox->index, index_flags, lock_method);
        if (ret <= 0 || ibox->move_to_memory) {
-               if (ibox->index_never_in_memory) {
+               if ((index_flags & MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY) != 0) {
                        mail_storage_set_index_error(ibox);
                        return -1;
                }
@@ -483,6 +481,8 @@ void index_storage_mailbox_alloc(struct index_mailbox *ibox, const char *name,
                                     MAILBOX_LIST_PATH_TYPE_MAILBOX);
        ibox->box.path = p_strdup(box->pool, path);
 
+       ibox->index_flags = MAIL_INDEX_OPEN_FLAG_CREATE |
+               mail_storage_settings_to_index_flags(box->storage->set);
        ibox->keep_recent = (flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
        ibox->keep_locked = (flags & MAILBOX_FLAG_KEEP_LOCKED) != 0;
 
index c1d599df41cab0fdbe20415e8299c0d42b92c600..70d0b20aa6864df0f483b74f5343fe2de8c20cf1 100644 (file)
@@ -19,6 +19,7 @@ enum mailbox_lock_notify_type {
 struct index_mailbox {
        struct mailbox box;
        union mail_index_view_module_context view_module_ctx;
+       enum mail_index_open_flags index_flags;
 
        struct mail_index *index;
        struct mail_index_view *view;
@@ -55,8 +56,6 @@ struct index_mailbox {
        unsigned int sent_readonly_flags_warning:1;
        unsigned int notify_pending:1;
        unsigned int move_to_memory:1;
-       unsigned int keep_index_backups:1;
-       unsigned int index_never_in_memory:1;
 };
 
 struct index_transaction_context {