dovecot-1.1: mailbox.save_init: Keep ctx->dest_mail correctly up...

dovecot at dovecot.org dovecot at dovecot.org
Sun Jul 20 23:53:07 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.1/rev/8dc6541b4426
changeset: 7780:8dc6541b4426
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Jul 20 23:53:03 2008 +0300
description:
mailbox.save_init: Keep ctx->dest_mail correctly updated.

diffstat:

2 files changed, 8 insertions(+), 6 deletions(-)
src/lib-storage/mail-storage.c    |    3 ++-
src/plugins/quota/quota-storage.c |   11 ++++++-----

diffs (46 lines):

diff -r 0e2d3dbd2872 -r 8dc6541b4426 src/lib-storage/mail-storage.c
--- a/src/lib-storage/mail-storage.c	Sun Jul 20 23:03:09 2008 +0300
+++ b/src/lib-storage/mail-storage.c	Sun Jul 20 23:53:03 2008 +0300
@@ -721,7 +721,8 @@ int mailbox_save_init(struct mailbox_tra
 				from_envelope, input, dest_mail, ctx_r) < 0)
 		return -1;
 
-	(*ctx_r)->dest_mail = dest_mail;
+	if (dest_mail != NULL)
+		(*ctx_r)->dest_mail = dest_mail;
 	return 0;
 }
 
diff -r 0e2d3dbd2872 -r 8dc6541b4426 src/plugins/quota/quota-storage.c
--- a/src/plugins/quota/quota-storage.c	Sun Jul 20 23:03:09 2008 +0300
+++ b/src/plugins/quota/quota-storage.c	Sun Jul 20 23:53:03 2008 +0300
@@ -233,23 +233,24 @@ quota_save_init(struct mailbox_transacti
 		dest_mail = qt->tmp_mail;
 	}
 
-	return qbox->module_ctx.super.
+	if (qbox->module_ctx.super.
 		save_init(t, flags, keywords, received_date,
 			  timezone_offset, from_envelope,
-			  input, dest_mail, ctx_r);
+			  input, dest_mail, ctx_r) < 0)
+		return -1;
+	(*ctx_r)->dest_mail = dest_mail;
+	return 0;
 }
 
 static int quota_save_finish(struct mail_save_context *ctx)
 {
-	struct quota_transaction_context *qt = QUOTA_CONTEXT(ctx->transaction);
 	struct quota_mailbox *qbox = QUOTA_CONTEXT(ctx->transaction->box);
 
 	if (qbox->module_ctx.super.save_finish(ctx) < 0)
 		return -1;
 
 	qbox->save_hack = TRUE;
-	return quota_check(ctx->transaction, ctx->dest_mail != NULL ?
-			   ctx->dest_mail : qt->tmp_mail);
+	return quota_check(ctx->transaction, ctx->dest_mail);
 }
 
 static void quota_mailbox_sync_finish(struct quota_mailbox *qbox)


More information about the dovecot-cvs mailing list