From: Timo Sirainen Date: Mon, 15 Feb 2010 00:13:14 +0000 (+0200) Subject: lib-storage: Removed some code duplication. X-Git-Tag: 2.0.beta3~81 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=099a6b509dc3fc68e662b6736f03b73eb575c527;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Removed some code duplication. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/cydir/cydir-save.c b/src/lib-storage/index/cydir/cydir-save.c index 512d708d61..f9927bd8ef 100644 --- a/src/lib-storage/index/cydir/cydir-save.c +++ b/src/lib-storage/index/cydir/cydir-save.c @@ -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; diff --git a/src/lib-storage/index/dbox-multi/mdbox-save.c b/src/lib-storage/index/dbox-multi/mdbox-save.c index fc01afb0bf..e7868a321d 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-save.c +++ b/src/lib-storage/index/dbox-multi/mdbox-save.c @@ -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; diff --git a/src/lib-storage/index/dbox-single/sdbox-save.c b/src/lib-storage/index/dbox-single/sdbox-save.c index b9c930007c..d9dcb338de 100644 --- a/src/lib-storage/index/dbox-single/sdbox-save.c +++ b/src/lib-storage/index/dbox-single/sdbox-save.c @@ -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, diff --git a/src/lib-storage/index/maildir/maildir-copy.c b/src/lib-storage/index/maildir/maildir-copy.c index 175c40e2c5..179e1b6dbf 100644 --- a/src/lib-storage/index/maildir/maildir-copy.c +++ b/src/lib-storage/index/maildir/maildir-copy.c @@ -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); diff --git a/src/lib-storage/index/maildir/maildir-save.c b/src/lib-storage/index/maildir/maildir-save.c index 34435c5b6f..cbbd914824 100644 --- a/src/lib-storage/index/maildir/maildir-save.c +++ b/src/lib-storage/index/maildir/maildir-save.c @@ -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, '/'); diff --git a/src/lib-storage/index/mbox/mbox-save.c b/src/lib-storage/index/mbox/mbox-save.c index 9342adcf81..18a2ce084d 100644 --- a/src/lib-storage/index/mbox/mbox-save.c +++ b/src/lib-storage/index/mbox/mbox-save.c @@ -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; diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index bc9accb1de..aaf9e2ad19 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -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);