Lines Matching refs:vmail

32 	struct virtual_mail *vmail;
35 pool = pool_alloconly_create("vmail", 1024);
36 vmail = p_new(pool, struct virtual_mail, 1);
37 vmail->imail.mail.pool = pool;
38 vmail->imail.mail.data_pool =
40 vmail->imail.mail.v = virtual_mail_vfuncs;
41 vmail->imail.mail.mail.box = t->box;
42 vmail->imail.mail.mail.transaction = t;
43 array_create(&vmail->imail.mail.module_contexts, pool,
46 vmail->imail.ibox = INDEX_STORAGE_CONTEXT(t->box);
48 vmail->wanted_fields = wanted_fields;
50 vmail->wanted_headers = wanted_headers;
54 i_array_init(&vmail->backend_mails, array_count(&mbox->backend_boxes));
55 return &vmail->imail.mail.mail;
60 struct virtual_mail *vmail = (struct virtual_mail *)mail;
64 mails = array_get_modifiable(&vmail->backend_mails, &count);
75 struct virtual_mail *vmail = (struct virtual_mail *)mail;
79 mails = array_get_modifiable(&vmail->backend_mails, &count);
82 array_free(&vmail->backend_mails);
84 mailbox_header_lookup_unref(&vmail->wanted_headers);
86 pool_unref(&vmail->imail.mail.data_pool);
87 pool_unref(&vmail->imail.mail.pool);
91 backend_mail_find(struct virtual_mail *vmail, struct mailbox *box)
96 mails = array_get(&vmail->backend_mails, &count);
104 static int backend_mail_get(struct virtual_mail *vmail,
107 struct mail *mail = &vmail->imail.mail.mail;
113 if (vmail->cur_backend_mail != NULL) {
114 if (vmail->cur_lost) {
115 mail_set_expunged(&vmail->imail.mail.mail);
118 *backend_mail_r = vmail->cur_backend_mail;
122 bbox = virtual_backend_box_lookup(mbox, vmail->cur_vrec.mailbox_id);
125 vmail->cur_backend_mail = backend_mail_find(vmail, bbox->box);
126 if (vmail->cur_backend_mail == NULL) {
133 i_assert(vmail->cur_backend_mail != NULL);
136 vmail->cur_lost = !mail_set_uid(vmail->cur_backend_mail,
137 vmail->cur_vrec.real_uid);
138 mail->expunged = vmail->cur_lost || vmail->cur_backend_mail->expunged;
139 if (vmail->cur_lost) {
140 mail_set_expunged(&vmail->imail.mail.mail);
143 *backend_mail_r = vmail->cur_backend_mail;
151 struct virtual_mail *vmail = (struct virtual_mail *)mail;
160 backend_headers = vmail->wanted_headers == NULL ? NULL :
162 vmail->wanted_headers->name);
163 vmail->cur_backend_mail =
164 mail_alloc(backend_trans, vmail->wanted_fields, backend_headers);
167 backend_pmail = (struct mail_private *)vmail->cur_backend_mail;
168 backend_pmail->vmail = mail;
169 array_append(&vmail->backend_mails, &vmail->cur_backend_mail, 1);
170 return vmail->cur_backend_mail;
176 struct virtual_mail *vmail = (struct virtual_mail *)mail;
179 vmail->cur_backend_mail = backend_mail;
182 backend_pmail->vmail = mail;
187 struct virtual_mail *vmail = (struct virtual_mail *)mail;
195 memcpy(&vmail->cur_vrec, data, sizeof(vmail->cur_vrec));
197 i_zero(&vmail->imail.data);
198 p_clear(vmail->imail.mail.data_pool);
200 vmail->imail.data.seq = seq;
204 vmail->cur_backend_mail = NULL;
220 struct virtual_mail *vmail = (struct virtual_mail *)mail;
224 if (backend_mail_get(vmail, &backend_mail) < 0)
232 struct virtual_mail *vmail = (struct virtual_mail *)mail;
236 if (backend_mail_get(vmail, &backend_mail) < 0)
244 struct virtual_mail *vmail = (struct virtual_mail *)mail;
248 if (backend_mail_get(vmail, &backend_mail) < 0)
259 struct virtual_mail *vmail = (struct virtual_mail *)mail;
263 if (backend_mail_get(vmail, &backend_mail) < 0)
272 struct virtual_mail *vmail = (struct virtual_mail *)mail;
275 if (backend_mail_get(vmail, &backend_mail) < 0)
287 struct virtual_mail *vmail = (struct virtual_mail *)mail;
294 if (backend_mail_get(vmail, &backend_mail) < 0)
305 struct virtual_mail *vmail = (struct virtual_mail *)mail;
308 if (backend_mail_get(vmail, &backend_mail) < 0)
319 struct virtual_mail *vmail = (struct virtual_mail *)mail;
322 if (backend_mail_get(vmail, &backend_mail) < 0)
333 struct virtual_mail *vmail = (struct virtual_mail *)mail;
336 if (backend_mail_get(vmail, &backend_mail) < 0)
347 struct virtual_mail *vmail = (struct virtual_mail *)mail;
350 if (backend_mail_get(vmail, &backend_mail) < 0)
363 struct virtual_mail *vmail = (struct virtual_mail *)mail;
368 if (backend_mail_get(vmail, &backend_mail) < 0)
384 struct virtual_mail *vmail = (struct virtual_mail *)mail;
388 if (backend_mail_get(vmail, &backend_mail) < 0)
403 struct virtual_mail *vmail = (struct virtual_mail *)mail;
408 if (backend_mail_get(vmail, &backend_mail) < 0)
428 struct virtual_mail *vmail = (struct virtual_mail *)mail;
435 if (backend_mail_get(vmail, &backend_mail) < 0)
460 struct virtual_mail *vmail = (struct virtual_mail *)mail;
463 if (backend_mail_get(vmail, &backend_mail) < 0)
479 struct virtual_mail *vmail = (struct virtual_mail *)mail;
482 if (backend_mail_get(vmail, &backend_mail) < 0)
494 struct virtual_mail *vmail = (struct virtual_mail *)mail;
497 if (backend_mail_get(vmail, &backend_mail) < 0)
507 struct virtual_mail *vmail = (struct virtual_mail *)mail;
510 if (backend_mail_get(vmail, &backend_mail) < 0)
517 struct virtual_mail *vmail = (struct virtual_mail *)mail;
520 if (backend_mail_get(vmail, &backend_mail) < 0)
530 struct virtual_mail *vmail = (struct virtual_mail *)mail;
533 if (backend_mail_get(vmail, &backend_mail) < 0)