Fixes a couple of bugs in v1.1.15's changes. Hopefully the last v1.1 release
before v1.2.0.
- v1.1.15 could have crashed if mailbox-closing command was pipelined after a
mailbox-accessing command.
- v1.1.15's zlib plugin may have caused crashes when fetching INTERNALDATE.
- Maildir: If messages had been deleted externally from new/ directory and
mailbox was opened with EXAMINE, Dovecot didn't immediately notice that the
messages were deleted.
- If message body started with a space, some operations could have assert-
crashed.
v1.1.15 2009-05-17 Timo Sirainen <tss@iki.fi>
+ IMAP: When multiple commands are pipelined, try harder to combine their
mailbox syncing together. For example with Maildir pipelining STORE 1:*
+FLAGS \Deleted and EXPUNGE commands the files won't be unnecessarily
rename()d before being unlink()ed.
- IMAP: SEARCH command was slower than necessary in a large mailbox.
- deliver: When forwarding messages, if -f parameter was given, it should have
been used as the Return-Path.
- Maildir saving: Fixed race condition bugs in uidlist handling, causing files
to be given new UIDs sometimes.
- mbox: Don't crash when expunging all messages and file doesn't end with
[CR]LF.
- expire-tool: Use mail_uid and mail_gid settings if userdb doesn't return
uid/gid.
- Berkeley DB dict: Transaction rollbacking was implemented wrong.
- zlib plugin: Some email / FETCH command combinations could have disconnected
the client or sent compressed garbage.
* IMAP: Don't allow APPEND to specify INTERNALDATE more than 2 hours
into future. With Maildir future INTERNALDATEs may mess up incremental
backups.
- Date: header was always being added to cache file when saving messages,
even if clients didn't really want it. This caused POP3-only users to
have dovecot.index.cache file unneededly.
- Character set conversion in specific mails may have caused Dovecot to
allocate all the available memory (in default configuration dying after
having allocated 256 MB). This happened only while searching messages.
- Message address parser didn't handle empty group:; correctly.
- imap/pop3-login: Don't crash when shutting down and destroying clients.
- deliver wasn't using mail_access_groups setting.
- mbox: When doing autodetection, if mbox didn't find an existing mail
directory it just went and created it anyway, instead of failing the
storage creation.
- Fixed some error handling in maildir and index code.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
- v1.1.12's MAILBOXDIR changes broke accessing mails in some setups
- v1.1.12's login_executable -D checking changes caused dovecot to
crash at startup if protocols setting contained only pop3.
- mbox: pop3_lock_session=3Dyes was broken with mail_privileged_group.
* Added :MAILBOXDIR= to mail_location to specify the root dir for
mailboxes. dbox users should migrate to ":MAILBOXDIR=mailboxes",
because that's going to be the default in v1.2+.
+ Linux: Adding -D parameter to login_executable makes login processes
dump core to login_dir if they crash.
- IMAP: SELECT didn't always return first unseen message in reply
- POP3: pop3_lock_session=yes didn't use mail_privileged_group while
dotlocking.
- mbox: Don't crash if >=8192 bytes long line begins with "From ".
- Maildir: More fixes to handling over 26 keywords.
- Several logging fixes and improvements
- Fixed authentication caching with non-plaintext mechanisms when using
a blocking passdb (e.g. MySQL)
- Fixed DIGEST-MD5 authentication with user@domain style usernames.
- IMAP: PERMANENTFLAGS list didn't contain \*, causing some clients
not to save keywords.
- dbox: INTERNALDATE and save date was returned wrong for converted
maildir files.
- auth: Using "username" or "domain" passdb fields caused problems
with cache and blocking passdbs in v1.1.8 .. v1.1.10.
- userdb prefetch + blocking passdbs was broken with non-plaintext
auth in v1.1.8 .. v1.1.10.
- If mail_chroot is set, don't fail at startup in dump-capability.
- Maildir: Keyword handling was somewhat broken in v1.1.9
- userdb prefetch was broken with blocking passdbs in v1.1.9
- dict process didn't always die with the rest of Dovecot
- dict quota was somewhat broken with pgsql
Lots of small dbox fixes, hopefully migrations from Maildir are now working
correctly.
+ Sending SIGUSR2 to dovecot-auth now also logs statistics about cache inserts.
This could help figuring out auth cache size.
+ deliver: Added rejection_subject setting, which is used for rejected mails.
+ pop3: Prevent clients from looping forever trying to fetch an expunged
message.
+ If login process crashes, log the IP address that (maybe) caused it.
+ If core dump limit is 0, add "core dumps disabled" to startup log line.
+ Log better messages for "Permission denied" errors
- mbox: Fixed assert-crash with pop3_lock_session=yes
- dbox: Fixes to handling maildir-converted files.
- Auth cache wasn't working correctly for all fields (e.g. allow_nets) with
blocking passdbs (e.g. mysql).
- pgsql: Handle reconnecting to server without failing auth lookups.
- Berkeley DB memory/resource leak fixes.
- maildir: Fixes to handling over 26 keywords.
Most importantly mbox bugfixes. v1.1 should finally be as stable with
mboxes as it was with v1.0. Hopefully we'll also soon have the first
v1.2 beta release and the final v1.2.0 somewhat soon after that.
- mbox: Several bugfixes. Fixes "next message unexpectedly lost"
errors and perhaps some other problems as well.
- deliver: It wasn't possible to override boolean settings in
lda section by setting them to "no".
- Maildir++ quota didn't correctly check if maildirs had changed
during recalculation.
- kqueue notify: Fixed assert-crash in some situations
- dbox: Several fixes to handling Maildir migrations
- Logging/error message improvements
* IMAP QUOTA extension now returns "MESSAGE" quota, not "MESSAGES".
This makes Dovecot now RFC 2087 compliant. Hopefully this change
doesn't break anyone's Dovecot-specific quota checking code..
+ Added !include and !include_try directives to config file reader.
Note that !include doesn't currently work with deliver. The main
point here is that ssl_key_password can be placed to a different
file with !include_try that deliver can just ignore.
+ More error/debug message logging improvements.
- v1.1.6 gave "userdb didn't return a home directory" error at startup
- Some config file parsers (deliver, passwd-file, acl, trash) ignored
the file's last line if it didn't end with LF.
- fts: SEARCH SUBJECT didn't search messages that weren't already
in fts index.
- fts-solr: Don't assert-crash if we couldn't connect to Solr.
- IMAP: Mailbox deletion gave an error, but still worked, if mails'
control directory wasn't the same as index directory.
- Several fixes to rarely used mailbox list layout configurations.
Ok'ed geert@
The invalid message address parsing bug is pretty important since it
allows a remote user to send broken mail headers and prevent the
recipient from accessing the mailbox afterwards, because the process
will always just crash trying to parse the header. This is assuming that
the IMAP client uses FETCH ENVELOPE command, not all do. Note that it
doesn't affect versions older than v1.1.4.
+ dovecot -n and -a now prints some system information at the top.
+ More error/debug message logging improvements.
- pop3-login: Fixed assert-crash if a client sent USER+PASS+USER+PASS
commands in the same IP packet.
- Parsing an invalid message address like "From: (" caused an
assert-crash in v1.1.4 and v1.1.5.
- Folding whitespace wasn't handled correctly inside quoted-strings,
causing some messages to be parsed incorrectly.
- mbox: Fixed saving messages that begin with a valid From_-line.
* Dovecot prints an informational message about authentication problems
at startup. The message goes away after the first successful
authentication. This hopefully reduces the number of "Why doesn't
my authentication work?" questions.
+ Maildir/dbox: Try harder to assign unique UIDVALIDITY values to
mailboxes to avoid potential problems when recreating or renaming
mailboxes. The UIDVALIDITY is tracked using dovecot-uidvalidity*
files in the mail root directory.
+ Many logging improvements
- In some conditions Dovecot could have stopped using existing cache
file and never used it again until it was deleted.
- pop3 + Maildir: Make sure virtual sizes are always written to
dovecot-uidlist. This way if the indexes are lost Dovecot will never
do a huge amount of work to recalculate them.
- mbox: Fixed listing mailboxes in namespaces with prefix beginning
with '~' or '/' (i.e. UW-IMAP compatibility namespaces didn't work).
- dict quota: Don't crash when recalculating quota (when quota warnings
enabled).
- Fixes to handling "out of disk space/quota" failures.
- Blocking passdbs/userdbs (e.g. PAM, MySQL) could have failed lookups
sometimes when auth_worker_max_request_count was non-zero.
- Fixed compiling with OpenBSD
- SORT: Yet another assert-crashfix when renumbering index sort IDs.
- ACL plugin fixes: Negative rights were actually treated as positive rights.
'k' right didn't prevent creating parent/child/child mailbox. ACL groups
weren't working.
- Maildir++ quota: Fixes to rebuilding when quota limit wasn't specified in
Dovecot (0 limit or limit read from maildirsize).
- mbox: Several bugfixes causing errors and crashes.
- Several fixes to expire plugin / expire-tool.
- lock_method=dotlock could have deadlocked with itself.
- Many error handling fixes and log message improvements.
This fixes several mbox problems previous v1.1 releases have had.
* mail_max_userip_connections limit no longer applies to master user logins.
+ login_log_format_elements: Added %k to show SSL protocol/cipher information.
Not included by default.
+ imap/pop3-proxy: If auth_verbose=yes, log proxy login failures.
+ deliver: Added -s parameter to autosubscribe to autocreated mailboxes.
- message parser fixes - hopefully fixes an infinite looping problem
- SORT: One more assert-crashfix when renumbering index sort IDs.
- mbox: Saving may have truncated the mail being saved
- mbox: Several other bugfixes
- mail_full_filesystem_access=yes was broken when listing mailboxes (it still
is with maildir++ layout).
- maildirlock utility was somewhat broken
- zlib plugin: bzip2 support was somewhat broken
- NFS: Make sure writing to files via output streams don't assert-crash when
write() returns only partial success.
Development of new features in this release and the upcoming
multi-master replication are sponsored by Directi (www.directi.com).
Lucene indexing is currently deprecated in favor of the new Solr
indexing. I'm even considering removing the Lucene C++ library support,
so if you're interested in keeping it send me a mail. Note that the
current fts-lucene is somewhat broken as well as non-optimal.
Anyone interested in using zlib plugin with Maildir should read
http://wiki.dovecot.org/Plugins/Zlib.
I'm hoping to get the first v1.2 betas out in a couple of weeks and an
eventual v1.2.0 release in a couple of months.
+ Added full text search indexing support for Apache Lucene Solr
server: http://wiki.dovecot.org/Plugins/FTS/Solr
+ IMAP SORT: Added X-SCORE sort key for use with Solr searches.
+ zlib plugin supports now bzip2 also.
+ quota: All backends now take noenforcing parameter.
+ Maildir: Add ,S=3D<size> to maildir filename whenever quota plugin
is loaded, even when not using Maildir++ quota.
+ deliver: Allow lda section to override plugin settings.
+ deliver: Giving a -m <namespace prefix> parameter now silently saves
the mail to INBOX. This is useful for e.g. -m INBOX/${extension}
+ Added a new maildirlock utility for write-locking Dovecot Maildir.
+ dict-sql: Support non-MySQL databases by assuming they implement the
"INSERT .. ON DUPLICATE KEY" using an INSERT trigger.
- SORT: Fixed several crashes/errors with sort indexing.
- IMAP: BODYSTRUCTURE is finally RFC 3501 compliant. Earlier versions
didn't include Content-Location support.
- IMAP: Fixed bugs with listing INBOX.
- Maildir: maildirfolder file wasn't created when dovecot-shared
file existed on the root directory
- deliver didn't expand %variables in namespace location settings.
- zlib: Copying non-compressed messages resulted in empty mails
(except when hardlink-copying between maildirs).
- mbox-snarf plugin was somewhat broken
- deliver + Maildir: If uidlist couldn't be locked while saving,
we might have assert-crashed
- mbox: Fixed an assert-crash with \Recent flag handling
This release also fixes a NetBSD-specific bug, see the following thread:
http://www.dovecot.org/list/dovecot/2008-June/031680.html
copy from there.
Update the Sieve plugin accordingly to 1.1.5.
Major changes since 1.0:
* After Dovecot v1.1 has modified index or dovecot-uidlist files,
they can't be opened anymore with Dovecot versions earlier than
v1.0.2.
* See doc/wiki/Upgrading.1.1.txt (or for latest changes,
http://wiki.dovecot.org/Upgrading/1.1) for list of changes since
v1.0 that you should be aware of when upgrading.
+ IMAP: Added support for UIDPLUS and LIST-EXTENDED extensions.
+ IMAP SORT: Sort keys are indexed, which makes SORT commands faster.
+ When saving messages, update cache file immediately with the data
that we expect client to fetch later.
+ NFS caches are are flushed whenever needed. See mail_nfs_storage and
mail_nfs_index settings.
+ Out of order command execution (SEARCH, FETCH, LIST), nonstandard
command cancellation (X-CANCEL <tag>)
+ IMAP: STATUS-IN-LIST draft implementation
+ Expire plugin can be used to keep track of oldest messages in
specific mailboxes. A nightly run can then quickly expunge old
messages from the mailboxes that have them. The tracking is done
using lib-dict, so you can use either Berkeley DB or SQL database.
+ Namespaces are supported everywhere now.
+ Namespaces have new list and subscriptions settings.
+ Full text search indexing support with Lucene and Squat backends.
+ OTP and S/KEY authentication mechanisms (by Andrey Panin).
+ mbox and Maildir works with both Maildir++ and FS layouts. You can
change these by appending :LAYOUT=3Dmaildir++ or :LAYOUT=3Dfs to
mail_location.
+ LDAP: Support templates in pass_attrs and user_attrs
+ Support for listening in multiple IPs/ports.
+ Quota plugin rewrite: Support for multiple quota roots, warnings,
allow giving storage size in bytes or kilo/mega/giga/terabytes,
per-mailbox quota rules.
+ Filesystem quota backend supports inode limits, group quota and
RPC quota for NFS.
+ SEARCH and SORT finally compare non-ASCII characters
case-insensitively. We use i;unicode-casemap algorithm.
+ Config files support splitting values to multiple lines with \
Since v1.1.0 release is getting near, this could well be the last v1.0
release. I'll still fix important bugs, but if the bugfix is large or
affects only few people it'll probably get fixed only in v1.1 releases.
* mbox: Enable mail_privileged_group while creating INBOX.
- IMAP: Fixed a rare crash in FETCH BODY/BODYSTRUCTURE
- IMAP: If mailbox is selected with EXAMINE, ignore flag changes
- proxy: Login success reply was sent in two IP packets, which
confused some IMAP/POP3 clients
- ACL plugin leaked memory a bit
- dovecot-auth: allow_nets setting with network masks didn't work
correctly with big endian machines.
Note that the changes for the security hole fix were quite large. I tested with
several auth configurations myself and they seemed to work, but it's possible I
left a bug somewhere in there breaking someone's configuration. So make sure to
test that it works after upgrading.
Of course it would be really nice if Dovecot had a proper test suite where
testing all configurations could be automated and run before each release. I've
already started this with my imaptest tool (http://imapwiki.org/ImapTest), but
it only does IMAP tests and a lot of things are still missing. Some help would
be nice here.
* Fixed a security hole in blocking passdbs (MySQL always. PAM, passwd
and shadow if blocking=yes) where user could specify extra fields
in the password. The main problem here is when specifying
"skip_password_check" introduced in v1.0.11 for fixing master user
logins, allowing the user to log in as anyone without a valid
password.
- mail_privileged_group was broken in some systems (OS X, Solaris?)
- IMAP THREAD: Fixed some correctness problems
* mail_extra_groups setting was commonly used insecurely. This setting
is now deprecated. Most users should switch to using
mail_privileged_group setting, but if you really need the old
functionality use mail_access_groups instead.
- mbox: Dropped some of the physical size fetch optimizations added
in v1.0.8. This makes some commands slower, but should fix the rest
of the problems.
- IMAP: SEARCH BEFORE/ON/SINCE didn't handle timezones correctly.
- ldap: auth_bind was doing lookups using subtree scope instead of
the scope specified in config file.
- zlib plugin crashfixes by Richard Platel
- master passdbs: pass=yes setting was broken with blocking passdbs
(e.g. MySQL)
v1.0.8 and v1.0.9 were a bit bad releases. Hopefully one day I've managed to
have written a proper test suite which can be run before doing any releases..
* Security hole with LDAP+auth cache: If base setting contained
%variables they weren't included in auth cache key, which broke
caching. This could have caused different users with same passwords
to log in as each other. [pkgsrc: this was fixed in dovecot-1.0.9nb1]
- LDAP: Fixed potential infinite looping when connection to LDAP
server was lost and there were queued requests.
- mbox: More changes to fix problems caused by v1.0.8 and v1.0.9.
- Maildir: Fixed a UIDLIST_IS_LOCKED() assert-crash in some conditions
(caused by changes in v1.0.9)
- If protocols=none, don't require imap executables to exist
+ Maildir: Don't wait on dovecot-uidlist.lock when we just want to
find out a new filename for the message.
- mbox: v1.0.8 changes sometimes caused FETCH to fail with
"got too little data", disconnecting the client.
- Fixed a memory leak when FETCHing message header/body multiple
times within a command (e.g. BODY[1] BODY[2])
- IMAP: Partial body fetching was still slow with mboxes
+ Authentication: Added "password_noscheme" field that can be used
instead of "password". "password" treats "{prefix}" as a password
scheme while "password_noscheme" treats it as part of the password
itself. So "password_noscheme" should be used if you're storing
passwords as plaintext. Non-plaintext passwords never begin
with "{", so this isn't a problem with them.
- IMAP: Partial body fetching was sometimes non-optimal, causing
the entire message to be read for every FETCH command.
- deliver failed to save the message when envelope sender address
contained spaces.
- Maildir++ quota: We could have randomly recalculated quota when
it wasn't necessary.
- Login process could have crashed after logging in if client sent
data before "OK Logged in" reply was sent (i.e. before master had
replied that login succeeded).
- Don't assert-crash when reading dovecot.index.logs generated by
Dovecot v1.1.
- Authentication: Don't assert-crash if password beings with "{" but
doesn't contain "}".
- Authentication cache didn't work when using settings that changed
the username (e.g. auth_username_format).
Almost missed this one. I had already fixed it in v1.1 tree, but forgot
to fix in v1.0 tree.
- deliver: v1.0.6's "From " line ignoring could have written to a
bad location in stack, possibly causing problems.
* IDLE: Interval between mailbox change notifies is now 1 second,
because some clients keep a long-running IDLE connection and use
other connections to actually read the mails.
* SORT: If Date: header is missing or broken, fallback to using
INTERNALDATE (as the SORT draft nowadays specifies).
+ deliver: If message begins with a "From " line, ignore it.
+ zlib plugin: If maildir file has a "Z" flag, open it with zlib.
- CREATE: Don't assert-crash if trying to create namespace prefix.
- SEARCH: Fixes to handling NOT operator with sequence ranges.
- LDAP reconnection fixes
- Maildir: Don't break when renaming mailboxes with '*' or '%'
characters and children.
- mbox: Fixed "file size unexpectedly shrinked" error in some
conditions.
- quota+mbox: Don't fail if trying to delete a directory.
- Fixes to running from inetd
* Assume a MIME message if Content-Type: header exists, even if
Mime-Version: header doesn't.
- IMAP: CREATE ns_prefix/box/ didn't work right when namespace prefix
existed.
- deliver: plugin {} settings were overriding settings from userdb.
- mbox: Expunging the first message might not have worked always
- PostgreSQL: If we can't connect to server, timeout queries after
a while instead of trying forever.
- Solaris: sendfile() support was broken and could have caused
100% CPU usage and the connection hanging.
And one more thing I forgot from NEWS file:
- IMAP: Fixed infinite loop in some situations
- deliver: v1.0.2's bounce fix caused message to be always saved to
INBOX even if Sieve script had discard, reject or redirect commands.
- LDAP: auth_bind=yes and empty auth_bind_userdn leaked memory
- ACL plugin: If user was given i (insert) right for a mailbox, but
not all s/t/w (seen, deleted, other flags) rights, COPY and APPEND
commands weren't supposed to allow saving those flags. This is
technically a security fix, but it's unlikely this caused problems
for anyone.
- ACL plugin: i (insert) right didn't work unless user was also given
l (lookup) right.
- Solaris: Fixed filesystem quota for autofs mounts.
Fixes several bugs. This release also adds compatibility with upcoming
Dovecot v1.1 so it'll be possible to upgrade to v1.1 and back to v1.0.2
without anything breaking.
* dbox isn't built anymore by default. It will be redesigned so it
shouldn't be used.
+ Maildir: Support reading dovecot-uidlist (v3) files created by
Dovecot v1.1.
- Maildir: "UIDVALIDITY changed" errors could happen with newly
created mailboxes
- If "INBOX." namespace was used, LIST returned it with \HasNoChildren
which caused some clients not to show any other mailboxes.
- Maildir++ quota: If multiple processes were updating maildirsize
at the same time, we failed with "Unknown error".
- IMAP: IDLE didn't actually disconnect client after 30 minutes of
inactivity.
- LDAP passdb/userdb was leaking memory
- deliver: %variables in plugin {} weren't expanded
- deliver: Don't bounce the mail if Sieve plugin returns failure
the owner of all installed files is a non-root user. This change
affects most packages that require special users or groups by making
them use the specified unprivileged user and group instead.
(1) Add two new variables PKG_GROUPS_VARS and PKG_USERS_VARS to
unprivileged.mk. These two variables are lists of other bmake
variables that define package-specific users and groups. Packages
that have user-settable variables for users and groups, e.g. apache
and APACHE_{USER,GROUP}, courier-mta and COURIER_{USER,GROUP},
etc., should list these variables in PKG_USERS_VARS and PKG_GROUPS_VARS
so that unprivileged.mk can know to set them to ${UNPRIVILEGED_USER}
and ${UNPRIVILEGED_GROUP}.
(2) Modify packages to use PKG_GROUPS_VARS and PKG_USERS_VARS.
* deliver: If Return-Path doesn't contain user and domain, don't try
to bounce the mail (this is how it was supposed to work earlier too)
* deliver: %variables in mail setting coming from userdb aren't
expanded anymore (again how it should have worked). The expansion
could have caused problems if paths contained any '%' characters.
+ Print Dovecot version number with dovecot -n and -a
+ deliver: Added -e parameter to write rejection error to stderr and
exit with EX_NOPERM instead of sending the rejection by executing
sendmail.
+ dovecot --log-error logs now a warning, an error and a fatal
- Trying to start Dovecot while it's already running doesn't anymore
wipe out login_dir and break the running Dovecot.
- maildir: Fixed "UID larger than next_uid" errors which happened
sometimes when dovecot-uidlist file didn't exist but index files did
(usually because mailbox didn't have any messages when it was
selected for the first time)
- maildir: We violated maildir spec a bit by not having keyword
characters sorted in the filename.
- maildir: If we don't have write access to cur/ directory, treat the
mailbox as read-only. This fixes some internal error problems with
trying to use read-only maildirs.
- maildir: Deleting a symlinked maildir failed with internal error.
- mbox: pop3_uidl_format=%m wasn't working right
- mbox: If non-filesystem quota was enabled, we could have failed
with "Unexpectedly lost From-line" errors while saving new messages
- mysql auth: %c didn't work. Patch by Andrey Panin
- APPEND / SEARCH: If internaldate was outside valid value for time_t,
we returned BAD error for APPEND and SEARCH never matched. With 64bit
systems this shouldn't have happened. With 32bit systems the valid
range is usually for years 1902..2037.
- COPY: We sent "Hang in there.." too early sometimes and checked it
too often (didn't break anything, but was slower than needed).
- deliver: Postfix's sendmail binary wasn't working with mail_debug=yes
- Don't corrupt ssl-parameters.dat files when running multiple Dovecot
instances.
- Cache compression caused dovecot.index.cache to be completely deleted
with big endian CPUs if 64bit file offsets were used (default)
- Fixed "(index_mail_parse_header): assertion failed" crash
been in pkgsrc) except for the version number, so here is the announcement of
1.0rc32:
Pretty late for changes if v1.0 is supposed to come out tomorrow, but I
can't really leave these LDAP bugs unfixed. They shouldn't anyway break
anything, so here's one more day for you people to find out about any
bugs.
One thing that I'm a bit concerned about is the addition of #define
LDAP_DEPRECATED. I know it fixes crashes with OpenLDAP 2.3 + 64bit
systems, but I hope it doesn't break compiling with some old versions or
non-OpenLDAP libraries..
- LDAP, auth_bind=no: Don't crash if doing non-plaintext ldap passdb
lookup for unknown user. This also broke deliver when userdb static
was used.
- LDAP, auth_bind=yes and userdb ldap: We didn't wait until bind was
finished before sending the userdb request, which could have caused
problems.
- LDAP: Don't break when compiling with OpenLDAP v2.3 library
- Convert plugin: Don't create "maildirfolder" file to Maildir root.
mbox + NFS combination shouldn't break anymore. v1.0 still planned to
be released next friday.
- mbox: Give "mbox file was modified while we were syncing" error only
if we detect some problems in the mbox file. The check can't be
trusted with NFS.
- Convert plugin: If directory for destination storage doesn't exist,
create it.
- Convert plugin: Mailbox names weren't converted in subscription list.
So, this is it. Unless you can find a new and important bug within a
week, this release is the same as v1.0. I'll only update the version
number and NEWS file.
Changes since rc29:
* PAM: Lowercase the PAM service name when calling with "args = *".
Linux PAM did this internally already, but at least BSD didn't.
If your PAM file used to be in /etc/pam.d/IMAP or POP3 file you'll
need to lowercase it now.
+ Send list of CA names to client when using
ssl_verify_client_cert=yes.
- IMAP: If message body started with line feed, it wasn't counted
in BODY and BODYSTRUCTURE replies' line count field.
- deliver didn't load plugins before chrooting
Probably one more RC after this.
* Security fix: If zlib plugin was loaded, it was possible to open
gzipped mbox files outside the user's mail directory.
+ Added auth_gssapi_hostname setting.
- IMAP: LIST "" "" didn't return anything if there didn't exist a
namespace with empty prefix. This broke some clients.
- If Dovecot is tried to be started when it's already running, don't
delete existing auth sockets and break the running Dovecot
- If deliver failed too early it still returned exit code 89 instead
of EX_TEMPFAIL.
- deliver: INBOX fallbacking with -n parameter wasn't working.
- passdb passwd and shadow couldn't be used as master or deny databases
- IDLE: inotify didn't notice changes in mbox file
- If index file directory couldn't be created, disable indexes instead
of failing to open the mailbox.
- Several other minor fixes
Still a bit more fixes. My coding TODO list is again empty. Unless
something special happens in the next few weeks, I'll still make rc29
with the documentation included and v1.0 will be released April 13.
* deliver + userdb static: Verify the user's existence from passdb,
unless allow_all_users=yes
* dovecot --exec-mail: Log to configured log files instead of stderr
* Added "-example" part to doc/dovecot-sql-example.conf and
doc/dovecot-ldap-example.conf. They are now also installed to
$sysconfdir with "make install".
+ When copying/syncing a lot of mails, send "* OK Hang in there"
replies to client every 15 seconds so it doesn't just timeout the
connection.
+ Added idxview and logview utilities to examine Dovecot's index files
+ passdb passwd and shadow support blocking=yes setting now also
+ mbox: If mbox file changes unexpectedly while we're writing to it,
log an error.
+ deliver: Ignore -m "" parameter to make calling it easier.
+ deliver: Added new -n parameter to disable autocreating mailboxes.
It affects both -m parameter and Sieve plugin's fileinto action
- mbox: Using ~/ in the mail root directory caused a ~ directory to be
created (instead of expanding it to home directory)
- auth cache: If unknown user was found from cache, we didn't properly
return "unknown user" status, which could have caused problems in
deliver.
- mbox: Fixed "UID inserted in the middle of mailbox" in some
conditions with broken X-UID headers
- Index view syncing fixes
- rc27 didn't compile with some non-GCC compilers
- vpopmail support didn't compile in rc27
- NFS check with chrooting broke home direcotry for the first login
- deliver: If user lookup returned "unknown user", it logged
"BUG: Unexpected input"
- convert plugin didn't convert INBOX