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

14 files changed:
src/lib-storage/index/cydir/cydir-sync.c
src/lib-storage/index/dbox/dbox-sync.c
src/lib-storage/index/index-storage.c
src/lib-storage/index/index-storage.h
src/lib-storage/index/index-sync.c
src/lib-storage/index/maildir/maildir-save.c
src/lib-storage/index/maildir/maildir-sync-index.c
src/lib-storage/index/maildir/maildir-sync.c
src/lib-storage/index/mbox/mbox-file.c
src/lib-storage/index/mbox/mbox-sync-private.h
src/lib-storage/index/mbox/mbox-sync-update.c
src/lib-storage/index/mbox/mbox-sync.c
src/lib-storage/index/raw/raw-sync.c
src/plugins/virtual/virtual-sync.c

index b0a1a31f286cdeca839b4c154b6c9fc987c9b766..2b69132a420cea0d6933bd078fc8f17e360ba63e 100644 (file)
@@ -117,7 +117,7 @@ int cydir_sync_begin(struct cydir_mailbox *mbox,
        ctx->mbox = mbox;
 
        sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
-       if (!mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
        if (!force)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
index e1026b195341e5060218060d6b2638ee90f4d078..28611ac0d38d623864d6adc67b687e7a935f9ae1 100644 (file)
@@ -245,7 +245,7 @@ int dbox_sync_begin(struct dbox_mailbox *mbox, enum dbox_sync_flags flags,
        ctx->mbox = mbox;
        ctx->flags = flags;
 
-       if (!mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
        if (!rebuild && (flags & DBOX_SYNC_FLAG_FORCE) == 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
index 964881588dd70dab9e480d61e264f8ced7195289..8a31a3535ee01b82feccec1bda993f03983f9939 100644 (file)
@@ -483,8 +483,6 @@ void index_storage_mailbox_alloc(struct index_mailbox *ibox, const char *name,
 
        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;
 
        ibox->next_lock_notify = time(NULL) + LOCK_NOTIFY_INTERVAL;
        ibox->commit_log_file_seq = 0;
index 70d0b20aa6864df0f483b74f5343fe2de8c20cf1..cffece56edb798f00424513a8bd84ea6d0af4513 100644 (file)
@@ -50,8 +50,6 @@ struct index_mailbox {
 
        /* we've discovered there aren't enough permissions to modify mailbox */
        unsigned int backend_readonly:1;
-       unsigned int keep_recent:1;
-       unsigned int keep_locked:1;
        unsigned int sent_diskspace_warning:1;
        unsigned int sent_readonly_flags_warning:1;
        unsigned int notify_pending:1;
index 8aa8bb91fea72a37605a8d7e8c75acadbff56b6e..acad07159c3784c4d11f976196110fac500a46f7 100644 (file)
@@ -326,7 +326,8 @@ int index_mailbox_sync_deinit(struct mailbox_sync_context *_ctx,
        }
        index_mailbox_expunge_unseen_recent(ctx);
 
-       if (ibox->keep_recent && ibox->box.opened) {
+       if ((ibox->box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
+           ibox->box.opened) {
                /* mailbox syncing didn't necessarily update our recent state */
                hdr = mail_index_get_header(ibox->view);
                if (hdr->first_recent_uid > ibox->recent_flags_prev_uid) {
index 65ef6916f21a45d402f41c1a096869c2c20166eb..0528b1c1437a89b7a9e639498bab31a3f10828a9 100644 (file)
@@ -678,7 +678,7 @@ maildir_save_sync_index(struct maildir_save_context *ctx)
                        index_mailbox_set_recent_uid(&mbox->ibox, uid);
        }
 
-       if (!mbox->ibox.keep_recent) {
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
                /* maildir_sync_index() dropped recent flags from
                   existing messages. we'll still need to drop recent
                   flags from these newly added messages. */
index 766fefa0c1a9a3a96fd0eaa573f98003b42041d0..8ec6741423b28a85e2c4a66ba0b8e1a62a988ff5 100644 (file)
@@ -225,7 +225,8 @@ int maildir_sync_index_begin(struct maildir_mailbox *mbox,
 
        sync_flags = 0;
        /* don't drop recent messages if we're saving messages */
-       if (!mbox->ibox.keep_recent && maildir_sync_ctx != NULL)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+           maildir_sync_ctx != NULL)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
        if (mail_index_sync_begin(mbox->ibox.index, &sync_ctx, &view, &trans,
index 0918e43af16d4ab2d420dd70b3c9b4a7032b8255..96ae6a8def279504e85d9ba0b642a21851a3d696 100644 (file)
@@ -420,7 +420,8 @@ maildir_scan_dir(struct maildir_sync_context *ctx, bool new_dir, bool final)
        dest = t_str_new(1024);
 
        move_new = new_dir && !mailbox_is_readonly(&ctx->mbox->ibox.box) &&
-               !ctx->mbox->ibox.keep_recent && ctx->locked;
+               (ctx->mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+               ctx->locked;
 
        errno = 0;
        for (; (dp = readdir(dirp)) != NULL; errno = 0) {
@@ -669,11 +670,11 @@ static bool have_recent_messages(struct maildir_sync_context *ctx)
 static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
                                    bool *new_changed_r, bool *cur_changed_r)
 {
+       struct maildir_mailbox *mbox = ctx->mbox;
        enum mail_index_sync_flags flags = 0;
        bool undirty = (ctx->flags & MAILBOX_SYNC_FLAG_FULL_READ) != 0;
 
-       if (maildir_sync_quick_check(ctx->mbox, undirty,
-                                    ctx->new_dir, ctx->cur_dir,
+       if (maildir_sync_quick_check(mbox, undirty, ctx->new_dir, ctx->cur_dir,
                                     new_changed_r, cur_changed_r) < 0)
                return -1;
 
@@ -681,7 +682,7 @@ static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
                return 1;
 
        if (have_recent_messages(ctx)) {
-               if (!ctx->mbox->ibox.keep_recent) {
+               if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
                        *new_changed_r = TRUE;
                        return 1;
                } else if (*new_changed_r) {
@@ -694,10 +695,10 @@ static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
                }
        }
 
-       if (!ctx->mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
-       return mail_index_sync_have_any(ctx->mbox->ibox.index, flags) ? 1 : 0;
+       return mail_index_sync_have_any(mbox->ibox.index, flags) ? 1 : 0;
 }
 
 static int maildir_sync_context(struct maildir_sync_context *ctx, bool forced,
@@ -934,7 +935,7 @@ maildir_storage_sync_init(struct mailbox *box, enum mailbox_sync_flags flags)
                } T_END;
 
                i_assert(!maildir_uidlist_is_locked(mbox->uidlist) ||
-                        mbox->ibox.keep_locked);
+                        (box->flags & MAILBOX_FLAG_KEEP_LOCKED) != 0);
 
                if (lost_files) {
                        /* lost some files from new/, see if thery're in cur/ */
index 46c5b3e97b5777a5da9d9c1d56fc8974594cf69f..9149cbc325bf2ec5026a6ab5fb77e07f3ca45dab 100644 (file)
@@ -95,7 +95,8 @@ static void mbox_file_fix_atime(struct mbox_mailbox *mbox)
        struct utimbuf buf;
        struct stat st;
 
-       if (mbox->ibox.recent_flags_count > 0 && mbox->ibox.keep_recent &&
+       if (mbox->ibox.recent_flags_count > 0 &&
+           (mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
            mbox->mbox_fd != -1 && !mbox->ibox.backend_readonly) {
                /* we've seen recent messages which we want to keep recent.
                   keep file's atime lower than mtime so \Marked status
index 3b345d553c543250b656b98ff9910b02d535c189..ad8dc51656e36b04f9d22fe64b47a5302a4efd4a 100644 (file)
@@ -138,6 +138,7 @@ struct mbox_sync_context {
        unsigned int first_mail_crlf_expunged:1;
 
        /* global flags: */
+       unsigned int keep_recent:1;
        unsigned int delay_writes:1;
        unsigned int renumber_uids:1;
        unsigned int moved_offsets:1;
index a45ee2bd28ff90b1d1b7962806c59b7934a2d857..bc250570ffded0a85eb9bf56d6b1aa0abbe00f9e 100644 (file)
@@ -382,7 +382,7 @@ static void mbox_sync_update_header_real(struct mbox_sync_mail_context *ctx)
 {
        i_assert(ctx->mail.uid != 0 || ctx->mail.pseudo);
 
-       if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+       if (!ctx->sync_ctx->keep_recent)
                ctx->mail.flags &= ~MAIL_RECENT;
 
        mbox_sync_update_status(ctx);
@@ -412,7 +412,7 @@ mbox_sync_update_header_from_real(struct mbox_sync_mail_context *ctx,
            (ctx->mail.flags & MAIL_RECENT) != 0) {
                ctx->mail.flags = (ctx->mail.flags & ~STATUS_FLAGS_MASK) |
                        (mail->flags & STATUS_FLAGS_MASK);
-               if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+               if (!ctx->sync_ctx->keep_recent)
                         ctx->mail.flags &= ~MAIL_RECENT;
                mbox_sync_update_status(ctx);
        }
index 741f0aef2e864137055a45fa35508372cb42f8ae..f7019f11a22e8a351a7a9e8aef37c91dc9394c52 100644 (file)
@@ -157,7 +157,7 @@ mbox_sync_read_next_mail(struct mbox_sync_context *sync_ctx,
 
        if ((mail_ctx->mail.flags & MAIL_RECENT) != 0 &&
            !mail_ctx->mail.pseudo) {
-               if (!sync_ctx->mbox->ibox.keep_recent) {
+               if (!sync_ctx->keep_recent) {
                        /* need to add 'O' flag to Status-header */
                        mail_ctx->need_rewrite = TRUE;
                }
@@ -913,7 +913,7 @@ static int mbox_sync_partial_seek_next(struct mbox_sync_context *sync_ctx,
                return 1;
 
        if (sync_ctx->hdr->first_recent_uid <= next_uid &&
-           !sync_ctx->mbox->ibox.keep_recent) {
+           !sync_ctx->keep_recent) {
                /* we'll need to rewrite Status: O headers */
                return 1;
        }
@@ -922,7 +922,7 @@ static int mbox_sync_partial_seek_next(struct mbox_sync_context *sync_ctx,
 
        if (sync_ctx->hdr->first_recent_uid < sync_ctx->hdr->next_uid &&
            (uid > sync_ctx->hdr->first_recent_uid || uid == 0) &&
-           !sync_ctx->mbox->ibox.keep_recent) {
+           !sync_ctx->keep_recent) {
                /* we'll need to rewrite Status: O headers */
                uid = sync_ctx->hdr->first_recent_uid;
        }
@@ -1469,7 +1469,7 @@ static int mbox_sync_update_index_header(struct mbox_sync_context *sync_ctx)
        }
        mail_index_view_close(&view);
 
-       first_recent_uid = !sync_ctx->mbox->ibox.keep_recent ?
+       first_recent_uid = !sync_ctx->keep_recent ?
                sync_ctx->next_uid : sync_ctx->last_nonrecent_uid + 1;
        if (sync_ctx->hdr->first_recent_uid < first_recent_uid) {
                mail_index_update_header(sync_ctx->t,
@@ -1771,7 +1771,7 @@ again:
        }
 
        sync_flags = 0;
-       if (!mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
        if ((flags & MBOX_SYNC_REWRITE) != 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
@@ -1792,7 +1792,7 @@ again:
                return ret;
        }
 
-       if (!mbox->ibox.keep_recent) {
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
                /* see if we need to drop recent flags */
                sync_ctx.hdr = mail_index_get_header(sync_view);
                if (sync_ctx.hdr->first_recent_uid < sync_ctx.hdr->next_uid)
@@ -1813,6 +1813,8 @@ again:
 
        memset(&sync_ctx, 0, sizeof(sync_ctx));
        sync_ctx.mbox = mbox;
+       sync_ctx.keep_recent =
+               (mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
 
        sync_ctx.hdr = mail_index_get_header(sync_view);
        sync_ctx.from_line = str_new(default_pool, 256);
@@ -1888,7 +1890,7 @@ again:
        sync_ctx.t = NULL;
        sync_ctx.index_sync_ctx = NULL;
 
-       if (ret == 0 && mbox->mbox_fd != -1 && mbox->ibox.keep_recent &&
+       if (ret == 0 && mbox->mbox_fd != -1 && sync_ctx.keep_recent &&
            !sync_ctx.mbox->ibox.backend_readonly) {
                /* try to set atime back to its original value */
                struct utimbuf buf;
index f2f77e03cb815122668081f2262f23d057cefec5..e50ddb5503dcb349f78bad90f6983f1fb3f99d55 100644 (file)
@@ -18,7 +18,7 @@ static int raw_sync(struct raw_mailbox *mbox)
 
        sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
                MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
-       if (!mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
        ret = mail_index_sync_begin(mbox->ibox.index, &index_sync_ctx,
index 613c0f326a9e562fbfdbdf47b52c3bcae63c8ac1..8b80915ab018713559a69b4fd74ab75a3b332050 100644 (file)
@@ -1448,7 +1448,7 @@ static int virtual_sync(struct virtual_mailbox *mbox,
 
        index_sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
                MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES;
-       if (!mbox->ibox.keep_recent)
+       if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
                index_sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
        ret = mail_index_sync_begin(ctx->index, &ctx->index_sync_ctx,