raw-mail.c revision 225e82df5dd1e765f4e52b80c954558f00e5a7df
45312f52ff3a3d4c137447be4c7556500c2f8bf2Timo Sirainen/* Copyright (c) 2007-2009 Dovecot authors, see the included COPYING file */
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct raw_mailbox *mbox = (struct raw_mailbox *)mail->box;
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen struct mail_private *p = (struct mail_private *)mail;
ebe6df72f1309135f02b6a4d2aef1e81a073f91cTimo Sirainen if (mail->lookup_abort == MAIL_LOOKUP_ABORT_NOT_IN_CACHE)
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainenstatic int raw_mail_get_received_date(struct mail *_mail, time_t *date_r)
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen *date_r = mail->data.received_date = mbox->mtime;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainenstatic int raw_mail_get_save_date(struct mail *_mail, time_t *date_r)
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainenstatic int raw_mail_get_physical_size(struct mail *_mail, uoff_t *size_r)
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen *size_r = mail->data.physical_size = mbox->size;
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainenraw_mail_get_stream(struct mail *_mail, struct message_size *hdr_size,
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct message_size *body_size, struct istream **stream_r)
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ba7feb1cccc99ce1e8a03d35ca024192ea9233b1Timo Sirainen /* we can't just reference mbox->input, because
ba7feb1cccc99ce1e8a03d35ca024192ea9233b1Timo Sirainen index_mail_close() expects to be able to free the stream */
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen i_stream_create_limit(_mail->box->input, (uoff_t)-1);
4146f38412c650f4d0e100cf22d7b32e7d24b2b6Timo Sirainen return index_mail_init_stream(mail, hdr_size, body_size, stream_r);
8fa302c0c0f110aecf266d20673aae567bd77f3bTimo Sirainenraw_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
8fa302c0c0f110aecf266d20673aae567bd77f3bTimo Sirainen const char **value_r)
8fa302c0c0f110aecf266d20673aae567bd77f3bTimo Sirainen struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen *value_r = mbox->have_filename ? _mail->box->path : "";