Mercurial > dovecot > core-2.2
changeset 19501:42b5cde2d560
TODO updated
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 09 Dec 2015 17:37:13 +0200 |
parents | 452f9b0ea9f4 |
children | f76349851caa |
files | TODO |
diffstat | 1 files changed, 60 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/TODO Wed Dec 09 17:36:49 2015 +0200 +++ b/TODO Wed Dec 09 17:37:13 2015 +0200 @@ -1,3 +1,62 @@ + - remove mail_deliver_session after all, do all the stuff transparently + by hooking into mailbox_copy(). + - use this hook also to do the mail deduplication: 1) sort all destination + users, 2) create mail_user only once for each user, 3) remember in + src_mail the previously copied mail, 4) use that for mailbox_copy()ing + to following recipients + - make sure this removes duplicate dbox mails when sieve saves mail to + multiple mailboxes + - auth: user iterations shouldn't be able to use up all the workers + - indexer: if workers are stuck, we keep adding more and more stuff to them + which causes the ostream size to become huge. + - quota: maybe check quota once more at commit time to make sure the whole + transaction fits. avoids multiple parallel slow COPY commands from being + able to go over quota + - lmtp: Calculate incoming mail's hash, forward it via proxying, have the + final delivery code verify that it's correct + - METADATA: quota, NOTIFY interaction, METADATA-SERVER capability + - virtual: why is it using 20 bytes instead of 16 bytes? because imap + keywords are not going in the middle, why?! + - fts: if SEARCH X-MAILBOX is used on virtual/all folder, it doesn't update + any indexes. (and it should skip those physical mailboxes that don't + match the X-MAILBOX) + - fts_autoindex=yes shouldn't really index Trash/Drafts + - fts: if indexer has request queued, SEARCH won't return anything until + it's done. + - maybe abort entirely after X time and return NO + - prioritize small quick indexing before slow large indexing? + - in virtual mailbox searches don't wait for indexing to finish to + large unindexed mailboxes, just show what you got + - figure out some way to avoid a million error messages getting logged + when service imap/pop3 reaches process_limit (some kind of notification + to login process that the post-login process is full?) + - lda: mail sending (bounce? forward?) is sending mixed CRLF+LFs + - auth: remove protocol !flop {} requirement. try again remote {} and local {} + support for auth. where do we go stuck? at least need to be able to share + identical passdb/userdbs + - doveadm sync -l: lock also when syncing public mailboxes? per-mailbox locks? + - dsync: dsync_mailbox_export_init() can be very slow and not send anything + to remote dsync for a long time, which thinks the other side is dead and + kills it. need to send some kind of keepalive-notifications. + - dsync: rename + re-subscribe isn't handled right in first sync, because + dsync moves the subscribed-flag when it renames the node + - virtual: use mailbox_list_index to optimize syncing + - "/asdf" in subscriptions -> LSUB lists -> dsync assert-crashes + - replicator: automatically remove users who don't exist + - imapc: sync_uid_next handling doesn't seem to be correct, especially with + Courier that doesn't send UIDNEXT on SELECT + - sdbox: dbox_file_fix() should assume there is only one message.. + - pop3: if we can't fetch "order" field for UIDL (but could fetch it + initially), the order will be wrong and error is logged. probably just + need to read all the UIDLs into memory at startup?.. + + - fs_list_get_mailbox_flags() is unnecessarily stat()ing files/dirs + - doveadm-server: dsync doesn't work through proxying, because the data isn't + actually being proxied but handled via doveadm_print() + - CATENATE: Allow ~{binary} data but fail if there are any c-t-e: binary parts? + or simply silently save it? + + - master-settings.c warnings aren't logged to log file at startup - dsync: delete foo, rename bar foo -> foo, foo-temp-1 - dsync+imapc: - mailbox list could be synced pretty optimally by ignoring @@ -5,11 +64,10 @@ and can be matched -> rename mailbox. - GUID-less sync could optionally use just rfc822.size [and internaldate] to match messages. - - why does it use separate FETCH INTERNALDATE + FETCH BODY[HEADER] - virtual plugin doesn't verify the index file's data, crashes if broken. - imapc {} groups - - libsasl: use it in imapc, pop3c, managesieve-login, doveadm auth + - libsasl: use it in pop3c, managesieve-login, doveadm auth - nonblocking passdb + blocking passdb -> deinit -> nonblocking passdb gets aborted -> calls auth_worker_call() which crashes because deinit is already done? @@ -84,25 +142,13 @@ - maildir_storage_sync_force() shouldn't do anything except find the new file, don't go expunging any more stuff or we could get recursively back to where we started, and stuff would break - - imap: append/copy could trigger indexing (optionally) - fuzzy: be fuzzy about date/size - mailbox list index: - with in-memory indexes be sure to refresh it more often - refreshing could refresh only the parts that are actually requested, e.g. % - - virtual could use it to avoid keeping all mailboxes open - - remove mail_deliver_session after all, do all the stuff transparently - by hooking into mailbox_copy(). - - use this hook also to do the mail deduplication: 1) sort all destination - users, 2) create mail_user only once for each user, 3) remember in - src_mail the previously copied mail, 4) use that for mailbox_copy()ing - to following recipients - - make sure this removes duplicate dbox mails when sieve saves mail to - multiple mailboxes - notify_sync() could have "what changed" struct with old/new flags - maildir: copy dovecot-shared file from parent mailbox, not root. - - if global ACL path points to a file instead of a directory, read all of - them from there. support wildcards in names. - master passdb preserves userdb_* extra fields. should it preserve non-userdb_* extra fields too? @@ -111,7 +157,6 @@ - doveadm search savedbefore 7d could be optimized in large mailboxes.. - mdbox: storage rebuilding could log about changes it does - mdbox: broken extrefs header keeps causing index rebuilds - - doveadm -A <<EOF expunge + purge + EOF - sent, drafts: .Sent/dovecot.index: modseq_hdr.log_offset too large - mail_max_lock_timeout error could be reported more nicely, also ones coming from lib-index