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. |
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. |