fdabb36505e139faf7753f3cf4c6b3cc1d2d8de7 |
|
22-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Avoid duplicate FETCH BODY.PEEK[] when mail is already expunged
When the first FETCH (e.g. as part of mail_prefetch()) indicated that the
mail is already expunged, there's no need to do it again. |
bcb4e51a409d94ae670de96afb8483a4f7855294 |
|
01-Jan-2018 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2018. |
d4002fe1f64d25a792f76fb102ef7dc519cd4e24 |
|
11-Dec-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
global: Use mail_set_critical() and mailbox_set_critical() if possible
Replace calls to mail_storage_set_critical() with mail_set_critical()
or mailbox_set_critical() in places where mailbox or mail are easily
available. |
47a5a7e8296f3b8f2fac9a0659d4de3f2723ba4a |
|
06-Oct-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
global: Use PRI* macros and %zu instead of casting |
a943ed0f901e312445fd393249b91932797bba79 |
|
03-Oct-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: use i_close_fd{,_path}() instead of open-coding them |
6307d76096764e66bddc63d4a3e5a1aa19cc528f |
|
19-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: start relying on buffer_free(NULL) being a no-op
Cleanup performed with the following semantic patch:
@@
expression E;
@@
- if (E != NULL) {
- buffer_free(&E);
- }
+ buffer_free(&E); |
7dd326f772ed4193e1bfdafdb46fea616970e1ac |
|
18-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: convert struct imapc_mail casts to container_of |
87490012895b4f371635ded00add04c9107dcfef |
|
18-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: convert index to use container_of |
7b0a52bf38f8a7ab0c262acf4c761d6a0f22a07c |
|
07-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: convert imapc to use container_of |
7b19478fa346cb725f34489a7e5f0678f1a90333 |
|
17-Jul-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix caching >= 32 kB mail bodies
When closing the mail, only in-memory mail bodies were stored to cache. |
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. |
d15de28720491cd9bdf3f6734aaea66c271bbbd3 |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: include imapc-client.h in imapc-storage.h
It was already required to be able to successfully include imapc-storage.h. |
e1005f8bf9190e1778010032dbd20c64acb53610 |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Add imapc_features=fetch-bodystructure
This allows using the remote IMAP server's BODY and BODYSTRUCTURE replies. |
6e40a39f6886edbba5ad498391c299983f8f94e9 |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Rename imapc_storage_has_modseqs() to imapc_mailbox_has_modseqs()
Simplifies the following patch. |
21a2a03602a45b1c74f2dfa80ee972b481da8c2a |
|
20-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Allow mail_add_temp_wanted_fields() to be called before mail_set_seq*()
Quota plugin was already doing this, but it didn't actually work. It was
also crashing with imapc:
Panic: file mail-cache-lookup.c: line 341 (mail_cache_field_exists): assertion failed: (seq > 0) |
042a58438dc324c6d4de18e4c8a68044d6328e66 |
|
30-Jan-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
lib-imap: imap-envelope: Moved imap_envelope_headers to lib-mail/message-part-data as message_part_envelope_headers. |
2454dfa32c93c20a8522c6ed42fe057baaac9f9a |
|
01-Jan-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2017. |
21aaa6affb9f134112b75b5db737309fc35ef1cf |
|
27-Oct-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: rename get_real_mail to get_backend_mail
Also change the function signature so that it returns an int to indicate
success or failure. |
9e904c22e2124da78e05b818c5fae72309a34b85 |
|
14-Sep-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: mail_get_stream() shouldn't return cached hdr_size |
abb404575a238f27ea03b6049880f30f1656ddc4 |
|
13-Sep-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
Added asserts to make static analyzer happier. |
cfdcfc824509954c5d8000b533b1d84a0840400b |
|
16-Aug-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
imapc: Make sure imail.stream is not NULL
Makes static analysers happy |
0206dc57f2c04da69599dea5816235cfeb2b897a |
|
13-Aug-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: remove set_cache_corrupted_reason from mail_vfuncs
Change set_cache_corrupted signature to what set_cache_corrupted_reason
used to be. |
d9a7e950a9cd21f2b4a90ec7759fca9e8fcc7995 |
|
05-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Fixed mismatched bool vs. int/pointer handling
I don't think these fix any actual bugs. |
3858a7a5da361c35f1e6e50c8e3214dc0cf379d6 |
|
16-May-2016 |
Phil Carmody <phil@dovecot.fi> |
lib: istream - migrate to i_stream_read_more()
Scripted to find all the low-hanging-fruit (single line calls), but hand-checked:
git grep i_stream_read_data.*,\ 0\) | sed s/:.*// | \
xargs sed -i -e 's/i_stream_read_data(\(.*\), \(.*\), \(.*\), 0)/i_stream_read_more(\1, \2, \3)/'
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
b540a53c8ac2f5d012149d39cf43a3868c927028 |
|
25-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fixed crash caused by pool_unref() API change.
Calling pool_unref() set the mail_private->pool=NULL, which crashed in
index_mail_free(). Fixed this by removing the unnecessary ref/unref
entirely. We're already waiting in imapc_mail_close() for all the
existing FETCHes to finish, so the callback will always have only
valid mails with valid pools. |
90355e35d1139e446a99733986a9181bd7f05dd4 |
|
22-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Added support for imapc_features=modseq
If the remote server supports CONDSTORE or QRESYNC extensions we'll use the
remote's MODSEQ and HIGHESTMODSEQ counts.
There are some situations where the HIGHESTMODSEQ isn't updated exactly
correctly on an open mailbox, so this feature shouldn't be fully relied on.
It was primarily implemented for dsync+imapc support - both for preserving
modseqs and also for HIGHESTMODSEQ lookups. |
6de6ec228a41275ddda972d4a554699ea75cd06d |
|
28-Feb-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added mail_set_cache_corrupted_reason() |
e1fb4dcfefa12043ae785eab2f32d496dda4f284 |
|
28-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Handle disconnection when NOOP is sent to verify if mail is expunged. |
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. |
2ddc5efd47452644be369fa86e978cc05a508217 |
|
24-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Added imapc_features=fetch-fix-broken-mails
This allows ignoring a missing FETCH reply. It shouldn't be used normally,
but if there's a mail that the IMAP server simply won't serve, this can be
used to finish dsync successfully. |
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3 |
|
12-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: freshen copyright
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-5]/$1-2016/g;s/ (201[0-5]) Dovecot/ $1-2016 Dovecot/' |
50ffc12831eff618d35a8ee7537b61eaa95a4ade |
|
04-May-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Various optimization fixes to fetching messages' virtual size. |
7ac6e63e07b4e260a39ab057c366845bae52cfff |
|
04-May-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: imapc-features=rfc822.size didn't work for fetching mail's virtual size.
Physical and virtual sizes are the same for imapc. |
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. |
f4fdc28d5df5eee00528a37e198493829e7df0ab |
|
13-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: If reconnect fails during syncing, don't treat all mails as expunged in error handling code. |
eda647108a7dab36a4133bbee1916720b4b1c97e |
|
11-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Use GUIDs from cache. |
3e546c443055db8e8c69d43b13fb11a24f0a9b1c |
|
11-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Add prefetched GUIDs to cache. |
4f75b5bff4ec7e825a55bfbe743fb00c52e15abc |
|
11-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Removed Exchange-workaround for ignoring missing BODY[] replies.
This causes data loss if server was actually returning a NO temporary error
that would have succeeded later on. |
f424c157faae226f153578442fab1512275889fc |
|
23-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Merged gmail-pop3 and gmail-labels-keyword features into a single gmail-migration feature
There's really no other reason to use them except for migration. |
6b23e5a3fff511cd64f1edb880fd080016c23c0f |
|
20-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Implemented imapc_features=gmail-pop3 that also migrates pop3_deleted_flag.
This also caused gmail-pop3-uidl feature to be renamed to simply gmail-pop3,
which includes both the features. |
e2b63d479f1666fef9a1d1e39c731a5cd813b437 |
|
20-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Added imapc_features=gmail-pop3-uidl
This allows imapc to generate GMail POP3 compatible UIDL so that
pop3-migration plugin isn't needed. |
7cb128dc4cae2a03a742f63ba7afee23c78e3af0 |
|
05-Jan-2015 |
Phil Carmody <phil@dovecot.fi> |
global: freshen copyright
Robomatically:
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-4]/$1-2015/g;s/ (201[0-4]) Dovecot/ $1-2015 Dovecot/'
Happy 2015 everyone!
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
214fc90c61133ea4a3521dd7313fe488a55ac0c6 |
|
17-Apr-2014 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed fetching specific headers without imapc_features=fetch-headers |
fda7b3649d2ccdb4a95f5bf09eb8cf5435d57261 |
|
20-Mar-2014 |
Timo Sirainen <tss@iki.fi> |
imapc: Avoid hanging when running into server problems.
imapc_mail_fetch_flush() caused imail->fetch_count to drop to 0, but
imapc_mailbox_run() still started imapc_client_run() which was doing
nothing. |
a8c5a86d183db25a57bf193c06b41e092ec2e151 |
|
04-Feb-2014 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2014. |
1a878b9d2a823abc6b1c8b1631e50a15d534665f |
|
17-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Merge identical FETCH commands together (only updating UID range) |
d81b80bac97040d5e737f23ce1ee2eb4d7cc16cf |
|
16-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixes to imapc_feature fetch-headers |
bf611d43256ef8ee3e1c1ce8e1257920f2075278 |
|
16-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Avoid FETCH INTERNALDATE for getting save_date when we already know received_date. |
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. |
5a580c3a38ced62d4bcc95b8ac7c4f2935b5d294 |
|
02-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
Oops :) Update copyrights to 2013 without breaking all .c files. |
cca4ba2a504d70a9fe9fee37f8433997359de52c |
|
02-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2013. |
14e45b91d0ce2c213b6f8f8e027171f0d08a84ba |
|
21-Jan-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Return INTERNALDATE as save-date (better than error). |
f46885a5b78b15a8d2419f6e5d13b643bd85e41f |
|
04-Jan-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added support for "private modseqs" for INDEXPVT index.
Used by dsync (next commit). |
5f44975ec6c5755dd74bcd4c47a123a7242ecab3 |
|
15-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved index_mail.data_pool to mail_private.data_pool |
306b3f41b05da642d87e7ca7a1496efce9f5902f |
|
11-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
IMAP BINARY extension supports now FETCH BINARY command. |
e34d170f8f0e084bd94bfbc1a7085ece67e508df |
|
25-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Make sure we check all the functions' return values. Minor API changes to simplify this.
Checked using a patched clang that adds attribute(warn_unused_result) to all
functions. This commit fixes several error handling mistakes. |
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4 |
|
23-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
The non-obvious APIs where NULL parameter was changed to "" are
master_service_init() and auth_master_user_list_init().
These checks can currently be enabled only on a patched clang:
http://llvm.org/bugs/show_bug.cgi?id=6786 |
1a284e27b1446cc2c0ed185dbfa4fac850a1abbd |
|
18-Apr-2012 |
Timo Sirainen <tss@iki.fi> |
imapc: Use SHA1 of message header for guid-forced instead of the entire body. |
e65df911d966a0b4623e287d4669253cc46bbe0f |
|
18-Apr-2012 |
Timo Sirainen <tss@iki.fi> |
imapc: Added guid-forced feature to use SHA1(message) as GUID. |
adcb46fe2c6d1139dfbd8ab08a8fbe96e53f8fd6 |
|
30-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes. |
5f5870385cff47efd2f58e7892f251cf13761528 |
|
12-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2012. |
297959b63ffb7998f73d2a722a23b4dc01c52f22 |
|
27-Jan-2012 |
Timo Sirainen <tss@iki.fi> |
imapc: If server doesn't support GUIDs, return empty GUID rather than fail.
This is how other backends do it as well. |
2769852989e20e50b437550bda3489e0950942a6 |
|
13-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed missing BODY[]/INTERNALDATE to handle actual failures again. |
2f14155ea5d75d7520284f50af191f885e5ace2a |
|
13-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Handle missing INTERNALDATE reply by returning an empty mail instead of disconnecting. |
dab64e8f3e74acd6934e82843cd5df89cca84d79 |
|
14-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Handle missing BODY[] reply by returning an empty mail instead of disconnecting. |
df452e9628fe8d3356c42dd644b020ea9733c0c1 |
|
12-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Added support for fetching GUID from remote server, if supported.
Currently this is only done for GMail. |
ecd69c4e8371853667e01b0c16d436ef7f7393e2 |
|
12-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_log_update_wanted_fields() |
0b5cf161dd06c3ab1e747d48ea949631358c994e |
|
12-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Mail body wasn't always prefetched when it should have been. |
b50e80d237435686c4ea525643f266731a600981 |
|
09-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed detecting when messages are missing from index. |
edcd6f7223568e080d5a6767c5038e3bc891e963 |
|
09-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Initial support for automatically reconnecting to remote server. |
81d3c215bb1fdbda2cf7ccd9519f6b4fd03c3791 |
|
07-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Command sending API changed to be more extensible. |
15979d11259a2391c943bb47af4d174df52d9eb9 |
|
05-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed closing mail properly. |
7e24f82fbd6e0bde96de9d3109dd2ea6819b7d34 |
|
05-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed "Bad file descriptor" errors after mail was closed. |
6df0ab0c1ab91f06b6418cb30eff44405a1b8f02 |
|
04-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_get_hdr_stream() and use it where possible.
This makes it clearer for backends when it needs a message body instead of
only message header. |
0daf6ffdc0958f3dff3a81201e7cdbb1ecf0d28b |
|
04-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Mail body caching should be done at close(), not at free().
This cached wrong mail bodies when fetching multiple mails. |
cdf00df4dc5d0ae5acfdf200d2e846dbb92fda7e |
|
01-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Changed imapc_client_mailbox_cmd() parameter order to be same as in _cmdf(). |
17f2b2643f734950de6349ddf44580181b5beb84 |
|
01-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Make sure "is mail expunged?" NOOP is sent to correct connection.
(Although currently there are never more than a single connection.) |
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. |
e39459afd08b437e72fd72cd60ff409230695bce |
|
20-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: If FETCH is missing a reply, but we haven't seen EXPUNGE for it, do NOOP and check again.
This fixes checking if message is expunged with servers that don't
immediately send EXPUNGE during UID FETCH. |
bff477af402040474e42fd43c361fbd5ba21d3d8 |
|
20-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: When IMAP server unexpectedly doesn't send a reply, log also the mailbox name. |
d5e131e809cf52342d904857d41c2bb41973dde8 |
|
20-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Handle disconnection better when fetching a mail. |
e8443917ef5586eeeec39b482b5657134935120f |
|
07-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Removed accidentally committed debug sleeps. |
854574e0a4a4d38b0ada296cc85eed3530436c69 |
|
04-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed checking if mail is expunged. |
1af95e0fea59835842dafe207e86ebc53691c596 |
|
04-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Redesigned remote sequence <-> index file record mapping is done.
The previous code didn't work when multiple connections modified the same
index files. |
951c92a29c36d22a60e56cae4b47d5d0fa5dd6b5 |
|
03-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed handling immediate changes when starting IDLE. |
421d30619384e72a27e2a5d13ff6525aff4d17fe |
|
31-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
Redesigned mail precaching APIs.
There's no longer a one monolithic mailbox_sync(MAILBOX_SYNC_FLAG_PRECACHE)
call, but rather one mail_precache() call for each mail to be precached.
This allows the callers to show the progress and in general is cleaner. |
7631f16156aca373004953fe6b01a7f343fb47e0 |
|
28-Jul-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mail->saving was set too late, which could have caused crashes. |
8ddc45fe2080010715c212ecbb2b12b6734f6d4b |
|
04-Apr-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixes to handling expunges. |
b67628e501401e9ed72c99f1a3a083523286a703 |
|
04-Apr-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Don't log an error message about missing BODY[] if message was already expunged. |
9ed77dd00248e88d731ec129116db5dddc0dd3b5 |
|
04-Apr-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Stop FETCH wait after untagged reply is received, don't wait for tagged reply. |
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. |
e2170d0dfac94f795ab5dbe05939393c14b1946c |
|
29-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Try to get received date first from cache. |
5940a2b112cdabc534df17179e63208f4c81a28b |
|
29-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Try to get physical/virtual size first from cache. |
92927ceff9bdd0b46e03a65beb621426411522ee |
|
24-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixes to handling FETCH commands. |
8a26102b8b1e08a774398980a8f92ae8f8575da8 |
|
31-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Write large message bodies to temp files rather than keeping in memory. |
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. |
13aff14ae8b2fb88c39bacc132b468ae82d63145 |
|
28-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: If mail's input stream is changed, don't assume virtual size = physical size. |
9ca6d68fbad1892423ca798818f579c95475a19a |
|
23-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed mail_set_seq/uid() to work. |
9fb018dea4e2073639249ea8a14ae27cab2c0aac |
|
16-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
Added initial implementation of "imapc" storage.
It can be used to create a "smart IMAP proxy" where Dovecot uses remote IMAP
server as a mail storage.
This is a very rough early implementation. Performance isn't good, many
required features are missing, error handling is lacking and code needs
de-uglification. Still, it should be enough for selecting INBOX and
accessing mails in it. |