comparison TODO @ 13:bb294faf7379 HEAD

"Critical errors" aren't displayed to users anymore, ie. anything that is not a predefined human readable error message is written into log file and user gets only "Internal error [timestamp]".
author Timo Sirainen <tss@iki.fi>
date Thu, 22 Aug 2002 17:50:16 +0300
parents e285afe55c48
children 6491ac40cdf5
comparison
equal deleted inserted replaced
12:a4423c83b2b0 13:bb294faf7379
102 init data before it can be used, so the user gets "NO Unknown 102 init data before it can be used, so the user gets "NO Unknown
103 authentication method" error the first time 103 authentication method" error the first time
104 - ulimit / setrlimit() should be set somewhere 104 - ulimit / setrlimit() should be set somewhere
105 - create indexer binary 105 - create indexer binary
106 - SEARCH CHARSET support, iconv()? 106 - SEARCH CHARSET support, iconv()?
107 - Fix the blocking SSL handshake 107 - Fix the blocking SSL handshake (req. gnutls 0.5.2)
108 - SRP authentication support? 108 - SRP authentication support?
109 - Digest-MD5: support integrity protection, and maybe crypting. Do it 109 - Digest-MD5: support integrity protection, and maybe crypting. Do it
110 through imap-login like SSL is done? 110 through imap-login like SSL is done?
111 - imap-auth should limit how fast authentication requests are allowed from 111 - imap-auth should limit how fast authentication requests are allowed from
112 login processes. especially if there's one login/connection the speed 112 login processes. especially if there's one login/connection the speed
113 should be something like once/sec. 113 should be something like once/sec.
114 - support executing each login in it's own process, so if an exploit is ever 114 - support executing each login in it's own process, so if an exploit is ever
115 found from it, the attacker can't see other users' passwords 115 found from it, the attacker can't see other users' passwords
116 - the error messages given in command replies can sometimes be quite 116 - Make sure messages of size INT_MAX..UINT_MAX (and more) work correctly
117 specific, eg. rename(/full/path, /full/new/path) failed: xxx. These 117 virtual_size can also overflow making it less than physical_size
118 probably shouldn't be shown to user, instead just print some "internal
119 error" with a timestamp and the real error would be written into syslog.
120 all errors from lib-index should be done this, and maybe some/all
121 lib-storage errors as well (there's separate error vs. critical)
122 - Make sure messages of size INT_MAX..UINT_MAX work correctly
123 - allocating readwrite pools now just uses system_pool .. so pool_unref() 118 - allocating readwrite pools now just uses system_pool .. so pool_unref()
124 can't free memory used by it .. what to do about it? at least count the 119 can't free memory used by it .. what to do about it? at least count the
125 malloc/free calls and make complain if at the exit they don't match 120 malloc/free calls and make complain if at the exit they don't match
126 - put IMAP_LOGFILE into config file. and the timestamp format. 121 - put IMAP_LOGFILE into config file. and the timestamp format.
127 - SIGHUPing master should reload the configuration 122 - SIGHUPing master should reload the configuration
132 mailroot=/var/mail. maildirs should be then created when needed 127 mailroot=/var/mail. maildirs should be then created when needed
133 - check for "../" folder names with mbox 128 - check for "../" folder names with mbox
134 - check that (off_t) castings are safe 129 - check that (off_t) castings are safe
135 - IOBuffer is a bit confusing and weird. especially the offset-parameter 130 - IOBuffer is a bit confusing and weird. especially the offset-parameter
136 works strangely.. And maybe split it into IBuffer and OBuffer? 131 works strangely.. And maybe split it into IBuffer and OBuffer?
137 - optimize imap_message_send() by using a buffer. most mails don't have long 132 - optimize message_send() by using a buffer. most mails don't have long
138 lines and without a buffer it creates tons of write() calls. 133 lines and without a buffer it creates tons of write() calls.
139 134
140 optional optimizations: 135 optional optimizations:
141 - provide some helper binary to save new mail into mailboxes with CR+LF 136 - provide some helper binary to save new mail into mailboxes with CR+LF
142 line breaks? 137 line breaks?