Mercurial > dovecot > core-2.2
changeset 19994:c497744ad9ba
virtual plugin: struct mail_vfuncs.close() wasn't implemented.
This wasn't a problem normally, because the core code wouldn't try to call
this. It became a problem only after other plugins were trying to call it.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 07 Apr 2016 17:50:28 +0300 |
parents | 9e844498398e |
children | 8891fcb7ea87 |
files | src/plugins/virtual/virtual-mail.c |
diffstat | 1 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-mail.c Thu Apr 07 16:35:28 2016 +0300 +++ b/src/plugins/virtual/virtual-mail.c Thu Apr 07 17:50:28 2016 +0300 @@ -55,6 +55,21 @@ return &vmail->imail.mail.mail; } +static void virtual_mail_close(struct mail *mail) +{ + struct virtual_mail *vmail = (struct virtual_mail *)mail; + struct mail **mails; + unsigned int i, count; + + mails = array_get_modifiable(&vmail->backend_mails, &count); + for (i = 0; i < count; i++) { + struct mail_private *p = (struct mail_private *)mails[i]; + + p->v.close(mails[i]); + } + index_mail_close(mail); +} + static void virtual_mail_free(struct mail *mail) { struct virtual_mail *vmail = (struct virtual_mail *)mail; @@ -487,7 +502,7 @@ } struct mail_vfuncs virtual_mail_vfuncs = { - NULL, + virtual_mail_close, virtual_mail_free, virtual_mail_set_seq, virtual_mail_set_uid,