Lines Matching refs:mail

5 #include "index-mail.h"
15 /* currently active mail */
16 struct mail *cur_backend_mail;
20 ARRAY(struct mail *) backend_mails;
22 /* mail is lost if backend_mail doesn't point to correct mail */
26 struct mail *
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,
55 return &vmail->imail.mail.mail;
58 static void virtual_mail_close(struct mail *mail)
60 struct virtual_mail *vmail = (struct virtual_mail *)mail;
61 struct mail **mails;
70 index_mail_close(mail);
73 static void virtual_mail_free(struct mail *mail)
75 struct virtual_mail *vmail = (struct virtual_mail *)mail;
76 struct mail **mails;
86 pool_unref(&vmail->imail.mail.data_pool);
87 pool_unref(&vmail->imail.mail.pool);
90 static struct mail *
93 struct mail *const *mails;
105 struct mail **backend_mail_r)
107 struct mail *mail = &vmail->imail.mail.mail;
108 struct virtual_mailbox *mbox = (struct virtual_mailbox *)mail->box;
115 mail_set_expunged(&vmail->imail.mail.mail);
129 virtual_box_copy_error(mail->box, bbox->box);
132 (void)virtual_mail_set_backend_mail(mail, bbox);
138 mail->expunged = vmail->cur_lost || vmail->cur_backend_mail->expunged;
140 mail_set_expunged(&vmail->imail.mail.mail);
147 struct mail *
148 virtual_mail_set_backend_mail(struct mail *mail,
151 struct virtual_mail *vmail = (struct virtual_mail *)mail;
158 backend_trans = virtual_transaction_get(mail->transaction, bbox->box);
168 backend_pmail->vmail = mail;
173 void virtual_mail_set_unattached_backend_mail(struct mail *mail,
174 struct mail *backend_mail)
176 struct virtual_mail *vmail = (struct virtual_mail *)mail;
182 backend_pmail->vmail = mail;
185 static void virtual_mail_set_seq(struct mail *mail, uint32_t seq, bool saving)
187 struct virtual_mail *vmail = (struct virtual_mail *)mail;
188 struct virtual_mailbox *mbox = (struct virtual_mailbox *)mail->box;
193 mail_index_lookup_ext(mail->transaction->view, seq,
198 p_clear(vmail->imail.mail.data_pool);
201 mail->seq = seq;
202 mail_index_lookup_uid(mail->transaction->view, seq, &mail->uid);
207 static bool virtual_mail_set_uid(struct mail *mail, uint32_t uid)
211 if (!mail_index_lookup_seq(mail->transaction->view, uid, &seq))
214 virtual_mail_set_seq(mail, seq, FALSE);
218 static void virtual_mail_set_uid_cache_updates(struct mail *mail, bool set)
220 struct virtual_mail *vmail = (struct virtual_mail *)mail;
221 struct mail *backend_mail;
230 static bool virtual_mail_prefetch(struct mail *mail)
232 struct virtual_mail *vmail = (struct virtual_mail *)mail;
233 struct mail *backend_mail;
242 static void virtual_mail_precache(struct mail *mail)
244 struct virtual_mail *vmail = (struct virtual_mail *)mail;
245 struct mail *backend_mail;
255 virtual_mail_add_temp_wanted_fields(struct mail *mail,
259 struct virtual_mail *vmail = (struct virtual_mail *)mail;
260 struct mail *backend_mail;
270 virtual_mail_get_parts(struct mail *mail, struct message_part **parts_r)
272 struct virtual_mail *vmail = (struct virtual_mail *)mail;
273 struct mail *backend_mail;
278 virtual_box_copy_error(mail->box, backend_mail->box);
285 virtual_mail_get_date(struct mail *mail, time_t *date_r, int *timezone_r)
287 struct virtual_mail *vmail = (struct virtual_mail *)mail;
288 struct mail *backend_mail;
297 virtual_box_copy_error(mail->box, backend_mail->box);
303 static int virtual_mail_get_received_date(struct mail *mail, time_t *date_r)
305 struct virtual_mail *vmail = (struct virtual_mail *)mail;
306 struct mail *backend_mail;
311 virtual_box_copy_error(mail->box, backend_mail->box);
317 static int virtual_mail_get_save_date(struct mail *mail, time_t *date_r)
319 struct virtual_mail *vmail = (struct virtual_mail *)mail;
320 struct mail *backend_mail;
325 virtual_box_copy_error(mail->box, backend_mail->box);
331 static int virtual_mail_get_virtual_mail_size(struct mail *mail, uoff_t *size_r)
333 struct virtual_mail *vmail = (struct virtual_mail *)mail;
334 struct mail *backend_mail;
339 virtual_box_copy_error(mail->box, backend_mail->box);
345 static int virtual_mail_get_physical_size(struct mail *mail, uoff_t *size_r)
347 struct virtual_mail *vmail = (struct virtual_mail *)mail;
348 struct mail *backend_mail;
353 virtual_box_copy_error(mail->box, backend_mail->box);
360 virtual_mail_get_first_header(struct mail *mail, const char *field,
363 struct virtual_mail *vmail = (struct virtual_mail *)mail;
364 struct mail *backend_mail;
374 virtual_box_copy_error(mail->box, backend_mail->box);
381 virtual_mail_get_headers(struct mail *mail, const char *field,
384 struct virtual_mail *vmail = (struct virtual_mail *)mail;
385 struct mail *backend_mail;
392 virtual_box_copy_error(mail->box, backend_mail->box);
399 virtual_mail_get_header_stream(struct mail *mail,
403 struct virtual_mail *vmail = (struct virtual_mail *)mail;
404 struct mail *backend_mail;
416 virtual_box_copy_error(mail->box, backend_mail->box);
423 virtual_mail_get_stream(struct mail *mail, bool get_body,
428 struct virtual_mail *vmail = (struct virtual_mail *)mail;
429 struct mail_private *vp = (struct mail_private *)mail;
430 struct mail *backend_mail;
431 const char *reason = t_strdup_printf("virtual mailbox %s: Opened mail UID=%u: %s",
432 mailbox_get_vname(mail->box), mail->uid, vp->get_stream_reason);
447 virtual_box_copy_error(mail->box, backend_mail->box);
454 virtual_mail_get_binary_stream(struct mail *mail,
460 struct virtual_mail *vmail = (struct virtual_mail *)mail;
461 struct mail *backend_mail;
469 virtual_box_copy_error(mail->box, backend_mail->box);
476 virtual_mail_get_special(struct mail *mail, enum mail_fetch_field field,
479 struct virtual_mail *vmail = (struct virtual_mail *)mail;
480 struct mail *backend_mail;
485 virtual_box_copy_error(mail->box, backend_mail->box);
491 static int virtual_mail_get_backend_mail(struct mail *mail,
492 struct mail **real_mail_r)
494 struct virtual_mail *vmail = (struct virtual_mail *)mail;
495 struct mail *backend_mail;
505 static void virtual_mail_update_pop3_uidl(struct mail *mail, const char *uidl)
507 struct virtual_mail *vmail = (struct virtual_mail *)mail;
508 struct mail *backend_mail;
515 static void virtual_mail_expunge(struct mail *mail)
517 struct virtual_mail *vmail = (struct virtual_mail *)mail;
518 struct mail *backend_mail;
526 virtual_mail_set_cache_corrupted(struct mail *mail,
530 struct virtual_mail *vmail = (struct virtual_mail *)mail;
531 struct mail *backend_mail;