mbox-mail.c revision 01cbf4ac5d44137ab434791be7f838d98d0fcf3b
5e0ce63bb65db34d7f48b34bbb5545fa791781c4Timo Sirainen/* Copyright (C) 2003 Timo Sirainen */
07e4875d250e7a7157cd99132aafc773cf3cdf83Timo Sirainenstatic int mbox_mail_seek(struct index_mail *mail)
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen if (mail_index_lookup_extra(ibox->view, mail->mail.seq,
252db51b6c0a605163326b3ea5d09e9936ca3b29Timo Sirainen // FIXME: lock the file. sync if needed.
07e4875d250e7a7157cd99132aafc773cf3cdf83Timo Sirainen istream_raw_mbox_seek(ibox->mbox_stream, *((const uint64_t *)data));
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenstatic const struct mail_full_flags *mbox_mail_get_flags(struct mail *_mail)
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen /*FIXME:struct index_mail *mail = (struct index_mail *)_mail;
252db51b6c0a605163326b3ea5d09e9936ca3b29Timo Sirainen struct index_mail_data *data = &mail->data;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen i_assert(_mail->seq <= mail->ibox->mbox_data_count);
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen (void)index_mail_get_flags(_mail);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen if ((mail->ibox->mbox_data[_mail->seq-1] & 1) != 0)
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen data->flags.flags |= MAIL_RECENT;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen return &data->flags;*/
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenstatic time_t mbox_mail_get_received_date(struct mail *_mail)
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen istream_raw_mbox_get_received_time(mail->ibox->mbox_stream);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen index_mail_cache_add(mail, MAIL_CACHE_RECEIVED_DATE,
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenstatic const char *
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenmbox_mail_get_special(struct mail *_mail, enum mail_fetch_field field)
dd62b77c932d1b518f2a3e4bf80e36542becc256Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
9e095dd6a77097356aca8216356d4d71ef1bea45Timo Sirainen return istream_raw_mbox_get_sender(mail->ibox->mbox_stream);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenstatic struct istream *mbox_mail_get_stream(struct mail *_mail,
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen struct index_mail *mail = (struct index_mail *)_mail;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen // FIXME: need to hide the headers
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen (void)i_stream_read(raw_stream); /* fix v_offset */
67c24901ac5e1521e38a91efc452faeb3e2135a1Timo Sirainen data->stream = i_stream_create_limit(default_pool,
67c24901ac5e1521e38a91efc452faeb3e2135a1Timo Sirainen return index_mail_init_stream(mail, hdr_size, body_size);
67c24901ac5e1521e38a91efc452faeb3e2135a1Timo Sirainen 0, 0, 0, 0, 0, 0,