Skip to content

Commit

Permalink
virtual: Fix saving to a virtual mailbox to work again
Browse files Browse the repository at this point in the history
Previous changes broke it.
  • Loading branch information
sirainen authored and GitLab committed Feb 14, 2017
1 parent 880f7a0 commit 8eba883
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
12 changes: 12 additions & 0 deletions src/plugins/virtual/virtual-mail.c
Expand Up @@ -172,6 +172,18 @@ virtual_mail_set_backend_mail(struct mail *mail,
return vmail->cur_backend_mail;
}

void virtual_mail_set_unattached_backend_mail(struct mail *mail,
struct mail *backend_mail)
{
struct virtual_mail *vmail = (struct virtual_mail *)mail;
struct mail_private *backend_pmail;

vmail->cur_backend_mail = backend_mail;

backend_pmail = (struct mail_private *)backend_mail;
backend_pmail->vmail = mail;
}

static void virtual_mail_set_seq(struct mail *mail, uint32_t seq, bool saving)
{
struct virtual_mail *vmail = (struct virtual_mail *)mail;
Expand Down
7 changes: 2 additions & 5 deletions src/plugins/virtual/virtual-save.c
Expand Up @@ -79,10 +79,7 @@ virtual_copy_keywords(struct mailbox *src_box,
int virtual_save_begin(struct mail_save_context *_ctx, struct istream *input)
{
struct virtual_save_context *ctx = (struct virtual_save_context *)_ctx;
struct virtual_mailbox *mbox =
(struct virtual_mailbox *)_ctx->transaction->box;
struct mail_save_data *mdata = &_ctx->data;
struct mail *mail;

if (ctx->backend_save_ctx == NULL) {
if (ctx->open_errstr != NULL) {
Expand Down Expand Up @@ -113,8 +110,8 @@ int virtual_save_begin(struct mail_save_context *_ctx, struct istream *input)
mailbox_save_set_guid(ctx->backend_save_ctx, mdata->guid);
mailbox_save_set_min_modseq(ctx->backend_save_ctx, mdata->min_modseq);

mail = virtual_mail_set_backend_mail(_ctx->dest_mail, mbox->save_bbox);
mailbox_save_set_dest_mail(ctx->backend_save_ctx, mail);
virtual_mail_set_unattached_backend_mail(_ctx->dest_mail,
ctx->backend_save_ctx->dest_mail);
return mailbox_save_begin(&ctx->backend_save_ctx, input);
}

Expand Down
2 changes: 2 additions & 0 deletions src/plugins/virtual/virtual-storage.h
Expand Up @@ -195,6 +195,8 @@ virtual_mail_alloc(struct mailbox_transaction_context *t,
struct mail *
virtual_mail_set_backend_mail(struct mail *mail,
struct virtual_backend_box *bbox);
void virtual_mail_set_unattached_backend_mail(struct mail *mail,
struct mail *backend_mail);

struct mailbox_sync_context *
virtual_storage_sync_init(struct mailbox *box, enum mailbox_sync_flags flags);
Expand Down

0 comments on commit 8eba883

Please sign in to comment.