comparison TODO @ 6232:8d4fa6f0b7e6 HEAD 1.1.alpha2

Released v1.1.alpha2.
author Timo Sirainen <tss@iki.fi>
date Tue, 07 Aug 2007 15:17:14 +0300
parents 8f79b333fc47
children 31f374bcbd31
comparison
equal deleted inserted replaced
6231:30c77009ba73 6232:8d4fa6f0b7e6
1 - command didn't cancel itself: STATUS 1 - SORT: Invalid input is supposed to be sorted last.
2 - allow sql plugins
3 - indexes: are cache prev_offsets updated right? 2 - indexes: are cache prev_offsets updated right?
4 - mmap_disable: updated cache header doesn't invalidate other processes' cache? 3 - mmap_disable: updated cache header doesn't invalidate other processes' cache?
5 - rquotad support for FS quota
6 - filesystem group quota patch
7 - userdb lookups aren't verifying / translating usernames
8 - message-header-decode.h API: Add support for returning UTF-8 decoded strings
9 directly.
10 - Fix Sieve plugin to decode headers using it
11 4
12 - maildir+pop3/deliver fast updates: 5 - maildir+pop3/deliver fast updates:
13 - with locking enabled, pop3 could just keep the one and same sync lock and 6 - with locking enabled, pop3 could just keep the one and same sync lock and
14 do the whole thing using sync transaction 7 do the whole thing using sync transaction
15 - don't update dovecot-uidlist if dovecot.index.cache doesn't exist / 8 - don't update dovecot-uidlist if dovecot.index.cache doesn't exist /
29 that someone else already had added them to uidlist, and the existing UIDs 22 that someone else already had added them to uidlist, and the existing UIDs
30 could be assigned to them in the index. 23 could be assigned to them in the index.
31 - maildir_copy_preserve_filename=yes has a race condition causing "Append with 24 - maildir_copy_preserve_filename=yes has a race condition causing "Append with
32 UID n, but next_uid = y" errors when quota plugin is loaded. Practically 25 UID n, but next_uid = y" errors when quota plugin is loaded. Practically
33 won't happen except in stress testing. 26 won't happen except in stress testing.
34 - maildir_copy_with_hardlinks=yes is problematic with shared folders where
35 the file mode should change..
36 27
37 - mbox 28 - mbox
38 - UID renumbering doesn't really work after all? 29 - UID renumbering doesn't really work after all?
39 - still problems with CRLF mboxes.. 30 - still problems with CRLF mboxes..
40 31
68 - logging consistency: 59 - logging consistency:
69 http://www.dovecot.org/list/dovecot/2007-April/021532.html 60 http://www.dovecot.org/list/dovecot/2007-April/021532.html
70 - EXPUNGE command in read-only mailbox should give an error message if 61 - EXPUNGE command in read-only mailbox should give an error message if
71 there are messages marked as \Deleted? 62 there are messages marked as \Deleted?
72 - dovecot -o setting=something overriding 63 - dovecot -o setting=something overriding
73 - vmailmgr patch
74 - managesieve patch
75 - file_cache: we're growing the mmap in page size blocks, which is horribly 64 - file_cache: we're growing the mmap in page size blocks, which is horribly
76 slow if mremap() doesn't exist. 65 slow if mremap() doesn't exist.
77 - login_max_processes_count shouldn't count proxying processes 66 - login_max_processes_count shouldn't count proxying processes
78 67
79 - Allow %variables in mail_chroot setting 68 - Allow %variables in mail_chroot setting
145 - for shared/public namespaces default to "no" 134 - for shared/public namespaces default to "no"
146 135
147 - lib-storage 136 - lib-storage
148 - rename: allow moving between storages, as long as they're of same type 137 - rename: allow moving between storages, as long as they're of same type
149 - x search charset asdf all -> should fail 138 - x search charset asdf all -> should fail
150 - subscribe: IMAP(anonymous): open(anonymous/mail/.temp...) failed: Permission denied
151 - should we allow following symlinks in mbox/maildirs? they are now. 139 - should we allow following symlinks in mbox/maildirs? they are now.
152 - if we implement shared mailboxes with shared indexes, never do that or 140 - if we implement shared mailboxes with shared indexes, never do that or
153 others could symlink your personal mailboxes and see the indexes 141 others could symlink your personal mailboxes and see the indexes
154 created for it which may contain envelope etc. data 142 created for it which may contain envelope etc. data
155 - this allows circular mailbox hierarchies which should be prevented by 143 - this allows circular mailbox hierarchies which should be prevented by
184 - auth 172 - auth
185 - with blocking passdb we're not caching lookups if the password was wrong 173 - with blocking passdb we're not caching lookups if the password was wrong
186 - non-plaintext authentication doesn't support all features: 174 - non-plaintext authentication doesn't support all features:
187 - multiple passdbs don't work, only the first one is used 175 - multiple passdbs don't work, only the first one is used
188 - auth cache's last_success password change check doesn't exist 176 - auth cache's last_success password change check doesn't exist
189 - checkpassword should use passdb-blocking
190 - remove system_user and allow returning multiple gids instead. 177 - remove system_user and allow returning multiple gids instead.
191 - SIGHUP restarts auth processes .. but does it wait until they've finished 178 - SIGHUP restarts auth processes .. but does it wait until they've finished
192 with all requests? no. 179 with all requests? no.
193 - does dovecot-auth really break when it runs out of fds? 180 - does dovecot-auth really break when it runs out of fds?
194 - dovecot-auth should limit how fast authentication requests are allowed 181 - dovecot-auth should limit how fast authentication requests are allowed
213 - if dovecot-uidlist can't be written, assume the new mails have UIDs 200 - if dovecot-uidlist can't be written, assume the new mails have UIDs
214 beginning from uidlist.next_uid. Whenever mails are expunged, overwrite 201 beginning from uidlist.next_uid. Whenever mails are expunged, overwrite
215 the next_uid field with the current highest next_uid. Whenever we have 202 the next_uid field with the current highest next_uid. Whenever we have
216 assumed UIDs and uidlist gets updated, throw the client out with 203 assumed UIDs and uidlist gets updated, throw the client out with
217 "inconsist mailbox". 204 "inconsist mailbox".
218 - if storage=0 is given, use unlimited quota but track it anyway
219 205
220 - ssl 206 - ssl
221 - add setting: ssl_options = bitmask. by default we enable all openssl 207 - add setting: ssl_options = bitmask. by default we enable all openssl
222 workarounds, this could be used to disable some of them 208 workarounds, this could be used to disable some of them
223 - gnutls support isn't working 209 - gnutls support isn't working
224 210
225 - search 211 - search
226 - message header search: we should ignore LWSP between two MIME blocks 212 - message header search: we should ignore LWSP between two MIME blocks(?)
227 - message_body_search() could accept multiple search keywords so we 213 - message_search_init() could accept multiple search keywords so we
228 wouldn't need to call it separately for each one (so we wouldn't need 214 wouldn't need to call it separately for each one (so we wouldn't need
229 to parse the message multiple times). 215 to parse the message multiple times).
230 - message_body_search() could support NULL MessagePart and the searching
231 could be done while parsing the message. this would need changes to
232 message_parse() as well.
233 - could optionally support scanning inside file attachments and use 216 - could optionally support scanning inside file attachments and use
234 plugins to extract text out of them (word, excel, pdf, etc. etc.) 217 plugins to extract text out of them (word, excel, pdf, etc. etc.)
235 - use a trie index for fast text searching, like cyrus squat?
236 - Create our own extension: When searching with TEXT/BODY, return 218 - Create our own extension: When searching with TEXT/BODY, return
237 the message text surrounding the keywords just like web search engines 219 the message text surrounding the keywords just like web search engines
238 do. like: SEARCH X-PRINT-MATCHES TEXT "hello" -> * SEARCH 1 "He said: 220 do. like: SEARCH X-PRINT-MATCHES TEXT "hello" -> * SEARCH 1 "He said:
239 Hello world!" 2 "Hello, I'm ...". This would be especially useful with 221 Hello world!" 2 "Hello, I'm ...". This would be especially useful with
240 the above attachment scanning. 222 the above attachment scanning.
241
242 - lib-charset
243 - utf8_toupper() is a must. and a bit difficult if we want to do it right.
244 - add support for other things than iconv() as well? we could reuse
245 the code from cyrus or courier
246 - cache iconvs? they'd probably be faster if we just reset the
247 conversion instead of opening new one every time. and there will likely
248 be only one or two charsets which are used for nearly all conversions.
249 223
250 - deliver 224 - deliver
251 - recipient_delimiter setting so user+mailbox@domain works directly 225 - recipient_delimiter setting so user+mailbox@domain works directly
252 226
253 - general 227 - general
259 - rfc2557 support for BODYSTRUCTURE, as specified by RFC3501 233 - rfc2557 support for BODYSTRUCTURE, as specified by RFC3501
260 - LMTP server 234 - LMTP server
261 - ability to build plugins statically into the binaries 235 - ability to build plugins statically into the binaries
262 - ~/.dovecotrc to override system wide settings. namespace settings should 236 - ~/.dovecotrc to override system wide settings. namespace settings should
263 override all the previous namespace settings instead of adding new. 237 override all the previous namespace settings instead of adding new.
264 - option to disable SORT, SEARCH and other memory/cpu-intensive features.
265 defaults and per-user by dovecot-auth.
266 - dotlock overriding is racy, but it's pretty difficult to fix it. Also
267 overriding someone else's dotlock in shared folder isn't possible. These
268 could be fixed by having separate lock process running as root, which
269 would chown() the file for another uid and then unlink() it as that user.
270 One problem with that is that if malicious user sets setuid+execute bits
271 on for the file, he could run the file and get changed to the new uid.
272 That hopefully shouldn't matter much since the new uid should be user
273 with minimum possible privileges. Anyway, optional..
274 - things break if next_uid gets to 2^32 238 - things break if next_uid gets to 2^32
275 239
276 capabilities: 240 capabilities:
277 - preferrably all should be implemented as plugins 241 - preferrably all should be implemented as plugins
278 - possibility to disable them from config file 242 - possibility to disable them from config file