maildir-mail.c revision 8b58939517a381db55670089c0984da39fc0f099
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen/* Copyright (c) 2003-2007 Dovecot authors, see the included COPYING file */
86bea1f8bffc2d98196f8655eecea9174c4f458aTimo Sirainendo_open(struct maildir_mailbox *mbox, const char *path, int *fd)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen mail_storage_set_critical(&mbox->storage->storage,
7d6389e4053c2dac1fb37180b5756b00785983dcTimo Sirainendo_stat(struct maildir_mailbox *mbox, const char *path, struct stat *st)
849969f639a00eab26791db3cb1b66430420c0cdTimo Sirainen mail_storage_set_critical(&mbox->storage->storage,
7d6389e4053c2dac1fb37180b5756b00785983dcTimo Sirainenstatic struct istream *
7d6389e4053c2dac1fb37180b5756b00785983dcTimo Sirainenmaildir_open_mail(struct maildir_mailbox *mbox, struct mail *mail,
adea1e1e46ccb4ae107767fd930e3d1fb4f1d11dTimo Sirainen if (maildir_file_do(mbox, mail->uid, do_open, &fd) < 0)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen path = maildir_save_file_get_path(mail->transaction, mail->seq);
10f6f2224c897fc543973efd2f46b86a3ab1148dAki Tuomi return i_stream_create_fd(fd, MAIL_READ_BLOCK_SIZE, TRUE);
25ee72451d16374ed27fdbf829f4ec756c778352Timo Sirainenstatic int maildir_mail_stat(struct mail *mail, struct stat *st)
3cf67672fdc87583cb23ce088c95bb5dee60e74dTimo Sirainen struct maildir_mailbox *mbox = (struct maildir_mailbox *)mail->box;
3cf67672fdc87583cb23ce088c95bb5dee60e74dTimo Sirainen struct index_mail_data *data = &((struct index_mail *)mail)->data;
e48d89622047bd8bbd0475b881ca9377d592f535Timo Sirainen if (data->access_part != 0 && data->stream == NULL) {
2d8f66596f445dd8b399b7032c3f0e9202015b63Timo Sirainen /* we're going to open the mail anyway */
04052d7cacaa866a3f00afb4e104fa46c04c1dd7Timo Sirainen (void)mail_get_stream(mail, NULL, NULL, &input);
b44650b0f48a4b5f0dc240ed836833a00b643b9fTimo Sirainen mail_storage_set_critical(&mbox->storage->storage,
b44650b0f48a4b5f0dc240ed836833a00b643b9fTimo Sirainen "fstat(maildir) failed: %m");
b44650b0f48a4b5f0dc240ed836833a00b643b9fTimo Sirainen ret = maildir_file_do(mbox, mail->uid, do_stat, st);
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen path = maildir_save_file_get_path(mail->transaction, mail->seq);
be5c76fabc7439fd33bc799bc3ab3f570799977bTimo Sirainenstatic int maildir_mail_get_received_date(struct mail *_mail, time_t *date_r)
43a66a0b16299bd4f7615acd85e98bd3832c54d5Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if (index_mail_get_received_date(_mail, date_r) == 0)
const char **fname_r)
return FALSE;
return TRUE;
if (not_pop3_only) {
&count);
for (i = 0; i < count; i++) {
if (!not_pop3_only) {
int pop3_state;
if (pop3_state >= 0) {
const char **value_r)
int ret;
if (ret <= 0) {
if (ret == 0)
bool deleted;
if (deleted)