Lines Matching refs:_mail
151 static int maildir_mail_get_received_date(struct mail *_mail, time_t *date_r)
153 struct index_mail *mail = INDEX_MAIL(_mail);
157 if (index_mail_get_received_date(_mail, date_r) == 0)
160 if (maildir_mail_stat(_mail, &st) < 0)
167 static int maildir_mail_get_save_date(struct mail *_mail, time_t *date_r)
169 struct index_mail *mail = INDEX_MAIL(_mail);
173 if (index_mail_get_save_date(_mail, date_r) == 0)
176 if (maildir_mail_stat(_mail, &st) < 0)
288 struct mail *_mail = &mail->mail.mail;
289 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
293 if (!_mail->saving) {
294 if (maildir_mail_get_fname(mbox, _mail, &fname) <= 0)
297 if (maildir_save_file_get_size(_mail->transaction, _mail->seq,
301 path = maildir_save_file_get_path(_mail->transaction,
302 _mail->seq);
316 if (!_mail->saving) {
319 value = maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
377 static int maildir_mail_get_virtual_size(struct mail *_mail, uoff_t *size_r)
379 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
380 struct index_mail *mail = INDEX_MAIL(_mail);
387 (_mail->box->flags & MAILBOX_FLAG_POP3_SESSION) != 0) {
413 if (mail_get_stream(_mail, &hdr_size, &body_size, &input) < 0)
422 static int maildir_mail_get_physical_size(struct mail *_mail, uoff_t *size_r)
424 struct index_mail *mail = INDEX_MAIL(_mail);
425 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
434 (_mail->box->flags & MAILBOX_FLAG_POP3_SESSION) != 0) {
442 if (index_mail_get_physical_size(_mail, size_r) == 0) {
461 if (mail_get_stream(_mail, &hdr_size, &body_size, &input) < 0)
464 } else if (!_mail->saving) {
465 ret = maildir_file_do(mbox, _mail->uid, do_stat, &st);
468 mail_set_expunged(_mail);
473 path = maildir_save_file_get_path(_mail->transaction,
474 _mail->seq);
476 mail_set_critical(_mail, "stat(%s) failed: %m", path);
488 maildir_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
491 struct index_mail *mail = INDEX_MAIL(_mail);
492 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
499 i_assert(!_mail->saving);
507 if (maildir_mail_get_fname(mbox, _mail, &fname) <= 0)
510 guid = maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
519 mail_set_critical(_mail,
522 maildir_uidlist_unset_ext(mbox->uidlist, _mail->uid,
527 if (maildir_mail_get_special(_mail, MAIL_FETCH_STORAGE_ID,
540 } else if (!_mail->saving) {
541 if (maildir_mail_get_fname(mbox, _mail, &fname) <= 0)
544 path = maildir_save_file_get_path(_mail->transaction,
545 _mail->seq);
556 uidl = maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
563 return maildir_mail_get_special(_mail,
570 order = maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
579 if (maildir_mail_stat(_mail, &st) < 0)
585 return index_mail_get_special(_mail, field, value_r);
590 maildir_mail_get_stream(struct mail *_mail, bool get_body ATTR_UNUSED,
595 struct index_mail *mail = INDEX_MAIL(_mail);
596 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
601 data->stream = maildir_open_mail(mbox, _mail, &deleted);
604 mail_set_expunged(_mail);
608 if (mail->mail.v.istream_opened(_mail,
619 static void maildir_update_pop3_uidl(struct mail *_mail, const char *uidl)
621 struct maildir_mailbox *mbox = MAILDIR_MAILBOX(_mail->box);
624 if (maildir_mail_get_special(_mail, MAIL_FETCH_STORAGE_ID,
632 maildir_uidlist_set_ext(mbox->uidlist, _mail->uid,
755 static void maildir_mail_set_cache_corrupted(struct mail *_mail,
761 maildir_mail_remove_sizes_from_uidlist(_mail);
762 maildir_mail_remove_sizes_from_filename(_mail, field);
764 index_mail_set_cache_corrupted(_mail, field, reason);