dovecot-2.0: virtual: Fixed saving multiple mails in a transacti...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Jan 4 11:55:38 EET 2011
details: http://hg.dovecot.org/dovecot-2.0/rev/3216c3883a7b
changeset: 12542:3216c3883a7b
user: Timo Sirainen <tss at iki.fi>
date: Tue Jan 04 11:55:36 2011 +0200
description:
virtual: Fixed saving multiple mails in a transaction (e.g. copy multiple messages).
diffstat:
src/plugins/virtual/virtual-save.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diffs (30 lines):
diff -r b8896cfa38cb -r 3216c3883a7b src/plugins/virtual/virtual-save.c
--- a/src/plugins/virtual/virtual-save.c Tue Jan 04 11:44:07 2011 +0200
+++ b/src/plugins/virtual/virtual-save.c Tue Jan 04 11:55:36 2011 +0200
@@ -21,18 +21,20 @@
struct mailbox_transaction_context *backend_trans;
struct virtual_save_context *ctx;
- if (_t->save_ctx != NULL)
- return _t->save_ctx;
-
- ctx = i_new(struct virtual_save_context, 1);
- ctx->ctx.transaction = &t->ictx.mailbox_ctx;
+ if (_t->save_ctx == NULL) {
+ ctx = i_new(struct virtual_save_context, 1);
+ ctx->ctx.transaction = &t->ictx.mailbox_ctx;
+ _t->save_ctx = &ctx->ctx;
+ } else {
+ ctx = (struct virtual_save_context *)_t->save_ctx;
+ }
if (mbox->save_bbox != NULL) {
+ i_assert(ctx->backend_save_ctx == NULL);
backend_trans =
virtual_transaction_get(_t, mbox->save_bbox->box);
ctx->backend_save_ctx = mailbox_save_alloc(backend_trans);
}
- _t->save_ctx = &ctx->ctx;
return _t->save_ctx;
}
More information about the dovecot-cvs
mailing list