History log of /dovecot/src/lib-storage/index/imapc/imapc-mail.h
Revision Date Author Comments Expand
7dd326f772ed4193e1bfdafdb46fea616970e1ac 18-Sep-2017 Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>

lib-storage: convert struct imapc_mail casts to container_of

e1777cb59a96d8710a6c5cefe6a17c7c15159c9f 03-Jul-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Prefech - Initialize cached stream only if needed If the mail is immediately accessed for other purposes (e.g. fetching message flags), there's no need to go through all the trouble of initializing the mail stream.

14fb3a2f6af1d75aeec6deb766026b4ea6a4db53 28-Jan-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: If FETCH didn't send our wanted data, log the tagged FETCH reply text.

638734376d265a1529985755da671c09cfc22e06 27-Jan-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Don't use fetch-fix-broken-mails for OK and NO [SERVERBUG] FETCH replies Hopefully no servers are actually returning OK without returning a FETCH reply. If they are, maybe we need another workaround.. In any case Yahoo IMAP sometimes loses state and starts returning OK without FETCH replies to all UID FETCH requests (and BADs to FETCHes). It also may return NO [UNAVAILABLE] for both permanent and temporary FETCH failures, so we can't do anything with that. I added NO [SERVERBUG] because that's what Dovecot responds to temporary failures. I'm not sure how useful that check is though.

5085686ff2b4be28e7d631e1bbfa32afe427b7c7 25-Jan-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Prefetching shouldn't send FETCH requests for headers that are already cached.

14fd61e73569f356c57ccc253cfbbb6d77cccdf9 25-Aug-2015 Timo Sirainen <tss@iki.fi>

imapc: If FETCH commands fail, have imapc_mail_fetch() always return failure. Earlier it may have returned success and imapc would later complain about a missing FETCH field.

eb1365e61674c54c7c453143356a891fb2e2b3d6 15-Apr-2015 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_features=zimbra-workarounds Zimbra (at least v5.0.18_GA_3011.RHEL4_64) can return different headers depending on whether the whole message body was fetched or only (partial) headers. This probably happens only for invalid characters that are translated into '?'. With this workaround enabled we don't use FETCH BODY.PEEK[], but we do FETCH (BODY.PEEK[HEADER] BODY.PEEK[TEXT]) and merge the results together. This way the results are always consistent and headers don't suddenly change.

2a1d9dda6e05f596b70703b74721847308127e3e 11-Mar-2015 Timo Sirainen <tss@iki.fi>

imapc: Make sure we don't flush prefetch FETCH command unneededly.

1a878b9d2a823abc6b1c8b1631e50a15d534665f 17-Nov-2013 Timo Sirainen <tss@iki.fi>

imapc: Merge identical FETCH commands together (only updating UID range)

ffb886eb9c3682bb891206cced9623368035d739 16-Nov-2013 Timo Sirainen <tss@iki.fi>

imapc: Don't send FETCHes for data that is already in cache.

b8eb60a9ba83e2f3f6d969e810553eb937be2128 16-Nov-2013 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_feature fetch-header. It uses FETCH BODY.PEEK[HEADER.FIELDS (...)] whenever possible instead of fetching the entire header.

b1a2d2042e8c7e99983175eb462b82cc7a8cb70b 30-Sep-2011 Timo Sirainen <tss@iki.fi>

imapc: Keep the last fetched message body cached until mailbox is closed. This primarily helps partial IMAP fetches so each partial fetch doesn't redownload the message body.

530f80fcbfa8be7378ff0d36ec7ecef41f198e2c 22-Sep-2011 Timo Sirainen <tss@iki.fi>

imapc: Allow accessing a mail that is being saved without crashing. This fixes crashes with LDA, LMTP, mail_log plugin, etc.

e15b305e90c9834734ccf35ed78f0ad29d570ee9 31-Mar-2011 Timo Sirainen <tss@iki.fi>

Search supports now prefetching data for returned mails. Dropped imapc's own prefetching. mail_prefetch_count specifies how many mails can be kept open and issue a prefetch. This works using posix_fadvise(POSIX_FADV_WILLNEED) for maildir, sdbox and cydir backends. Apparently only Linux supports this. imapc backend also implements this internally by sending wanted IMAP commands to remote server. The command pipelining helps with latency. This change also makes it actually possible for imapc backend to first check if wanted data is already cached in local index and avoid sending unnecessary IMAP commands to remote server.

/dovecot/configure.in /dovecot/doc/example-config/conf.d/10-mail.conf /dovecot/src/lib-storage/index/cydir/cydir-mail.c /dovecot/src/lib-storage/index/cydir/cydir-storage.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c /dovecot/src/lib-storage/index/dbox-single/sdbox-mail.c /dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c Makefile.am imapc-mail-fetch.c imapc-mail.c imapc-mail.h imapc-mailbox.c imapc-search.c imapc-storage.c imapc-storage.h /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-search-private.h /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/maildir/maildir-mail.c /dovecot/src/lib-storage/index/maildir/maildir-storage.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage-settings.c /dovecot/src/lib-storage/mail-storage-settings.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-search.c
8a26102b8b1e08a774398980a8f92ae8f8575da8 31-Jan-2011 Timo Sirainen <tss@iki.fi>

imapc: Write large message bodies to temp files rather than keeping in memory.

e3f2f1bee8d849a6e699c38e355948c72fabbfa1 31-Jan-2011 Timo Sirainen <tss@iki.fi>

imapc: Fixed sending single FETCH queries.

94a77d6e5d7600859e4c5e4a7ea19dc3e91998b9 30-Jan-2011 Timo Sirainen <tss@iki.fi>

imapc: Send UID FETCH commands with larger uidset parameter if possible. This code assumes that server doesn't reorganize FETCH replies when it's given an increasing UID range, which in theory IMAP server would be allowed to do, but I doubt there are any.