24cc64c148da0297352c5ee58b74962795809c42 |
|
28-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix assert-crash after detecting that multiple expunged mail reappear
The first imapc_mailbox_set_corrupted() call started a reconnect. The second
call crashed with:
Panic: file imapc-client.c: line 414 (imapc_client_mailbox_reconnect): assertion failed: (!box->reconnecting) |
fe2a62737d087434ac6795cf5d80a7103824de29 |
|
22-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix deleting mailbox
Broken by f8f30bd27e41e1041a8de0b97f35d7d75e0a412e |
f8f30bd27e41e1041a8de0b97f35d7d75e0a412e |
|
18-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix sending initial FETCH after reconnection SELECTs mailbox
Move sending the FETCH when the SELECT returns tagged OK reply instead of
delaying it until mailbox is next synced. Most importantly this allows
sending the FETCH before any retried commands that are also sent after
SELECT receives tagged reply. |
04f1db1a0de276abc5b9f93f1c1c99fb41f253af |
|
18-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Move imapc_mailbox_fetch_state*() to imapc-mailbox.c
Mainly to make the next commit smaller. |
468830ef7df7d9c5c5b73ecf78c732d0b39646a2 |
|
18-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Handle untagged UIDVALIDITY immediately
This is part of the changes to fix mailbox resyncing after reconnect. |
3d709b4208dd3ef76b4ec37dc3dff1f05a4a7292 |
|
18-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix leaking mail_index_view on delayed expunge handling
Fixes:
Panic: Leaked view for index (in-memory index): Opened in imapc-mailbox.c:47 |
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. |
7b0a52bf38f8a7ab0c262acf4c761d6a0f22a07c |
|
07-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: convert imapc to use container_of |
e098ac1cd4ff0afb33b22cc7fd288014f4fdb0bc |
|
10-Jul-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Storage backend sync_init()s no longer need to check if mailbox is open
The previous change guarantees it. |
b01d001df22ef47b107a4abedd1c1a91a74650b7 |
|
08-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Don't send UID FETCH 1:* after SELECT if mailbox is empty |
d8ed8d5586542aa199bf343cebfe3327c9a472aa |
|
08-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix potential crash if initial sync fails.
Happened at least if mailbox had 0 mails and a failing mailbox_sync() was
called twice.
Fixes:
Panic: file imapc-sync.c: line 477 (imapc_sync_index): assertion failed: (mbox->sync_fetch_first_uid == 1) |
f4871975cf97533f9570323ee2ab9a39db7ff307 |
|
19-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Avoid resending duplicate FETCH when reconnecting during the initial sync |
635f1b145fa159d7de55aaf527c904f071667e0b |
|
12-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Try to merge STOREs together as much as possible when syncing |
41f1944a259381601cc99f48a4860d8f04700bde |
|
27-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Don't send NOOP on sync if MAILBOX_SYNC_FLAG_FAST is set
Fast syncing should do only the minimal amount of work. |
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. |
150542702397445873dca327c82c5c7f09322437 |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Add imapc_mailbox.capabilities
Use it instead of imapc_client_get_capabilities(). Simplifies the
following patch. |
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. |
2454dfa32c93c20a8522c6ed42fe057baaac9f9a |
|
01-Jan-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2017. |
ee22a48c8ab37aad0bf5534b8d4131e6639f9454 |
|
09-Dec-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Don't send NOOP immediately after SELECT
NOOP is normally used by mailbox syncing to check if there are any changes
done by other concurrent IMAP sessions. But doing it immediately after
SELECT is unnecessary, because nothing could have changed. |
22788c0ac1776a7d633ef3ba3841289d22abbe17 |
|
23-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fix assert that checks if mail is expunged locally.
The EXPUNGE may have been sent while imapc_sync_index() was issuing
remote imapc commands. It would end up being in delayed_expunged_uids,
so the assert needs to check that too.
Fixes:
Panic: file imapc-sync.c: line 290 (imapc_initial_sync_check): assertion failed: (mail_index_is_expunged(view, lseq)) |
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. |
7d8603f26cd195f7c12430fdfc26a7f3d14b242f |
|
28-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Don't mark the initial sync done if it wasn't successful. |
46d42562faad5b8249b8008c9548923a4524df09 |
|
28-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Don't ignore FETCH, SEARCH and EXPUNGE returning NO failures in syncing.
Especially if the FETCH 1:* (FLAGS) didn't succeed, we expunged all the
mails from local index. |
a221d0d259af954aeb36a40008ad12767f83d96b |
|
28-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imapc: Fixed assert-crash in mailbox syncing, if mailbox couldn't be opened.
Usually meaning that syncing was attempted when IMAP server couldn't be
connected to. Fixes the assert:
Panic: file imapc-client.c: line 439 (imapc_client_get_capabilities):
assertion failed: (conn != NULL) |
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/' |
603cfcf51ee9a6956d9c1fd4649aea88aefdf0bb |
|
27-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Don't assert-crash when trying to sync a mailbox with MAILBOX_FLAG_SAVEONLY.
We can just skip the sync, because we don't do anything except save mails. |
71417d43ad8f3082f6426a6dd0bfe0e6db9df86e |
|
11-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: If imapc_features has gmail-migration, fetch X-GM-MSGID at startup and cache it.
This works only if index files haven't been disabled. |
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. |
2813037cc30ddd53a21e6376d9698400feec7c59 |
|
23-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox
This is primarily intended for migration, and with this behavior dsync can
be run just once so it's faster. |
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. |
3394dcb43382e094b0707c1640efbf46adac9e7d |
|
20-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
imapc: Added imapc_features=gmail-labels-keyword
This is a bit kludgy feature mainly intended for migrations from GMail.
Unfortunately I couldn't figure out any nicer way to do this for now.
GMail's "All Mail" folder contains all messages in all folders, but it also
contains some messages that don't exist in other folders. For migrations we
want to copy only those messages that don't exist elsewhere. This can now be
achieved with something like:
doveadm -o imapc_features='gmail-labels-keyword ...' \
backup -F '-$GmailHaveLabels' mdbox:~/mdbox
Note that dsync can't handle inserting mails into folders, so if doveadm
backup is already run once and one of the existing mails loses all labels,
doveadm backup will delete the whole folder and start again. |
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> |
7586eb9be41bf2de90790ab1c50ba6bfb85402b4 |
|
21-Mar-2014 |
Timo Sirainen <tss@iki.fi> |
imapc: Cache LIST replies for a while to be able to immediately ask for mailbox flags/existence.
Besides giving better performance, this will fix bugs in some servers where
LISTing a single mailbox doesn't necessarily return it. (In this case a
mailbox named "in" wasn't returned, but I think Dovecot has had bugs related
to this also.) |
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) |
c12ee3424b82fea9eed2c80f54fbca01850af627 |
|
17-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Avoid sending unnecessary IDLEs that are immediately aborted. |
8e1dbcb9b249c37d00b420705777b103ffa6145d |
|
10-Jul-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Reorganize code so that imapc_list works without imapc_storage.
Most importantly fixes crashes when imapc_list is trying to lookup hierarchy
separator before storage is created. |
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. |
1f1ee8db68d9ae1604350801cd8dc33ebe29fe8a |
|
29-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Renamed mail_storage_set_index_error() to mailbox_set_index_error() |
7c332266561b8e6562a9151e6af1ed3cd6fb79d6 |
|
15-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Removed MAIL_INDEX_SYNC_TYPE_APPEND. No backend cares about it. |
250105a1440167ef000323cdb2721cd2a3688e1e |
|
22-May-2012 |
Timo Sirainen <tss@iki.fi> |
Don't write "keyword reset" records to transaction log anymore.
These are a bit problematic for dsync's keyword merging to handle. |
5f5870385cff47efd2f58e7892f251cf13761528 |
|
12-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2012. |
f87844c400cf9741abad57d9815121d0738a738f |
|
09-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Support retrying some IMAP commands if we get disconnected. |
4a4fe31b356f40225fbcb98e3592294f4077d9b1 |
|
09-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Better implementation of checking if index is missing messages. |
b50e80d237435686c4ea525643f266731a600981 |
|
09-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed detecting when messages are missing from index. |
81d3c215bb1fdbda2cf7ccd9519f6b4fd03c3791 |
|
07-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Command sending API changed to be more extensible. |
cdf00df4dc5d0ae5acfdf200d2e846dbb92fda7e |
|
01-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Changed imapc_client_mailbox_cmd() parameter order to be same as in _cmdf(). |
b1486804bc9f9c7bda1f834a11f469a99d5c18f1 |
|
20-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: If mailbox sync fails, don't mark index corrupted.
The sync could have failed because of disconnection. The failure will just
cause the sync to be rollbacked and retried later. No need to delete the
whole index. |
bcf478ad0160ea069192ef0568d3d1cd14a17fb2 |
|
20-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: next_uid was sometimes lowered. |
2d8e4a429d06291854c764473c879bea063aed3e |
|
07-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed assert-crashing when deleting a mailbox |
d30c35e25ea6d935393e031509e6e22422b1e006 |
|
07-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Don't crash if a newly seen uncommitted message 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. |
92f9aaf8957c8542d7497b00b5e1859645f7b3c0 |
|
04-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Delay handling new messages and setting uidvalidity/uidnext until sync. |
951c92a29c36d22a60e56cae4b47d5d0fa5dd6b5 |
|
03-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed handling immediate changes when starting IDLE. |
e809db9220c804b16d4d74782433a1075da12274 |
|
03-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Error logging cleanups.
Don't bother to log disconnection errors for NOOP. |
4bbaac4215ccd435c78e0f0c5d010aff4693c580 |
|
29-Jun-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed previous UID EXPUNGE fix. |
7d6f8d25840357c80dc930648aaaffef30c4e4fe |
|
28-Jun-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed using UID EXPUNGE for multiple messages |
d83e46e7cd1ffd76210823dadcac549124c96d4e |
|
10-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Initial support for local index files. |
2e37d45867d081db150ab78dad303b9077aea24f |
|
04-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2011. |
df48643c3c240ad5b8a3e2e2132c46f7dc541b5e |
|
24-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Many fixes related to syncing and error handling. |
04807a2454d02b7be3cae7eb3b58013671086474 |
|
25-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Syncing optimization: Don't wait for STOREs to complete before sending EXPUNGE. |
934dbb10a198c803485b683911777888aeeaceeb |
|
25-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Added support for changing flags and expunging. |
51130f00bbd1e119ec042d63c148a78ac06ab85e |
|
23-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed mailbox deletion and some error handling. Code cleanups. |
6f9a5ecb55d8c024a0953647b77711b5622e9bbb |
|
23-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Handle properly mailbox changes while it's selected. Added support for IDLE. |
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. |