isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 380ccdd43a5931871bb82f526836c23a7c1aafae
parent cbc14ba032e48e06710275cc305c9e4253467a5e
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Sun,  1 Oct 2017 14:37:36 +0200

update TODO

Diffstat:
MTODO | 33++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/TODO b/TODO @@ -2,8 +2,21 @@ f{,data}sync() usage could be optimized by batching the calls. make SSL (connect) timeouts produce a bit more than "Unidentified socket error". +automatically resume upon transient errors, e.g. "connection reset by peer" +or timeout after some data was already transmitted. +possibly also try to handle Exchange's "glitches" somehow. + +add support for IMAP UTF-7 (for internationalized mailbox names). + uidvalidity lock timeout handling would be a good idea. +should complain when multiple Channels match the same folders. + +propagate folder deletions even when the folders are non-empty. +- verify that "most" of the folders in the Channel are still there. +- refuse to delete unpropagated messages when trashing on the remote side. +- refuse to delete master if it has unpropagated messages. symmetry? + add message expiration based on arrival date (message date would be too unreliable). MaxAge; probably mutually exclusive to MaxMessages. @@ -11,6 +24,21 @@ add alternative treatments of expired messages. ExpiredMessageMode: Prune (delete messages like now), Keep (just don't sync) and Archive (move to separate folder - ArchiveSuffix, default .archive). +add support for event notification callbacks. +it would be also possible to report more differentiated exit codes, but +that seems too limiting in the general case. + +make it possible to have different mailbox names for Master and Slave in +Patterns. +- use master:slave for the pattern + - for quoting, use more colons: the longest sequence of colons is the + separator +- this makes Groups mostly useless, as they are mostly a workaround for this + function being missing so far +- this is needed for move detection, which would work only within one Channel + +normalize INBOX capitalization received from IMAP, to avoid anomalies. + kill the concept of an INBOX, it is a relic from single-channel operation. if somebody needs it, he can have two stores with different Paths. the path can name a single (in-)box (curr. broken with maildir). an empty box name @@ -26,6 +54,7 @@ add daemon mode. primary goal: keep imap password in memory. also: idling mode. parallel fetching of multiple mailboxes. +TLS session resumption becomes interesting then as well. imap_set_flags(): group commands for efficiency, don't call back until imap_commit(). @@ -49,6 +78,8 @@ and in write-only mode not before changes are made. problem: UIDVALIDITY change detection is delayed, significantly complicating matters. +some error messages are unhelpful in non-verbose mode due to missing context. + possibly use ^[[1m to highlight error messages. consider alternative approach to trashing: instead of the current trash-before- @@ -61,4 +92,4 @@ however, this implies a huge working set. consider optional use of messages-id (and X-GM-MSGID): - detection of message moves between folders -- recovery from unmotivated UIDVALIDITY change, or total loss of sync state +- recovery from loss of sync state, migration from other tools