cydir-mail.c revision aa247243412a49f9bdebf7255e131dc6ece4ed46
45312f52ff3a3d4c137447be4c7556500c2f8bf2Timo Sirainen/* Copyright (c) 2007-2009 Dovecot authors, see the included COPYING file */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenstatic const char *cydir_mail_get_path(struct mail *mail)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen const char *dir;
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen dir = mailbox_list_get_path(mail->box->storage->list, mail->box->name,
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen return t_strdup_printf("%s/%u.", dir, mail->uid);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenstatic int cydir_mail_stat(struct mail *mail, struct stat *st_r)
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainenstatic int cydir_mail_get_received_date(struct mail *_mail, time_t *date_r)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen if (index_mail_get_received_date(_mail, date_r) == 0)
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainenstatic int cydir_mail_get_save_date(struct mail *_mail, time_t *date_r)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen if (index_mail_get_save_date(_mail, date_r) == 0)
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainenstatic int cydir_mail_get_physical_size(struct mail *_mail, uoff_t *size_r)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen if (index_mail_get_physical_size(_mail, size_r) == 0)
75f3dddc3a5922c92a1bdb921b653ead51227cabTimo Sirainen data->physical_size = data->virtual_size = st.st_size;
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainencydir_mail_get_stream(struct mail *_mail, struct message_size *hdr_size,
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen struct message_size *body_size, struct istream **stream_r)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen mail_storage_set_critical(_mail->box->storage,
2526d52441ef368215ab6bf04fd0356d3b09d235Timo Sirainen i_stream_create_fd(fd, MAIL_READ_BLOCK_SIZE, TRUE);
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen return index_mail_init_stream(mail, hdr_size, body_size, stream_r);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen cydir_mail_get_physical_size, /* physical = virtual in our case */