"SfR Fresh" - the SfR Freeware/Shareware Archive 
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 v1.0.15 2008-06-21 Timo Sirainen <tss@iki.fi>
2
3 - IMAP: SORT SUBJECT and THREAD didn't create base subjects correctly
4 - Maildir: Expunged messages may have never gotten removed from
5 dovecot-uidlist
6 - mbox: Fixed a crash when adding a new X-IMAPbase: header with
7 keywords.
8 - Multiple "socket listen" auth blocks should have been possible, but
9 Dovecot failed to start with a "With connect auth socket no other
10 sockets can be used in same auth section" error.
11
12 v1.0.14 2008-06-02 Timo Sirainen <tss@iki.fi>
13
14 * mbox: Enable mail_privileged_group while creating INBOX.
15
16 - IMAP: Fixed a rare crash in FETCH BODY/BODYSTRUCTURE
17 - IMAP: If mailbox is selected with EXAMINE, ignore flag changes
18 - proxy: Login success reply was sent in two IP packets, which
19 confused some IMAP/POP3 clients
20 - ACL plugin leaked memory a bit
21 - dovecot-auth: allow_nets setting with network masks didn't work
22 correctly with big endian machines.
23
24 v1.0.13 2008-03-09 Timo Sirainen <tss@iki.fi>
25
26 * Fixed a security hole in blocking passdbs (MySQL always. PAM, passwd
27 and shadow if blocking=yes) where user could specify extra fields
28 in the password. The main problem here is when specifying
29 "skip_password_check" introduced in v1.0.11 for fixing master user
30 logins, allowing the user to log in as anyone without a valid
31 password.
32
33 - mail_privileged_group was broken in some systems (OS X, Solaris?)
34 - IMAP THREAD: Fixed some correctness problems
35
36 v1.0.12 2008-03-05 Timo Sirainen <tss@iki.fi>
37
38 - Using mail_privileged_group with dotlock_use_excl=no worked, but it
39 logged "access denied" errors.
40
41 v1.0.11 2008-03-04 Timo Sirainen <tss@iki.fi>
42
43 * mail_extra_groups setting was commonly used insecurely. This setting
44 is now deprecated. Most users should switch to using
45 mail_privileged_group setting, but if you really need the old
46 functionality use mail_access_groups instead.
47
48 - mbox: Dropped some of the physical size fetch optimizations added
49 in v1.0.8. This makes some commands slower, but should fix the rest
50 of the problems.
51 - IMAP: SEARCH BEFORE/ON/SINCE didn't handle timezones correctly.
52 - ldap: auth_bind was doing lookups using subtree scope instead of
53 the scope specified in config file.
54 - zlib plugin crashfixes by Richard Platel
55 - master passdbs: pass=yes setting was broken with blocking passdbs
56 (e.g. MySQL)
57
58 v1.0.10 2007-12-29 Timo Sirainen <tss@iki.fi>
59
60 * Security hole with LDAP+auth cache: If base setting contained
61 %variables they weren't included in auth cache key, which broke
62 caching. This could have caused different users with same passwords
63 to log in as each other.
64
65 - LDAP: Fixed potential infinite looping when connection to LDAP
66 server was lost and there were queued requests.
67 - mbox: More changes to fix problems caused by v1.0.8 and v1.0.9.
68 - Maildir: Fixed a UIDLIST_IS_LOCKED() assert-crash in some conditions
69 (caused by changes in v1.0.9)
70 - If protocols=none, don't require imap executables to exist
71
72 v1.0.9 2007-12-11 Timo Sirainen <tss@iki.fi>
73
74 + Maildir: Don't wait on dovecot-uidlist.lock when we just want to
75 find out a new filename for the message.
76 - mbox: v1.0.8 changes sometimes caused FETCH to fail with
77 "got too little data", disconnecting the client.
78 - Fixed a memory leak when FETCHing message header/body multiple
79 times within a command (e.g. BODY[1] BODY[2])
80 - IMAP: Partial body fetching was still slow with mboxes
81
82 v1.0.8 2007-11-28 Timo Sirainen <tss@iki.fi>
83
84 + Authentication: Added "password_noscheme" field that can be used
85 instead of "password". "password" treats "{prefix}" as a password
86 scheme while "password_noscheme" treats it as part of the password
87 itself. So "password_noscheme" should be used if you're storing
88 passwords as plaintext. Non-plaintext passwords never begin
89 with "{", so this isn't a problem with them.
90 - IMAP: Partial body fetching was sometimes non-optimal, causing
91 the entire message to be read for every FETCH command.
92 - deliver failed to save the message when envelope sender address
93 contained spaces.
94 - Maildir++ quota: We could have randomly recalculated quota when
95 it wasn't necessary.
96 - Login process could have crashed after logging in if client sent
97 data before "OK Logged in" reply was sent (i.e. before master had
98 replied that login succeeded).
99 - Don't assert-crash when reading dovecot.index.logs generated by
100 Dovecot v1.1.
101 - Authentication: Don't assert-crash if password beings with "{" but
102 doesn't contain "}".
103 - Authentication cache didn't work when using settings that changed
104 the username (e.g. auth_username_format).
105
106 v1.0.7 2007-10-29 Timo Sirainen <tss@iki.fi>
107
108 - deliver: v1.0.6's "From " line ignoring could have written to a
109 bad location in stack, possibly causing problems.
110
111 v1.0.6 2007-10-28 Timo Sirainen <tss@iki.fi>
112
113 * IDLE: Interval between mailbox change notifies is now 1 second,
114 because some clients keep a long-running IDLE connection and use
115 other connections to actually read the mails.
116 * SORT: If Date: header is missing or broken, fallback to using
117 INTERNALDATE (as the SORT draft nowadays specifies).
118
119 + deliver: If message begins with a "From " line, ignore it.
120 + zlib plugin: If maildir file has a "Z" flag, open it with zlib.
121 - CREATE: Don't assert-crash if trying to create namespace prefix.
122 - SEARCH: Fixes to handling NOT operator with sequence ranges.
123 - LDAP reconnection fixes
124 - Maildir: Don't break when renaming mailboxes with '*' or '%'
125 characters and children.
126 - mbox: Fixed "file size unexpectedly shrinked" error in some
127 conditions.
128 - quota+mbox: Don't fail if trying to delete a directory.
129 - Fixes to running from inetd
130
131 v1.0.5 2007-09-09 Timo Sirainen <tss@iki.fi>
132
133 - deliver: v1.0.4 broke home directory handling
134 - maildir: Creating mailboxes didn't use dovecot-shared's group for
135 cur/new/tmp directories.
136
137 v1.0.4 2007-09-08 Timo Sirainen <tss@iki.fi>
138
139 * Assume a MIME message if Content-Type: header exists, even if
140 Mime-Version: header doesn't.
141
142 - IMAP: CREATE ns_prefix/box/ didn't work right when namespace prefix
143 existed.
144 - deliver: plugin {} settings were overriding settings from userdb.
145 - mbox: Expunging the first message might not have worked always
146 - PostgreSQL: If we can't connect to server, timeout queries after
147 a while instead of trying forever.
148 - Solaris: sendfile() support was broken and could have caused
149 100% CPU usage and the connection hanging.
150
151 v1.0.3 2007-08-01 Timo Sirainen <tss@iki.fi>
152
153 - deliver: v1.0.2's bounce fix caused message to be always saved to
154 INBOX even if Sieve script had discard, reject or redirect commands.
155 - LDAP: auth_bind=yes and empty auth_bind_userdn leaked memory
156 - ACL plugin: If user was given i (insert) right for a mailbox, but
157 not all s/t/w (seen, deleted, other flags) rights, COPY and APPEND
158 commands weren't supposed to allow saving those flags. This is
159 technically a security fix, but it's unlikely this caused problems
160 for anyone.
161 - ACL plugin: i (insert) right didn't work unless user was also given
162 l (lookup) right.
163 - Solaris: Fixed filesystem quota for autofs mounts.
164
165 v1.0.2 2007-07-15 Timo Sirainen <tss@iki.fi>
166
167 * dbox isn't built anymore by default. It will be redesigned so it
168 shouldn't be used.
169
170 + Maildir: Support reading dovecot-uidlist (v3) files created by
171 Dovecot v1.1.
172 - Maildir: "UIDVALIDITY changed" errors could happen with newly
173 created mailboxes
174 - If "INBOX." namespace was used, LIST returned it with \HasNoChildren
175 which caused some clients not to show any other mailboxes.
176 - Maildir++ quota: If multiple processes were updating maildirsize
177 at the same time, we failed with "Unknown error".
178 - IMAP: IDLE didn't actually disconnect client after 30 minutes of
179 inactivity.
180 - LDAP passdb/userdb was leaking memory
181 - deliver: %variables in plugin {} weren't expanded
182 - deliver: Don't bounce the mail if Sieve plugin returns failure
183
184 v1.0.1 2007-06-15 Timo Sirainen <tss@iki.fi>
185
186 * deliver: If Return-Path doesn't contain user and domain, don't try
187 to bounce the mail (this is how it was supposed to work earlier too)
188 * deliver: %variables in mail setting coming from userdb aren't
189 expanded anymore (again how it should have worked). The expansion
190 could have caused problems if paths contained any '%' characters.
191
192 + Print Dovecot version number with dovecot -n and -a
193 + deliver: Added -e parameter to write rejection error to stderr and
194 exit with EX_NOPERM instead of sending the rejection by executing
195 sendmail.
196 + dovecot --log-error logs now a warning, an error and a fatal
197 - Trying to start Dovecot while it's already running doesn't anymore
198 wipe out login_dir and break the running Dovecot.
199 - maildir: Fixed "UID larger than next_uid" errors which happened
200 sometimes when dovecot-uidlist file didn't exist but index files did
201 (usually because mailbox didn't have any messages when it was
202 selected for the first time)
203 - maildir: We violated maildir spec a bit by not having keyword
204 characters sorted in the filename.
205 - maildir: If we don't have write access to cur/ directory, treat the
206 mailbox as read-only. This fixes some internal error problems with
207 trying to use read-only maildirs.
208 - maildir: Deleting a symlinked maildir failed with internal error.
209 - mbox: pop3_uidl_format=%m wasn't working right
210 - mbox: If non-filesystem quota was enabled, we could have failed
211 with "Unexpectedly lost From-line" errors while saving new messages
212 - mysql auth: %c didn't work. Patch by Andrey Panin
213 - APPEND / SEARCH: If internaldate was outside valid value for time_t,
214 we returned BAD error for APPEND and SEARCH never matched. With 64bit
215 systems this shouldn't have happened. With 32bit systems the valid
216 range is usually for years 1902..2037.
217 - COPY: We sent "Hang in there.." too early sometimes and checked it
218 too often (didn't break anything, but was slower than needed).
219 - deliver: Postfix's sendmail binary wasn't working with mail_debug=yes
220 - Don't corrupt ssl-parameters.dat files when running multiple Dovecot
221 instances.
222 - Cache compression caused dovecot.index.cache to be completely deleted
223 with big endian CPUs if 64bit file offsets were used (default)
224 - Fixed "(index_mail_parse_header): assertion failed" crash
225
226 v1.0.0 2007-04-13 Timo Sirainen <tss@iki.fi>
227
228 + Documentation updated.
229
230 v1.0.rc32 2007-04-12 Timo Sirainen <tss@iki.fi>
231
232 - LDAP, auth_bind=no: Don't crash if doing non-plaintext ldap passdb
233 lookup for unknown user. This also broke deliver when userdb static
234 was used.
235 - LDAP, auth_bind=yes and userdb ldap: We didn't wait until bind was
236 finished before sending the userdb request, which could have caused
237 problems.
238 - LDAP: Don't break when compiling with OpenLDAP v2.3 library
239 - Convert plugin: Don't create "maildirfolder" file to Maildir root.
240
241 v1.0.rc31 2007-04-08 Timo Sirainen <tss@iki.fi>
242
243 - mbox: Give "mbox file was modified while we were syncing" error only
244 if we detect some problems in the mbox file. The check can't be
245 trusted with NFS.
246 - Convert plugin: If directory for destination storage doesn't exist,
247 create it.
248 - Convert plugin: Mailbox names weren't converted in subscription list.
249
250 v1.0.rc30 2007-04-06 Timo Sirainen <tss@iki.fi>
251
252 * PAM: Lowercase the PAM service name when calling with "args = *".
253 Linux PAM did this internally already, but at least BSD didn't.
254 If your PAM file used to be in /etc/pam.d/IMAP or POP3 file you'll
255 need to lowercase it now.
256
257 + Send list of CA names to client when using
258 ssl_verify_client_cert=yes.
259 - IMAP: If message body started with line feed, it wasn't counted
260 in BODY and BODYSTRUCTURE replies' line count field.
261 - deliver didn't load plugins before chrooting
262
263 v1.0.rc29 2007-03-28 Timo Sirainen <tss@iki.fi>
264
265 * Security fix: If zlib plugin was loaded, it was possible to open
266 gzipped mbox files outside the user's mail directory.
267
268 + Added auth_gssapi_hostname setting.
269 - IMAP: LIST "" "" didn't return anything if there didn't exist a
270 namespace with empty prefix. This broke some clients.
271 - If Dovecot is tried to be started when it's already running, don't
272 delete existing auth sockets and break the running Dovecot
273 - If deliver failed too early it still returned exit code 89 instead
274 of EX_TEMPFAIL.
275 - deliver: INBOX fallbacking with -n parameter wasn't working.
276 - passdb passwd and shadow couldn't be used as master or deny databases
277 - IDLE: inotify didn't notice changes in mbox file
278 - If index file directory couldn't be created, disable indexes instead
279 of failing to open the mailbox.
280 - rawlog wasn't working with chrooting
281 - Several other minor fixes
282
283 v1.0.rc28 2007-03-23 Timo Sirainen <tss@iki.fi>
284
285 * deliver + userdb static: Verify the user's existence from passdb,
286 unless allow_all_users=yes
287 * dovecot --exec-mail: Log to configured log files instead of stderr
288 * Added "-example" part to doc/dovecot-sql-example.conf and
289 doc/dovecot-ldap-example.conf. They are now also installed to
290 $sysconfdir with "make install".
291
292 + When copying/syncing a lot of mails, send "* OK Hang in there"
293 replies to client every 15 seconds so it doesn't just timeout the
294 connection.
295 + Added idxview and logview utilities to examine Dovecot's index files
296 + passdb passwd and shadow support blocking=yes setting now also
297 + mbox: If mbox file changes unexpectedly while we're writing to it,
298 log an error.
299 + deliver: Ignore -m "" parameter to make calling it easier.
300 + deliver: Added new -n parameter to disable autocreating mailboxes.
301 It affects both -m parameter and Sieve plugin's fileinto action
302 - mbox: Using ~/ in the mail root directory caused a ~ directory to be
303 created (instead of expanding it to home directory)
304 - auth cache: If unknown user was found from cache, we didn't properly
305 return "unknown user" status, which could have caused problems in
306 deliver.
307 - mbox: Fixed "UID inserted in the middle of mailbox" in some
308 conditions with broken X-UID headers
309 - Index view syncing fixes
310 - rc27 didn't compile with some non-GCC compilers
311 - vpopmail support didn't compile in rc27
312 - NFS check with chrooting broke home direcotry for the first login
313 - deliver: If user lookup returned "unknown user", it logged
314 "BUG: Unexpected input"
315 - convert plugin didn't convert INBOX
316
317 v1.0.rc27 2007-03-13 Timo Sirainen <tss@iki.fi>
318
319 + mbox and index file code handles silently out of quota/disk
320 space errors (maildir still has problems). They will give the user
321 a "Not enough disk space" error instead of flooding the log file.
322 + Added fsync_disable setting.
323 + mail-log plugin: Log the mailbox name, except if it's INBOX
324 + dovecot-auth: Added a lot more debug logging to passdbs and userdbs
325 + dovecot-auth: Added %c variable which expands to "secured" with
326 SSL/TLS/localhost.
327 + dovecot-auth: Added %m variable which expands to auth mechanism name
328 - maildir++ quota: With ignore=box setting the quota was still updated
329 for the mailbox even though it was allowed to go over quota (but
330 quota recalculation ignored the box).
331 - Index file handling fixes
332 - mbox syncing fixes
333 - Wrong endianess index files still weren't silently rebuilt
334 - IMAP quota plugin: GETQUOTAROOT returned the mailbox name wrong the
335 namespace had a prefix or if its separator was non-default
336 - IMAP: If client was appending multiple messages with MULTIAPPEND
337 and LITERAL+ extensions and one of the appends failed, Dovecot
338 treated the rest of the mail data as IMAP commands.
339 - If mail was sent to client with sendfile() call, we could have
340 hanged the connection. This could happen only if mails were saved
341 with CR+LF linefeeds.
342
343 v1.0.rc26 2007-03-07 Timo Sirainen <tss@iki.fi>
344
345 * Changed --with-headers to --enable-header-install
346 * If time moves backwards only max. 5 seconds, sleep until we're back
347 in the original present instead of killing ourself. An error is
348 still logged.
349
350 - IMAP: With namespace prefixes LSUB prefix.* listed INBOX.INBOX.
351 - deliver: Ignore mbox metadata headers from the message input.
352 X-IMAP header crashed deliver.
353 - deliver: If mail_debug=yes, drop out DEBUG environment before
354 calling sendmail binary. Postfix's sendmail didn't really like it.
355 - mbox: X-UID brokeness fixes broke rc25 even with valid X-UID headers.
356 Now the code should finally work right.
357 - Maildir: When syncing a huge maildir, touch dovecot-uidlist.lock file
358 once in a while to make sure it doesn't get overwritten by another
359 process.
360 - Maildir++ quota: We didn't handle NUL bytes in maildirsize files very
361 well. Now the file is rebuilt when they're seen (NFS problem).
362 - Index/view handling fix should fix some crashes/errors
363 - If index files were moved to a different endianess machine, Dovecot
364 logged all sorts of errors instead of silently rebuilding them.
365 - Convert plugin didn't change hierarchy separators in mailbox names.
366 - PostgreSQL authentication could have lost requests once in a while
367 with a heavily loaded server.
368 - Login processes could have crashed in some situations
369 - auth cache crashed with non-plaintext mechanisms
370
371 v1.0.rc25 2007-03-01 Timo Sirainen <tss@iki.fi>
372
373 * If time moves backwards, Dovecot kills itself instead of giving
374 random problems.
375
376 + Added --with-headers configure option to install .h files.
377 Binary package builders could use this to create some dovecot-dev
378 package to make compiling plugins easier.
379 - PLAIN authentication: Don't crash dovecot-auth with invalid input.
380 - IMAP APPEND: Don't crash if saving fails
381 - IMAP LIST: If prefix.INBOX has children and we're listing under
382 prefix.%, don't drop the prefix.
383 - mbox: Broken X-UID headers still weren't handled correctly.
384 - mail-log plugin: Fixed deleted/undeleted logging.
385
386 v1.0.rc24 2007-02-22 Timo Sirainen <tss@iki.fi>
387
388 * Dovecot now fails to load plugins that were compiled for different
389 Dovecot version, unless version_ignore=yes is set. This needs to be
390 explicitly set in plugins, so out-of-tree plugins won't have this
391 check by default.
392
393 - pop3_lock_session=yes could cause deadlocks, and with maildir the
394 uidlist lock could have been overridden after 2 minutes causing
395 problems
396 - PAM wasted CPU by calling a timeout function 1000x too often
397 - Trash plugin was more or less broken with multiple namespaces and
398 with multiple trash mailboxes
399
400 v1.0.rc23 2007-02-20 Timo Sirainen <tss@iki.fi>
401
402 * deliver doesn't ever exit with Dovecot's internal exit codes anymore.
403 All its internal exit codes are changed to EX_TEMPFAIL.
404 * mbox: X-Delivery-ID header is now dropped when saving mails.
405 * mbox: If pop3_uidl_format=%m, we generate a unique X-Delivery-ID
406 header when saving mails to make sure the UIDL is unique.
407
408 + PAM: blocking=yes in args uses an alternative way to do PAM checks.
409 Try it if you're having problems with PAM.
410 + userdb passwd: blocking=yes in args makes the userdb lookups be done
411 in auth worker processes. Set it if you're doing remote NSS lookups
412 (eg. nss_ldap problems are fixed by this).
413 + If PAM child process hasn't responded in two minutes, send KILL
414 signal to it (only with blocking=no)
415 - IMAP: APPEND ate all CPU while waiting for more data from the client
416 (broken in rc22)
417 - mbox: Broken X-UID headers assert-crashed sometimes
418 - mbox: When saving a message to an empty mbox file it got an UID
419 which immediately got incremented.
420 - mbox: Fixed some wrong "uid-last unexpectedly lost" errors.
421 - auth cache: In some situations we crashed if passdb had extra_fields.
422 - auth cache: Special extra_fields weren't saved to auth cache.
423 For example allow_nets restrictions were ignored for cached entries.
424 - A lot of initial login processes could cause auth socket errors
425 in log file at startup, if dovecot-auth started slowly. Now the
426 login processes are started only after dovecot-auth has finished
427 initializing itself.
428 - imap/pop3 proxy: Don't crash if the remote server disconnects before
429 we're logged in.
430 - deliver: Don't bother trying to save the mail twice into the default
431 mailbox (eg. if it's over quota).
432 - mmap_disable=yes + non-Linux was really slow with large
433 dovecot.index.cache files
434 - MySQL couldn't be used as a masterdb
435 - Trash plugin was more or less broken
436 - imap/pop3 couldn't load plugins if they chrooted
437 - imap/pop3-login process could crash in some conditions
438 - checkpassword-reply crashed if USER/HOME wasn't set
439
440 v1.0.rc22 2007-02-06 Timo Sirainen <tss@iki.fi>
441
442 + pop3: Commit the transaction even if client didn't QUIT so cached
443 data gets saved.
444 - Fixed another indexing bug in rc19 and later which caused
445 transactions to be skipped in some situations, causing all kinds of
446 problems.
447 - mail_log_max_lines_per_sec was a bit broken and caused crashes with
448 dovecot -a
449 - BSD filesystem quota was counted wrong. Patch by Manuel Bouyer
450 - LIST: If namespace has a prefix and inbox=no, don't list
451 prefix.inbox if it happens to exist when listing for %.
452
453 v1.0.rc21 2007-02-02 Timo Sirainen <tss@iki.fi>
454
455 - Cache file handling could have crashed rc20
456
457 v1.0.rc20 2007-02-02 Timo Sirainen <tss@iki.fi>
458
459 + dovecot: Added --log-error command line option to log an error, so
460 the error log is easily found.
461 + Added mail_log_max_lines_per_sec setting. Change it to avoid log
462 throttling with mail_log plugin.
463 - Changing message flags was more or less broken in rc19
464 - ACL plugin still didn't work without separate control directory
465 - Some mbox handling fixes, including fixing an infinite loop
466 - Some index file handling fixes
467 - maildir quota: Fixed a file descriptor leak
468 - If auth_cache was enabled and userdb returned "user unknown"
469 (typically only deliver can do that), dovecot-auth crashed.
470 - mail_log plugin didn't work with pop3
471
472 v1.0.rc19 2007-01-23 Timo Sirainen <tss@iki.fi>
473
474 - ACL plugin didn't work unless control dir was separate from maildir
475 - More index file handling fixes
476
477 v1.0.rc18 2007-01-22 Timo Sirainen <tss@iki.fi>
478
479 * ACL plugin + Maildir: Moved dovecot-acl file from control directory
480 to maildir. To prevent accidents caused by this change, Dovecot
481 kills itself if it finds dovecot-acl file from the control directory.
482 * When opening a maildir, check if tmp/'s atime is over 8h old. If it
483 is, delete files in it with ctime older than 36h. However if
484 atime - ctime > 36h, it means that there's nothing to be deleted and
485 the scanning isn't done. We update atime ourself if filesystem is
486 mounted with noatime.
487 * base_dir doesn't need to be group-readable, don't force it.
488 * mail_read_mmaped setting is deprecated and possibly broken. It's now
489 removed from dovecot-example.conf, but it still works for now.
490 * Removed also umask setting from dovecot-example.conf since currently
491 it doesn't do what it's supposed to.
492
493 + Authentication cache caches now also userdb data.
494 + Added mail_log plugin to log various mail operations. Currently it
495 logs mail copies, deletions, expunges and mailbox deletions.
496 - dict quota: messages=n parameter actually changed storage limit.
497 - A lot of fixes to handling index files. This should fix almost all
498 of the problems ever reported.
499 - LDAP: auth_bind=yes was more or less broken.
500 - Saved mails and dovecot-keywords file didn't set the group from
501 dovecot-shared file.
502 - Fixed potential assert-crash while searching messages
503 - Fixed some crashes with invalid X-UID headers in mboxes
504 - If you didn't have a namespace with empty prefix, giving STATUS
505 command for a non-existing namespace caused the connection to give
506 "NO Unknown namespace" errors for all the future commands.
507
508 v1.0.rc17 2007-01-07 Timo Sirainen <tss@iki.fi>
509
510 - MySQL authentication caused username to show up as "OK" in rc16.
511
512 v1.0.rc16 2007-01-05 Timo Sirainen <tss@iki.fi>
513
514 * IMAP: When trying to fetch an already expunged message, Dovecot used
515 to just disconnect client. Now it instead replies with dummy NIL
516 data.
517 * Priority numbers in plugin names have changed. If you're installing
518 from source, you should delete the existing plugin files before
519 installing the new ones, otherwise you'll get errors.
520 * Maildir: We're using rename() to move files from tmp/ to new/ now.
521 See http://wiki.dovecot.org/MailboxFormat/Maildir -> "Issues with
522 the specification" for reasoning why this is safe. This makes saving
523 mails faster, and also makes Dovecot usable with Mac OS X's HFS+
524 (after you also set dotlock_use_excl=yes, see below).
525
526 + Added dotlock_use_excl setting. If enabled, dotlocks are created
527 directly using O_EXCL flag, instead of by creating a temporary file
528 which is hardlinked. O_EXCL is faster, but may not work with NFS.
529 + If Dovecot crashes with Linux or Solaris, it'll log a
530 "Raw backtrace". It's worse than gdb's backtrace, but better than
531 nothing.
532 + Added maildir_copy_preserve_filename=yes setting.
533 + Added a lazy-expunge plugin to allow users to unexpunge their mails.
534 + maildir quota: Added ignore setting to maildir quota, which allows
535 ignoring quota in Trash mailbox.
536 + dict quota: If dictionary doesn't yet contain the quota, calculate
537 it by going through all the mails in all the mailboxes.
538 + login_log_format_elements: Added %a=local port and %b=remote port
539 + Added -i and -o options to rawlog to restrict logging only to
540 input or output.
541 - Doing a STATUS command for a selected mailbox (not a recommended
542 IMAP client behavior) caused Dovecot to sync the mailbox silently.
543 This could have lost eg. EXPUNGE events from clients, causing them
544 to use wrong sequence numbers.
545 - deliver was treating boolean settings set to "no" as if they were
546 "yes" (they were supposed to be commented out for "no")
547 - Running "dovecot" with -a or -n option while Dovecot was running
548 deleted all authentication sockets, which caused all the future
549 logins to fail.
550 - maildir: RENAME and DELETE didn't touch control directory if it was
551 different from maildir or index dir.
552 - We treated internal userdb lookup errors as "user unknown" errors.
553 In such situations this caused deliver to think the user didn't
554 exist and the mail get bounced.
555 - pam: Setting cache_key crashed
556 - shared maildir: dovecot-keywords file's mode wasn't taken from
557 dovecot-shared file.
558 - dovecotpw wasn't working with PowerPC
559
560 v1.0.rc15 2006-11-19 Timo Sirainen <tss@iki.fi>
561
562 * Fixed an off-by-one buffer overflow in cache file handling. The
563 code is executed only with mmap_disable=yes and only if index files
564 are used (ie. INDEX=MEMORY is safe).
565 * passdb checkpassword: Handle vpopmail's non-standard exit codes.
566
567 - rc14 sometimes assert-crashed if .log.2 file existed in a mailbox
568 (earlier versions leaked memory and file descriptors)
569 - io_add() assert-crashfixes
570 - Potential SSL hang fix at the beginning of the connection
571
572 v1.0.rc14 2006-11-12 Timo Sirainen <tss@iki.fi>
573
574 * LDAP: Don't try to use ldap_bind() with empty passwords, since
575 Windows 2003 AD skips password checking with them and just returns
576 success.
577 * verbose_ssl=yes: Don't bother logging "syscall failed: EOF"
578 messages. No-one cares about them.
579
580 + Dovecot sources should now compile without any warnings with gcc 3.2+
581 - rc13 crashed if client disconnected while IDLEing
582 - LDAP: auth_bind=yes fixes
583 - %variables: Fixed zero padding handling and documented it. %0.1n
584 shouldn't enable it, and it really shouldn't stay for the next
585 %variable. -sign also shouldn't stay for the next variable.
586 - Don't leak opened .log.2 transaction logs.
587 - Fixed a potential hang in IDLE command (probably really rare).
588 - Fixed potential problems with client disconnecting while master was
589 handling the login.
590 - quota plugin didn't work in Mac OS X
591
592 v1.0.rc13 2006-11-08 Timo Sirainen <tss@iki.fi>
593
594 + deliver: If we're executing as a normal system user, get the HOME
595 environment from passwd if it's not set. This makes it possible to
596 run deliver from .forward.
597 - Older compilers caused LDAP authentication to crash
598 - Dying LDAP connections weren't handled exactly correctly in rc11,
599 although it seemed to work usually
600 - Fixed crashes and memory leaks with AUTHENTICATE command
601 - Fixed crashes and leaks with IMAP/POP3 proxying
602 - maildir: Changing a mailbox while another process was saving a
603 message there at the same may have caused the changes to not be made
604 into the maildir, which could have caused other problems later..
605
606 v1.0.rc12 2006-11-05 Timo Sirainen <tss@iki.fi>
607
608 - rc11 didn't compile with some compilers
609 - default_mail_env fallbacking was broken with --exec-mail
610
611 v1.0.rc11 2006-11-05 Timo Sirainen <tss@iki.fi>
612
613 * Renamed default_mail_env to mail_location. default_mail_env still
614 works for backwards compatibility.
615 * deliver: When sending rejects, don't include Content-Type in the
616 rejected mail's headers.
617 * LDAP changes:
618 * If auth binds are used, bind back to the default dn before doing
619 a search. Otherwise it could fail if a user gave an invalid
620 password.
621 * Initial binding at connect is now done asynchronously.
622 * Use pass_attrs even with auth_bind=yes since it may contain
623 useful non-password fields.
624
625 + passdb checkpassword: Give TCPLOCALIP and TCPREMOTEIP and PROTO=TCP
626 environments to the checkpassword binary so we're UCSPI (and vchkpw)
627 compatible.
628 - mbox handling was a bit broken in rc10
629 - Using Dovecot via inetd kept crashing dovecot master
630 - deliver: Don't crash with -f "". Changed the default from envelope
631 to be "MAILER-DAEMON".
632 - INBOX wasn't shown with LSUB command if only prefixed namespaces
633 were used.
634 - passdb ldap: Reconnecting to LDAP server wasn't working with
635 auth binds.
636 - passdb sql: Non-plaintext authentication didn't work
637 - MySQL passdb ignored all non-password checks, such as allow_nets
638 - trash plugin was broken
639
640 v1.0.rc10 2006-10-16 Timo Sirainen <tss@iki.fi>
641
642 * When matching allowed_nets IPs, convert IPv6-mapped-IPv4 addresses
643 to actual IPv4 addresses first.
644
645 + IMAP: Try to avoid sending duplicate/useless message flag updates
646 + Added support for non-plaintext authentication for vpopmail if it
647 returns plaintext passwords. Based on patch by Remi Gacogne.
648 + Added %D modified to return "sub.domain.org" as
649 "sub,dc=domain,dc=org" (for LDAP queries). Patch by Andrey Panin.
650 - rc9 broke cache files in 64bit systems
651 - deliver works now with mail_chroot
652 - auth cache didn't work properly with multiple passdbs
653 - Fixes to handling CRLF linefeeds in mboxes.
654
655 v1.0.rc9 2006-10-14 Timo Sirainen <tss@iki.fi>
656
657 * 64bit systems: dovecot.index.cache file will be rebuilt because
658 some time fields have been changed from 64bit fields to 32bit
659 fields. Now the same cache file can be used in both 32bit and
660 64bit systems without it being rebuilt.
661 * Added libmysqlclient workaround to conflicting sha1_result symbol,
662 which caused Dovecot to fail logging into MySQL.
663
664 + dovecot.index.cache file opening is delayed until it's actually
665 needed. This reduces disk accesses a bit with eg. STATUS commands.
666 + auth_cache: Try to handle changing passwords automatically: If
667 password verification fails, but the last one had succeeded, don't
668 use the cache. This works only with plaintext auth.
669 - dovecot.index.cache: We didn't properly detect if some fields were
670 different length than we expected, which caused assert crashes
671 - Lots of fixes to login/master process handling
672 - mbox: Fixed a bug causing "X-IMAPbase uid-last unexpectedly lost
673 in mbox file" errors, and possibly others.
674
675 v1.0.rc8 2006-10-09 Timo Sirainen <tss@iki.fi>
676
677 * GSSAPI: Changed POP3 service name to "pop", which is what the
678 standard says
679 * "mbox:/var/mail/%u" no longer works as the mail location. You'll
680 have to specify the mail root explicitly, just like the examples
681 always have: "mbox:~/mail:INBOX=/var/mail/%u"
682
683 + SHA1, LDAP-MD5, PLAIN-MD5, PLAIN-MD4: The password can be now either
684 hex or base64 encoded. The encoding is detected automatically based
685 on the password string length.
686 + Allow running only Dovecot master and dovecot-auth processes with
687 protocols=none setting
688 + deliver: -f <envelope sender> parameter can be used to set mbox
689 From_-line's sender address
690 + deliver: Log all mail saves and failures
691 + Tru64 SIA passdb support. Patch by Simon L Jackson.
692 - INBOX was listed twice in mailbox list if namespace prefix was used
693 - INBOX-prefixed namespaces were a bit broken
694 - kqueue: Fix 100% CPU usage
695 - deliver: Duplicate storage was a bit broken
696 - dictionary code was broken (ie. dict quota)
697 - SIGHUP caused crashes sometimes
698
699 v1.0.rc7 2006-08-18 Timo Sirainen <tss@iki.fi>
700
701 * Require that Dovecot master process's version number matches the
702 child process's, unless version_ignore=yes. Usually it's an
703 accidental installation problem if the version numbers don't match.
704 * Maildir: Create maildirfolder file when creating new maildirs.
705
706 + ldap+prefetch: Use global uid/gid settings if LDAP query doesn't
707 return them
708 + %variables: Negative offsets count from the end of the string.
709 Patch by Johannes Berg.
710 - kqueue ioloop code rewrite
711 - notify=kqueue might have caused connection hangs sometimes
712 - deliver: If message body contained a valid mbox From_ line, it
713 and the rest of the message was skipped.
714 - mbox: We got into infinite loops if trying to open a 2 byte sized
715 file as mbox.
716 - Don't crash with ssl_disable=yes
717 - quota plugin caused compiling problems with some OSes
718 - mbox: After saving a mail to a synced mbox, we lost the sync which
719 caused worse performance
720
721 v1.0.rc6 2006-08-07 Timo Sirainen <tss@iki.fi>
722
723 * Removed login_max_logging_users setting since it was somewhat weird
724 in how it worked. Added login_max_connections to replace it with
725 login_process_per_connection=no, and with =yes its functionality
726 is now within login_max_processes_count.
727
728 + Added --with-linux-quota configure option to specify which Linux
729 quota version to use, in case it's not correct in sys/quota.h.
730 Usually used as --with-linux-quota=2
731 + acl plugins: If .DEFAULT file exists in global ACL root directory,
732 use it as the default ACLs for all mailboxes.
733 - Fixes to login process handling, especially with
734 login_process_per_connection=no.
735 - Back to the original SSL proxy code but with one small fix, which
736 hopefully fixes the occational hangs with it
737 - Several fixes to handling LIST command more correctly.
738
739 v1.0.rc5 2006-08-02 Timo Sirainen <tss@iki.fi>
740
741 - Saving to mboxes still caused assert-crashes
742
743 v1.0.rc4 2006-08-02 Timo Sirainen <tss@iki.fi>
744
745 - Saving to mboxes caused assert-crashes
746
747 v1.0.rc3 2006-08-02 Timo Sirainen <tss@iki.fi>
748
749 - SSL connections hanged sometimes, especially when saving messages.
750 - mbox: Mail bodies were saved with CR+LF linefeeds
751 - Mail forwarding was broken with deliver/Sieve
752 - dbox fixes. Might actually be usable now.
753 - Index file handling fixes with keywords
754 - Cache file was incorrectly used in some situations, which probably
755 caused problems sometimes.
756 - Maildir++ quota: Don't count "." and ".." directory sizes to quota.
757 After rewriting maildirsize file keep its fd open so that we can
758 later update it. Patch by Alexander Zagrebin
759
760 v1.0.rc2 2006-07-04 Timo Sirainen <tss@iki.fi>
761
762 * disable_plaintext_auth=yes: Removed hardcoded 127.* and ::1 IP
763 checks. Now we just assume that the connection is secure if the
764 local IP matches the remote IP address.
765 * SSL code rewrite which hopefully makes it work better than before.
766 Seems to work correctly, but if you suddently have trouble with SSL
767 connections this is likely the reason.
768
769 + verbose_ssl=yes: Log also SSL alerts and BIO errors
770 - If namespace's location field wasn't set, the default location
771 was supposed to be used but it wasn't.
772 - When copying ssl-parameters.dat file from /var/lib to /var/run its
773 permissions went wrong if it couldn't be copied with hard linking.
774 - Fixed filesystem quota plugin to work with BSDs.
775 - Maildir: Saving mails didn't work if quota plugin was enabled (again)
776 - Maildir: Messages' received time wasn't saved properly when
777 saving/copying multiple messages at a time. Also if using quota
778 plugin the S= size was only set for the first saved file, and even
779 that was wrong.
780 - passdb passwd-file: Don't require valid uid/gid fields if file
781 isn't also being used as a userdb.
782 - PostgreSQL: Handle failures better so that there won't be
783 "invalid fd" errors in logs.
784 - Don't try to expunge messages if the mailbox is read-only. It'll
785 just cause our index files to go out of sync with the real
786 mailbox and cause errors.
787 - ANONYMOUS authentication mechanism couldn't work because
788 anonymous_username setting wasn't passed from master process.
789
790 v1.0.rc1 2006-06-28 Timo Sirainen <tss@iki.fi>
791
792 * PAM: If user's password is expired, give "Password expired" error
793 message to the user. Now actually working thanks to Vaidas Pilkauskas
794 * Relicensed dovecot-auth, lib-sql and lib-ntlm to MIT license. See
795 COPYING file for more information.
796 * Abuse prevention: When creating a mailbox, limit the number of
797 hierarchies (up to 20) and the length of the mailbox name within
798 a hierarchy (up to 200 characters).
799 * mbox: If saved mail doesn't end with LF, add it ourself so that the
800 mails always have one empty line before the next From-line.
801
802 + Added --with-statedir configure option which defaults to
803 $localstatedir/lib/dovecot. ssl-parameters.dat is permanently
804 stored in that directory and is copied to login_dirs from there.
805 + IMAP: Support SASL-IR extension (SASL initial response)
806 + Support initial SASL response with LOGIN mechanism. Patch by Anders
807 Karlsson
808 + Added PLAIN-MD4 password scheme. Patch by Andrey Panin.
809 + Added support for XFS disk quotas. Patch by Pawel Jarosz
810 + If another process deletes the opened mailbox, try to handle it
811 without writing errors to log file. Handles the most common cases.
812 + Added TLS support for LDAP if the library supports it.
813 - SEARCH command was more or less broken with OR and NOT conditions
814 - Dovecot corrupted mbox files which had CR+LF linefeeds in headers
815 - MySQL code could have crashed while escaping strings
816 - MD4 code with NTLM authentication was broken with 64bit systems.
817 Patch by Andrey Panin
818 - Plugin loading was broken in some OSes (eg. FreeBSD)
819 - Several fixes to handling empty values in configuration file
820 - Several fixes to dictionary quota backend and dict server.
821 Also changed how they're configured.
822 - deliver: Fixed plugin handling settings
823 - mbox_min_index_size handling was somewhat broken
824 - passdb passwd-file: extra_args field wasn't read unless the file
825 was also used as userdb.
826
827 v1.0.beta9 2006-06-13 Timo Sirainen <tss@iki.fi>
828
829 * PAM: Don't call pam_setcred() unless setcred=yes PAM passdb
830 argument was given.
831 * Moved around settings in dovecot-example.conf to be in more logical
832 groups.
833
834 + Local delivery agent (deliver binary) works again.
835 + LDAP: Added support for SASL binding. Patch by Geert Jansen
836 + ssl_verify_client_cert: Check CRLs. If auth_verbose=yes, log
837 invalid sent certificates. If verbose_ssl=yes, log even the valid
838 certificates. When using the username from the certificate, use
839 CommonName. Based on patch by HenkJan Wolthuis
840 + PAM: Set PAM_TTY which is needed by some PAM plugins
841 + dovecot --exec-mail ext <binary path> can now be used to start
842 binaries which want dovecot.conf to be read, for example the
843 convert-tool.
844 - Expunging needed to be done twice if client used STORE +FLAGS.SILENT
845 command to set the \Deleted flags
846 - Added sql_escape_string() to lib-sql API and use it instead of
847 normal \-escaping.
848 - ACL plugin fixes
849 - DIGEST-MD5: Trying to use subsequent authentication crashed
850 dovecot-auth.
851 - Fetching BODY when BODYSTRUCTURE was already cached caused the
852 reply to be broken in some cases
853 - Lots of fixes for index file handling
854 - dbox fixes and changes
855 - mbox syncing broke if some extraneous/broken headers were removed
856 (eg. extra X-IMAPbase headers in mails)
857 - Running Dovecot from inetd work now properly with POP3
858 - Quota plugin fixes for calculating the quota correctly
859
860 v1.0.beta8 2006-05-12 Timo Sirainen <tss@iki.fi>
861
862 * Fixed a security hole with mbox: "1 LIST .. *" command could
863 list all directories and files under the mbox root directory, so
864 if your mails were stored in eg. /var/mail/%u/ directory, the
865 command would list everything under /var/mail.
866
867 + Unless nfs_check=no or mmap_disable=yes, check for the first login
868 if the user's index directory exists in NFS mount. If so, refuse to
869 run. This is done only on first login to avoid constant extra
870 overhead.
871 + If we have plugins set and imap_capability unset, figure out the
872 IMAP capabilities automatically by running imap binary at startup.
873 The generated capability list isn't updated until Dovecot is
874 restarted completely, so if you add or remove IMAP plugins you
875 should restart. If you have problems related to this, set
876 imap_capabilities setting manually to work around it.
877 + Added auth_username_format setting
878 - pop3_lock_session setting wasn't really working
879 - Lots of fixes related to quota handling. It's still not working
880 perfectly though.
881 - Lots of index handling fixes, especially with mmap_disable=yes
882 - Maildir: saving mails could have sometimes caused "Append with UID
883 n, but next_uid = m" errors
884 - flock() locking never timeouted because ignoring SIGALRM caused the
885 system call just to be restarted when SIGALRM occurred (probably not
886 with all OSes though?)
887 - kqueue: Fixed "Unrecognized event". Patch by Vaclav Haisman
888
889 v1.0.beta7 2006-04-12 Timo Sirainen <tss@iki.fi>
890
891 + Added shutdown_clients setting to control if existing imap/pop3
892 processes should be killed when master is.
893 - Master login fixes, PLAIN authentication was still broken..
894
895 v1.0.beta6 2006-04-12 Timo Sirainen <tss@iki.fi>
896
897 * The login and master usernames were reversed when using
898 master_user_separator (now the order is UW-IMAP compatible).
899 * Killing dovecot master process now kills all IMAP and POP3
900 processes also.
901
902 + -a parameter to dovecot prints now all settings that Dovecot uses.
903 -n prints all settings that are different from defaults.
904 + Added pop3_lock_session setting
905 + %M modifier returns string's MD5 sum. Patch by Ben Winslow
906 - PLAIN SASL authentication wasn't working properly, causing failed
907 logins with some clients (broken in beta4)
908 - Fixes to Maildir++ quota, should actually work now
909 - Don't crash if passwd-file has entries without passwords
910 (eg. deny=yes databases)
911 - Fixed prefetch userdb to work nicely with other userdbs
912 - If master process runs out of file descriptors, don't go to
913 infinite loop (unlikely to have happened unless the OS's default
914 fd limit was too low)
915 - Fixed non-plaintext password lookups from LDAP. Patch by Lior Okman
916 - %U modifier was actually lowercasing the string. Patch by Ben Winslow
917
918 v1.0.beta5 2006-04-04 Timo Sirainen <tss@iki.fi>
919
920 - Beta4's SSL proxying rewrite worked worse than I thought.
921 Reverted it back to original code.
922
923 v1.0.beta4 2006-04-02 Timo Sirainen <tss@iki.fi>
924
925 * Changed the default lock_method back to fcntl. Apparently flock
926 gives problems with some systems.
927 * mbox: mailboxes beginning with '.' are now also listed
928 * Replaced mail_use_modules and mail_modules settings with mail_plugins
929 and mail_plugin_dir. Now instead of loading all plugins from the
930 directory, you'll have to give a list of plugins to load. If the
931 plugin couldn't be loaded, the process exits instead of just
932 ignoring the problem (this is important with ACL plugin).
933
934 + Added support for "master users" who can log in as other people.
935 The master username can be given either in authorization ID
936 string with SASL PLAIN mechanism or by setting
937 auth_master_user_separator and giving it within the normal username
938 string.
939 + Added ACL plugin with ACL file backend. This however doesn't mean
940 that there yet exists a proper shared folder support. If master user
941 logged in as someone else, the ACLs are checked as the master user.
942 + Added some Dovecot extensions to checkpassword passdb, see ChangeLog
943 + Updated passwd-file format to allow specifying any key=value fields
944 + Maildir++ quota support and several quota fixes
945 + passdb supporting extra fields: Added "allow_nets" option which takes
946 a comma separated list of IPs/networks where to allow user to log in.
947 + NFS: Handle ESTALE errors the best way we can
948 + IMAP now writes to log when client disconnects
949 + In shared mailboxes (if dovecot-shared file exists) \Seen flags are
950 now kept only in index files, so as long as each user has a separate
951 index file they have separate \Seen flags.
952 - Fixes to DIGEST-MD5 realm handling so it works with more clients
953 - BODYSTRUCTURE -> BODY conversion from cache file was broken with
954 mails containing message/rfc822 parts.
955 - Fixed several memory leaks
956 - We could have sent client FETCH notifications about messages before
957 telling about them with EXISTS
958 - Compiling fixes for Solaris and some other OSes
959 - Fixed problem with internal timeout handling code, which caused eg.
960 outlook-idle workaround to break.
961 - If /dev/urandom didn't exist, we didn't seed OpenSSL's random number
962 generator properly. Patch by Vilmos Nebehaj.
963 - Maildir: Recent flags weren't always immediately removed from mails
964 when mailbox was opened.
965 - Several changes to SSL proxying code, hopefully making it work
966 better.
967
968 v1.0.beta3 2006-02-08 Timo Sirainen <tss@iki.fi>
969
970 * Dotlock code changed to timeout faster in some situations when
971 the lock file is old.
972 + Added support for loading SQL drivers dynamically (see INSTALL file
973 for how to build them)
974 + Keywords are stored to dboxes, and other dbox improvements.
975 + dict-sql could actually work now, making quota-in-sql-database
976 possibly working now (not fully tested)
977 + Added mail storage conversion plugin to convert automatically from
978 one mailbox format to another while user logs in. Doesn't preserve
979 UIDVALIDITY/UIDs though.
980 + Added plugin { .. } section to dovecot.conf for passing parameters
981 to plugins (see dovecot-example.conf).
982 + Added ssl-build-param binary which is used to generate
983 ssl-parameters.dat. Main dovecot binary doesn't anymore link to
984 SSL libraries, and this also makes the process title be clearer
985 about why the process is eating all the CPU.
986 - Fix building without OpenSSL
987 - Fixed memory leak in MySQL driver
988 - Fixes to checkpassword
989 - Broken Content-Length header could have broken mbox opening
990 - Fixed potential hangs after APPEND command
991 - Fixed potential crashes in dovecot-auth and imap/pop3-login
992 - zlib plugin now links with -lz so it could actually work
993 - kqueue fixes by Vaclav Haisman
994
995 v1.0.beta2 2006-01-22 Timo Sirainen <tss@iki.fi>
996
997 + Added SQLite support. Patch by Jakob Hirsch.
998 + Added auth_debug_passwords setting. If it's not enabled, hide all
999 password strings from logs.
1000 + Added mail_cache_min_mail_count and mbox_min_index_size settings
1001 which can be used to make Dovecot do less disk writes in small
1002 mailboxes where they don't benefit that much.
1003 + Added --build-ssl-parameters parameter to dovecot binary
1004 - SSL parameters were being regenerated every 10 minutes, although
1005 not with all systems.
1006 - Fixed dovecot-auth crashing at startup. Happened only with some
1007 specific compilers.
1008 - base_dir was supposed to be set world-readable, not world-writable
1009
1010 v1.0.beta1 2006-01-16 Timo Sirainen <tss@iki.fi>
1011
1012 * Almost a complete rewrite since 0.99.x, but some of the major
1013 changes are:
1014
1015 + Index file code rewritten to do less disk I/O, wait locks less and
1016 in generate be smarter. They also support being in clustered
1017 filesystems and NFS support is mostly working also.
1018 + Mail caching is smarter. Only the data that client requests is
1019 cached. Before Dovecot opened and cached all mails when mailbox was
1020 opened the first time, which was slow.
1021 + Mbox handling code rewritten to be much faster, safer and correct
1022 + New authentication mechanisms: APOP, GSSAPI, LOGIN, NTLM and RPA.
1023 + LDAP supports authentication binds
1024 + Authentication server can cache password database lookups
1025 + Support for multiple authentication databases
1026 + Namespace configuration
1027 + Dovecot works with shared
1028
1029 v0.99.10 2003-06-26 Timo Sirainen <tss@iki.fi>
1030
1031 * Default PAM service name changed to "dovecot". This means that
1032 if you're using PAM, you most likely have to do
1033 mv /etc/pam.d/imap /etc/pam.d/dovecot
1034 If you wish to keep using imap, see doc/auth.txt.
1035
1036 * ~/rawlog directory changed to ~/dovecot.rawlog
1037
1038 + Faster and better maildir synchronization. We support read-only
1039 maildirs and out-of-quota conditions are handled a lot better.
1040 dovecot-uidlist file still isn't out-of-quota-safe though, but you
1041 can keep it in another location where quota isn't checked. For
1042 example:
1043 default_mail_env = Maildir:~/Maildir:
1044 INDEX=/noquota/%u:CONTROL=/noquota/%u
1045 + Read-only mboxes are supported now.
1046 + Only NOOP and CHECK now always do a mailbox sync checking. Other
1047 commands sync max. once in 5 seconds, plus always from indexes.
1048 This should reduce I/O a bit.
1049 + All NUL characters are translated to ascii #128 before sending to
1050 client. RFC prohibits sending NULs and this is how UW-IMAP handles
1051 it as well.
1052 + Make ENVELOPE, BODY and BODYSTRUCTURE replies more compact by
1053 removing multiple LWSPs and translating TABs to spaces. RFC doesn't
1054 specifically require this, but this seems to be the wanted
1055 behaviour..
1056 + Added ANONYMOUS SASL mechanism.
1057 + More flexible user chrooting configuration in home directories:
1058 "<chroot>/./<homedir>"
1059 + Added support for dynamically loadable IMAP/POP3 modules. See
1060 INSTALL file for more information.
1061 - Partial fetches were broken if mails had CR+LF linefeeds
1062 - SEARCH DELETED didn't return anything if all messages were deleted
1063 - OpenSSL support was broken in many installations because we were
1064 chrooted and it couldn't open /dev/urandom.
1065 - PAM: Giving wrong password blocked the whole process for two
1066 seconds. Now we create a new process for each check.
1067 - Lots of other smaller bugfixes and better error handling
1068
1069 v0.99.9.1 2003-05-03 Timo Sirainen <tss@iki.fi>
1070
1071 - Messages having lines longer than 8192 bytes caused problems.
1072 - There was some problems when opening a mbox first time that had been
1073 empty for a while.
1074 - Didn't compile with OpenBSD.
1075 - POP3 server crashed sometimes instead of printing error message.
1076 - If cached IMAP envelope contained literals, SEARCHing in it wrote
1077 errors to log file. For example if subject contained highascii, '"'
1078 or '\' characters this happened.
1079
1080 v0.99.9 2003-04-28 Timo Sirainen <tss@iki.fi>
1081
1082 * WARNING: mbox rewriting works now faster, but it's less likely to
1083 notice external message flag changes (it wasn't perfect before
1084 either). This also means that if you're not using index files,
1085 Dovecot may not notice changes made by another Dovecot process.
1086 This will be fixed later.
1087
1088 + Message UIDs are now permanently stored outside index files.
1089 Deleting indexes is now possible without any kind of data loss and
1090 in-memory indexes are now usable.
1091 + mbox rewriting leaves extra space into X-Keywords header. It's
1092 shrinked or grown when updating message flag headers to avoid
1093 rewriting the rest of the file.
1094 + imap-login and pop3-login can now be started from inetd. Privilege
1095 separation is still used, so it executes dovecot and dovecot-auth
1096 processes which are left on the background.
1097 + PostgreSQL authentication support, patch by Alex Howansky
1098 - Large multiline headers (over 8kB) broke Dovecot before. Now they're
1099 parsed one line at a time and we try to avoid reading them fully into
1100 memory.
1101 - SEARCH OR was broken
1102 - Partial BODY[] fetches were broken
1103 - Timezones were still set wrong when parsing dates
1104 - Using non-synchronized literals (LITERAL+) broke APPEND
1105 - Renaming maildir subfolders inserted extra "." in the middle.
1106 - Subfolders were a bit broken with maildir
1107 - Invalid PLAIN auth request crashed auth process.
1108
1109 v0.99.8 2003-02-25 Timo Sirainen <tss@iki.fi>
1110
1111 * NOTE: Configuration file has changed a bit: auth_userinfo was
1112 replaced by userdb and passdb. *_port were merged into *_listen.
1113 Disabling listening in imaps port is now done by changing protocols
1114 setting.
1115
1116 * Maildir: .customflags location has changed for INBOX. If you have
1117 set any custom flags, move Maildir/.INBOX/.customflags into
1118 Maildir/.customflags or they will be lost.
1119
1120 * mbox: Autodetect /var/mail/%u and /var/spool/mail/%u as INBOXes
1121 if they're found and mail_default_env isn't set.
1122
1123 * passwd-file: File format changed a bit. If you used realm or mail
1124 fields, you'll have to fix the file. See doc/auth.txt for description
1125 of the format.
1126
1127 + Fully featured POP3 server included. Disabled by default.
1128 + Support for LITERAL+, MULTIAPPEND, UNSELECT, IDLE, CHILDREN and
1129 LISTEXT extensions.
1130 + LDAP authentication support.
1131 + Internal API cleanups made Dovecot faster and take less memory
1132 + auth_verbose logs now all authentication failures
1133 + Support for Solaris 9 sendfilev()
1134 + New setting: mail_full_filesystem_access allows clients to access the
1135 whole filesystem by simply giving the path before the mailbox name
1136 (eg. SELECT ~user/mail/box, LIST "" /tmp/%). While this allows users
1137 to share mailboxes, it's not recommended since Dovecot's index files
1138 can't be safely shared.
1139 + New setting: client_workarounds.
1140 + Dynamically loadable authentication modules. Binary package builders
1141 should consider using it for at least LDAP.
1142 + mbox: Content-Length is saved now to each saved message, so it's
1143 now safe to have lines beginning with "From ".
1144 + mbox: mail_read_mmaped = no works with it now
1145 + Indexes can be kept in memory by adding :INDEX=MEMORY to MAIL
1146 environment. There's not much point to do this now though, since the
1147 UIDs won't be saved.
1148 - COPY now behaves as RFC2060 says: "If the COPY command is
1149 unsuccessful for any reason, server implementations MUST restore the
1150 destination mailbox to its state before the COPY attempt."
1151 - LIST and LSUB rewrite, should fix several bugs in them
1152 - maildir_copy_with_hardlinks = yes was broken.
1153 - mboxes in subfolders weren't selectable.
1154 - STORE didn't accept multiple flags without () around them
1155 - PLAIN SASL-authentication was a bit broken.
1156 - IMAP dates were parsed a few hours wrong
1157 - STATUS command removed \Recent flags from messages
1158 - Several bugfixes to SEARCH command, especially related to multiple
1159 search conditions
1160 - If auth/login process died unexpectedly at startup, the exit status
1161 or killing signal wasn't logged.
1162 - mbox parsing might have crashed sometimes
1163 - mbox: when saving mails, internal headers were allowed in input,
1164 sometimes causing problems (eg. duplicate headers) when appending
1165 and copying messages
1166 - mbox: X-Keywords headers were duplicated
1167 - Some small fixes to how messages are saved to Maildir
1168 - Next command after STARTTLS was ignored which left the connection
1169 stuck sometimes
1170 - Dovecot was pretty much broken with FreeBSD
1171
1172 v0.99.7 2003-01-14 Timo Sirainen <tss@iki.fi>
1173
1174 + Rewrote doc/index.txt, small updates to doc/design.txt and
1175 doc/multiaccess.txt
1176 - New hash table code was broken with removing, which broke several
1177 things. Fixed, but it's still a bit ugly code though..
1178
1179 v0.99.6 2003-01-13 Timo Sirainen <tss@iki.fi>
1180
1181 + THREAD=REFERENCES extension support. ORDEREDSUBJECT would be easy to
1182 add, but I think it's pretty useless.
1183 + SORT is much faster now.
1184 + mbox: If ~/mail directory isn't found, create it.
1185 + Log login usernames
1186 * Some coding style changes (less typedefs)
1187 - Mails with nested MIME parts might have caused incorrect BODY and
1188 BODYSTRUCTURE fetches and sometimes might have crashed dovecot
1189 (assert at imap-bodystructure.c). If client had already successfully
1190 done the BODY fetching a couple of times, the bug couldn't happen
1191 anymore since Dovecot then began caching the BODY data. So, this
1192 mostly happened with new users.
1193 - non-UID SEARCH might gave wrong replies in certain conditions.
1194 - SORT replied always with UIDs instead of sequences.
1195 - If authentication was aborted by client ("*" reply to AUTHENTICATE),
1196 the login process crashed later.
1197 - STATUS command gave invalid reply for mailboxes with spaces in name
1198 - Timezones were parsed wrong with message dates
1199 - Digest-MD5: We used "qop-options" instead of "qop", which was
1200 incompatible with at least Cyrus SASL.
1201 - Realms in passwd-file were buggy
1202 - Literals didn't work when logging in
1203 - Crashed if it had to wait for mbox lock
1204 - With invalid configuration auth and login processes were just dying
1205 and master filling log files infinitely.
1206 - We didn't work with some 64bit systems
1207
1208 v0.99.5 2003-01-02 Timo Sirainen <tss@iki.fi>
1209
1210 * This release includes a lot of code cleanups, especially related to
1211 security. Direct buffer modifying was replaced in several places
1212 with a new buffer API, which provides a safe way to do it. Code that
1213 looks unsafe contains @UNSAFE tag to make auditing easier.
1214
1215 + Support for SORT extension. Originally I thought about not
1216 implementing any extensions before 1.0, but too many people want
1217 webmails which want SORT. THREAD is another extension which they
1218 want, but we don't support it yet.
1219 + imap_listen and imaps_listen settings now accept "*" and "::" to
1220 specify if we want to listen in IPv4 or IPv6 addresses. "::" may
1221 also listen in all IPv4 addresses depending on the OS (Linux does,
1222 BSD doesn't)
1223 + New setting: default_mail_env can be used to specify where to find
1224 users mailbox. Default is still to use autodetection.
1225 + New setting: imap_log_path to log logins etc. informational messages
1226 to different file.
1227 + We support now separate mbox file for INBOX folder, no need for
1228 symlink kludging anymore.
1229 + Support for keeping index files in different location than actual
1230 mailboxes.
1231 ? Disabled mailbox_check_interval setting by default, it breaks
1232 Evolution.
1233 - SEARCH was still somewhat buggy, especially with laggy networks.
1234 Also body/header searches might have crashed or at least used
1235 memory too much
1236 - Deleting messages in the middle of mbox caused dovecot to reindex
1237 the following messages as new messages (ie. change UIDs and set
1238 \Recent flag).
1239 - Digest-MD5 auth: Initial server challenge packet was missing a comma,
1240 which might have made it incompatible with some implementations.
1241 - Some more fixes to unnecessarily high memory usage
1242 - SELECT and EXAMINE often printed UNSEEN reply or maybe complained
1243 about corrupted indexes. Happened usually only with mbox.
1244 - FETCH BODYSTRUCTURE gave incorrect reply, breaking pine
1245 - LIST was pretty buggy with mbox subfolders
1246 - CHECK command returned just "missing parameters" error
1247 - DELETE didn't work with mbox folders
1248 - CREATE mailbox<hierarchy separator> failed always.
1249 - CREATE and RENAME didn't create required hierarchies with mbox
1250 - RFC822 date parser didn't handle single digit days correctly.
1251 - login_process_per_connection = yes didn't work with imaps port
1252 connections which is exactly where it was mostly wanted.
1253 - ssl_disabled = yes didn't disable listening in imaps port
1254 - process limiting code didn't compile everywhere (eg. FreeBSD).
1255 - Linux sendfile() was never detected
1256 - We didn't work at all with gcc/PowerPC
1257
1258 v0.99.4 2002-12-01 Timo Sirainen <tss@iki.fi>
1259
1260 - Command parser had several bugs when it didn't have enough data to
1261 parse the full command in one call, ie. network lags etc. triggered
1262 those bugs sometimes. This was the last "weird bug" I know of.
1263 - Mbox indexes got broken when updating cached fields
1264 - Fixed a few memory leaks and unneededly high memory usage while
1265 caching envelopes
1266 - Fixes to searching from message body and header
1267 - --with-ssldir didn't do anything and the default was empty
1268
1269 v0.99.3 2002-11-26 Timo Sirainen <tss@iki.fi>
1270
1271 - mail_read_mmaped = no (default) caused mbox corruption with EXPUNGE.
1272 mmap()ing is forced for now.
1273
1274 v0.99.2 2002-11-26 Timo Sirainen <tss@iki.fi>
1275
1276 + If we have to wait for a lock longer, the client is now notified
1277 about it every 30 seconds.
1278 - Default settings still pointed to lib directory instead of the
1279 libexec directory where the binaries were actually installed
1280 - vpopmail support had to be kludged to fix a bug in vpopmail library
1281 which sometimes left extra character after the user name.
1282 - Login process crashed if master process didn't let some user login.
1283 Normally this couldn't happen without error in configuration.
1284 - select() based I/O loop wasn't working so Dovecot didn't work in
1285 eg. OSX. Also PAM authentication wasn't detected with OSX.
1286 - Didn't compile with NetBSD-current
1287
1288 v0.99.1 2002-11-25 Timo Sirainen <tss@iki.fi>
1289
1290 + Added doc/mkcert.sh script to easily generate yourself a self-signed
1291 certificate. Modify doc/dovecot-openssl.cnf before running it.
1292 + --with-ssldir configure option to specify default path for /etc/ssl
1293 + Added ssl_disable setting to config file
1294 - OpenSSL wasn't checked properly by configure
1295 - vpopmail authentication module didn't compile
1296 - We should install the binaries into libexec dir, not lib
1297 - doc/configuration.txt and doc/mail-storages.txt were missing
1298
1299 v0.99.0 2002-11-24 Timo Sirainen <tss@iki.fi>
1300
1301 + Replaced hash file with binary tree file which makes Dovecot stay
1302 fast with large mailboxes after expunging multiple mails.
1303 + Several speed improvements with SEARCH
1304 + SEARCH CHARSET support using iconv(), although case-insensitive
1305 searching is currently supported only for ASCII characters.
1306 + OpenSSL support.
1307 + Support for regenerating Diffie Hellman and RSA parameters with
1308 specified intervals. NOTE: currently doesn't work with OpenSSL.
1309 + Support for each login connection being handled in it's own process.
1310 This is the default as it's more safe especially with SSL.
1311 + mbox locking is now safe, other processes can't modify the mbox file
1312 while we're reading it.
1313 + Notify clients with "EXISTS" almost immediately after new mail is
1314 received.
1315 + Rawlog: Support for saving user connections into files - useful for
1316 debugging.
1317 + Content-Language is finally parsed correctly
1318 + Lots of smaller speed optimizations
1319 - Partial BODY[] fetches weren't working properly
1320 - BODY[section] was buggy with message/rfc822 MIME parts
1321 - STARTTLS wasn't working
1322 - \* flag was missing from PERMANENTFLAGS.
1323 - Comments inside <> mail addresses crashed.
1324 - imap-login printed UTC timestamps to logfiles
1325 - passwd-file wasn't reread the the file changed
1326 - PAM authentication was implemented wrong, which caused it to break
1327 with some PAM plugins.
1328 - Lots of smaller fixes, mostly to do with reliability
1329
1330 v0.98.4 2002-10-06 Timo Sirainen <tss@iki.fi>
1331
1332 * Just a final release before replacing hash file with a binary tree.
1333
1334 - When fetching messages larger than 256k, sometimes Dovecot missed
1335 to send CR causing corrupted data at end of message and possibly
1336 complete failure depending on IMAP client.
1337 - Fetching BODY or BODYSTRUCTURE for message having content-type of
1338 message/rfc822 didn't correctly add () around the envelope data.
1339 - Several fixes to make it compile with HP/UX ANSI C compiler.
1340 Also fixed several warnings it showed up.
1341
1342 v0.98.3 2002-10-01 Timo Sirainen <tss@iki.fi>
1343
1344 * Sorry, just noticed a very stupid bug which caused evolution 1.2
1345 beta to crash. I always thought it was just evolution's fault :)
1346 - Several fields in BODY / BODYSTRUCTURE replies weren't quoted
1347
1348 v0.98.2 2002-09-30 Timo Sirainen <tss@iki.fi>
1349
1350 + --with-file-offset-size=32 can now be used to select 32bit file
1351 offsets. Using them should be a bit faster and take a bit less
1352 disk and memory (also needed to compile Dovecot successfully with
1353 TinyCC).
1354 + maildir_copy_with_hardlinks option works now
1355 + Check new mail and notify about it to client also after
1356 commands which don't allow full syncing (FETCH, STORE, SEARCH).
1357 Also always send RECENT after EXISTS notify.
1358 + If we're out of disk space while opening mailbox, notify about it
1359 with ALERT.
1360 - STORE and SEARCH didn't handle properly message sequence numbers
1361 when some in the middle were externally deleted
1362 - SEARCH: Only first search condition was checked.
1363 - mbox: Message flags given to APPEND were ignored.
1364 - mbox: index was corrupted when changing flags for multipart MIME
1365 messages
1366 - Out of disk space-handling wasn't working properly with .customflags
1367 file
1368 - if auth processes were killed, login processes weren't reconnecting
1369 to them
1370
1371 v0.98.1 2002-09-24 Timo Sirainen <tss@iki.fi>
1372
1373 + Faster and safer mbox rewriting when flags are updated
1374 - Didn't save messages larger then 8192 bytes
1375 - Several mbox breakages
1376
1377 v0.98 2002-09-23 Timo Sirainen <tss@iki.fi>
1378
1379 + mbox support is finally working. There's still some reliability
1380 fixes left but overall it should be quite usable.
1381 + vpopmail authentication support
1382 + We should be able to deal with "out of diskspace/quota" conditions
1383 properly, by keeping the indexes in memory and allowing user to
1384 delete mails to get more space.
1385 + Several speed enhancements
1386 + New configuration file option: overwrite_incompatible_index to force
1387 using ".imap.index" file, overwriting it if it isn't compatible
1388 - Handle invalid message headers reliably
1389 - Tons of bugfixes and code cleanups everywhere
1390
1391 v0.97 2002-08-29 Timo Sirainen <tss@iki.fi>
1392
1393 + Large mails are handled in 256kB blocks, so mail size no longer
1394 has hardly any effect on memory usage
1395 + 64bit file offsets are used if supported by system. This means
1396 Dovecot is fully capable of handling >2G mails in those systems.
1397 With 32bit offsets >2G mails may not behave too well, but should
1398 not crash either.
1399 + I fixed lots of potential integer overflows. This should make us
1400 fully crash-free no matter what happens (index file corruption
1401 mostly). I didn't verify everything too carefully yet, so more
1402 auditing is still needed before we fully reach that goal.
1403 + Implemented several missing tasks / optimizations to index handling.
1404 It should now stay fast after longer usage periods.
1405 + New configuration file options: log_path, log_timestamp, imaps_listen
1406 + "Critical errors" are now hidden from users, ie. any error message
1407 that is not a direct reply to user error is written into log file
1408 and user gets only "Internal error [timestamp]".
1409 + Nonblocking SSL handshaking
1410 + Lots of code cleanups
1411 - Lots of mbox fixes, it seems to be somewhat reliable now
1412 - Year in Date-field was parsed wrong
1413 - Appending mail to mbox didn't work right
1414 - Always verify that mailbox names are valid (especially they shouldn't
1415 contain "../")
1416
1417 v0.96 2002-08-08 Timo Sirainen <tss@iki.fi>
1418
1419 * Changed to LGPL v2.1 license
1420
1421 + STARTTLS support and optional disabling of plaintext authentication
1422 (LOGINDISABLED capability)
1423 + Support for custom message flags, each folder can have 26 different.
1424 + New configuration file options: imap_listen, max_logging_users,
1425 max_imap_processes
1426 + You can specify config file location to imap-master with -c <path>
1427 + All IMAP processes can now write to specified log file instead of
1428 syslog. Either do this by setting IMAP_LOGFILE environment, or
1429 give -l <path> parameter to imap-master.
1430 + Some cleanups to remove warnings with BSDs
1431 + Changed all %s .. strerror(errno) -> %m
1432 + Rewritten memory pool code
1433 - imap-master didn't close all the fds for executed processes
1434 - iobuffer code was buggy and caused the connection to terminate
1435 sometimes
1436 - make install overwrote the existing dovecot.conf file, so it's now
1437 named as dovecot-example.conf
1438
1439 v0.95 2002-07-31 Timo Sirainen <tss@iki.fi>
1440
1441 + Initial SSL support using GNU TLS, tested with v0.5.1.
1442 TLS support is still missing.
1443 + Digest-MD5 authentication method
1444 + passwd-file authentication backend
1445 + Code cleanups
1446 - Found several bugs from mempool and ioloop code, now we should
1447 be stable? :)
1448 - A few corrections for long header field handling
1449
1450 v0.94 2002-07-29 Timo Sirainen <tss@iki.fi>
1451
1452 * Supports running completely non-root now. imap-auth however is a
1453 bit problematic as we don't support passwd-file yet.
1454 - Memory alignment fixes mostly
1455 - Other misc. bugfixes