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.
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;
}
struct mail_vfuncs virtual_mail_vfuncs = {
- NULL,
+ virtual_mail_close,
virtual_mail_free,
virtual_mail_set_seq,
virtual_mail_set_uid,