]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Removed some code duplication.
authorTimo Sirainen <tss@iki.fi>
Mon, 15 Feb 2010 00:13:14 +0000 (02:13 +0200)
committerTimo Sirainen <tss@iki.fi>
Mon, 15 Feb 2010 00:13:14 +0000 (02:13 +0200)
--HG--
branch : HEAD

src/lib-storage/index/cydir/cydir-save.c
src/lib-storage/index/dbox-multi/mdbox-save.c
src/lib-storage/index/dbox-single/sdbox-save.c
src/lib-storage/index/maildir/maildir-copy.c
src/lib-storage/index/maildir/maildir-save.c
src/lib-storage/index/mbox/mbox-save.c
src/lib-storage/mail-storage.c

index 512d708d611b1d0d388cccdbed5b20d3d5493296..f9927bd8efdae7c99ba73cd4e15e15663e985fd8 100644 (file)
@@ -84,11 +84,6 @@ int cydir_save_begin(struct mail_save_context *_ctx, struct istream *input)
        enum mail_flags save_flags;
        struct istream *crlf_input;
 
-       if (mail_index_is_deleted(trans->box->index)) {
-               mailbox_set_deleted(trans->box);
-               return -1;
-       }
-
        T_BEGIN {
                const char *path;
 
index fc01afb0bf8bf7643c9d0cf4c9f518d34b83ee7a..e7868a321d30e0365fb3d1a086906409b10fa492 100644 (file)
@@ -97,11 +97,6 @@ int mdbox_save_begin(struct mail_save_context *_ctx, struct istream *input)
        struct dbox_save_mail *save_mail;
        uoff_t mail_size, append_offset;
 
-       if (mail_index_is_deleted(_ctx->transaction->box->index)) {
-               mailbox_set_deleted(_ctx->transaction->box);
-               return -1;
-       }
-
        /* get the size of the mail to be saved, if possible */
        if (i_stream_get_size(input, TRUE, &mail_size) <= 0) {
                const struct stat *st;
index b9c930007cc19288d44aef63477a2822f7653672..d9dcb338de62b1d2858be87ed7f9d622459cfe71 100644 (file)
@@ -78,11 +78,6 @@ int sdbox_save_begin(struct mail_save_context *_ctx, struct istream *input)
        struct dbox_file *file;
        int ret;
 
-       if (mail_index_is_deleted(_ctx->transaction->box->index)) {
-               mailbox_set_deleted(_ctx->transaction->box);
-               return -1;
-       }
-
        file = sdbox_file_init(ctx->mbox, 0);
        ctx->append_ctx = dbox_file_append_init(file);
        ret = dbox_file_get_append_stream(ctx->append_ctx,
index 175c40e2c5f6a807fd448c1225b544003ed06b27..179e1b6dbfe120243cd2e508bb9ecfb58307b854 100644 (file)
@@ -170,11 +170,6 @@ maildir_copy_hardlink(struct mail_save_context *ctx, struct mail *mail)
                return 0;
        }
 
-       if (mail_index_is_deleted(dest_mbox->box.index)) {
-               mailbox_set_deleted(&dest_mbox->box);
-               return -1;
-       }
-
        memset(&do_ctx, 0, sizeof(do_ctx));
        do_ctx.dest_path = str_new(default_pool, 512);
 
index 34435c5b6f66be585758086a75dd907a2b9b6467..cbbd91482475b0a1cbdf297b075bea9eedd56f89 100644 (file)
@@ -305,11 +305,6 @@ static int maildir_create_tmp(struct maildir_mailbox *mbox, const char *dir,
        string_t *path;
        int fd;
 
-       if (mail_index_is_deleted(mbox->box.index)) {
-               mailbox_set_deleted(box);
-               return -1;
-       }
-
        path = t_str_new(256);
        str_append(path, dir);
        str_append_c(path, '/');
index 9342adcf814e850957bdec6b29c8190f83528cde..18a2ce084d7549b09d4221434c33a8dc61a620e8 100644 (file)
@@ -261,11 +261,6 @@ mbox_save_init_file(struct mbox_save_context *ctx,
                return -1;
        }
 
-       if (mail_index_is_deleted(mbox->box.index)) {
-               mailbox_set_deleted(&mbox->box);
-               return -1;
-       }
-
        if ((_t->flags & MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS) != 0 ||
            ctx->ctx.uid != 0)
                want_mail = TRUE;
index bc9accb1de216d3fc9efa3bca83e27ffc73a1ea3..aaf9e2ad1966305bd022af45f3d747b111c22152 100644 (file)
@@ -1188,6 +1188,11 @@ int mailbox_save_begin(struct mail_save_context **ctx, struct istream *input)
        struct mailbox *box = (*ctx)->transaction->box;
        int ret;
 
+       if (mail_index_is_deleted(box->index)) {
+               mailbox_set_deleted(box);
+               return -1;
+       }
+
        if (box->v.save_begin == NULL) {
                mail_storage_set_error(box->storage, MAIL_ERROR_NOTPOSSIBLE,
                                       "Saving messages not supported");
@@ -1242,6 +1247,13 @@ int mailbox_copy(struct mail_save_context **_ctx, struct mail *mail)
        int ret;
 
        *_ctx = NULL;
+
+       if (mail_index_is_deleted(box->index)) {
+               mailbox_set_deleted(box);
+               mailbox_save_cancel(_ctx);
+               return -1;
+       }
+
        ret = ctx->transaction->box->v.copy(ctx, mail);
        if (keywords != NULL)
                mailbox_keywords_unref(box, &keywords);