- v2.1.11+ had a race condition where it sometimes overwrote data in
dovecot.index.cache file. This could have caused Dovecot to return
the same cached data to two different messages.
- mdbox: Fixes to handling duplicate GUIDs during index rebuild
- lmtp proxy: Fixed hanging if remote server was down.
- doveadm: Various fixes to handling doveadm-server connections.
- auth: passdb imap was broken in v2.1.10.
- director: In some conditions director may have disconnected from
another director (without logging about it), thinking it was sending
invalid data.
- imap: Various fixes to listing mailboxes.
- login processes crashed if there were a lot of local {} or remote {}
settings blocks.
- Full text search indexing might have failed for some messages,
always causing indexer-worker process to run out of memory.
- fts-lucene: Fixed handling SEARCH HEADER FROM/TO/SUBJECT/CC/BCC when
the header wasn't lowercased.
- fts-squat: Fixed crash when searching a virtual mailbox.
- pop3: Fixed assert crash when doing UIDL on empty mailbox on some
setups.
- auth: GSSAPI RFC compliancy and error handling fixes.
- Various fixes related to handling shared namespaces
- imap: Mailbox names were accidentally sent as UTF-8 instead of mUTF-7
in previous v2.1.x releases for STATUS, MYRIGHTS and GETQUOTAROOT commands.
- lmtp proxy: Don't timeout connections too early when mail has a lot of RCPT TOs.
- director: Don't crash if the director is working alone.
- shared mailboxes: Avoid doing "@domain" userdb lookups.
- doveadm: Fixed crash with proxying some commands.
- fts-squat: Fixed handling multiple SEARCH parameters.
- imapc: Fixed a crash when message had more than 8 keywords.
- imapc: Don't crash on APPEND/COPY if server doesn't support UIDPLUS.
- director: Don't crash with quickly disconnecting incoming director
connections.
- mdbox: If mail was originally saved to non-INBOX, and namespace
prefix is non-empty, don't assert-crash when rebuilding indexes.
- sdbox: Don't use more fds than necessary when copying mails.
- auth: Fixed crash with DIGEST-MD5 when attempting to do master user
login without master passdbs.
- Several fixes to mail_shared_explicit_inbox=no
- imapc: Use imapc_list_prefix also for listing subscriptions.
- v2.1.5: Using "~/" as mail_location or elsewhere failed to actually
expand it to home directory.
- dbox: Fixed potential assert-crash when reading dbox files.
- trash plugin: Fixed behavior when quota is already over limit.
- mail_log plugin: Logging "copy" event didn't work.
- Proxying to backend server with SSL: Verifying server certificate
name always failed, because it was compared to an IP address.
expand it to home directory.
- dbox: Fixed potential assert-crash when reading dbox files.
- trash plugin: Fixed behavior when quota is already over limit.
- Proxying to backend server with SSL: Verifying server certificate
name always failed, because it was compared to an IP address.
- director: A lot of fixes and performance improvements
- mbox: Deleting a mailbox didn't delete its index files.
- pop3c: TOP command was sent incorrectly
- trash plugin didn't work properly
- LMTP: Don't add a duplicate Return-Path: header when proxying.
- listescape: Don't unescape namespace prefixes.
- Proxying SSL connections crashed in v2.1.[23]
- fts-solr: Indexing mail bodies was broken.
- director: Several changes to significantly improve error handling
- doveadm import didn't import messages' flags
- mail_full_filesystem_access=yes was broken
- Make sure IMAP clients can't create directories when accessing
nonexistent users' mailboxes via shared namespace.
- Dovecot auth clients authenticating via TCP socket could have failed
with bogus "PID already in use" errors.
- doveadm sync: If mailbox was expunged empty, messages may have
become back instead of also being expunged in the other side.
- imap_id_* settings were ignored before login.
- Several fixes to mailbox_list_index=yes
- Previous v2.1.x didn't log all messages at shutdown.
- acl plugin + autocreated mailboxes crashed when listing mailboxes
- doveadm force-resync: Don't skip autocreated mailboxes (especially
INBOX).
- If process runs out of fds, stop listening for new connections only
temporarily, not permanently (avoids hangs with process_limit=1
services)
- auth: passdb imap crashed for non-login authentication (e.g. smtp).
- dbox: Fixed error handling when saving failed or was aborted
- IMAP: Using COMPRESS extension may have caused assert-crashes
- IMAP: THREAD REFS sometimes returned invalid (0) nodes.
- dsync: Fixed handling non-ASCII characters in mailbox names.
- director: With >2 directors ring syncing might have stalled during
director connect/disconnect, causing logins to fail.
- LMTP client/proxy: Fixed potential hanging when sending (big) mails
- Compressed mails with external attachments (dbox + SIS + zlib) failed
sometimes with bogus "cached message size wrong" errors.
major changes since 2.0.x:
plugins now use UTF-8 mailbox names rather than mUTF-7
auth_username_format default changed to %Lu
solr full text search backend changed to use mailbox GUIDs instead of
mailbox names, requiring reindexing everything
v2.0.14: Index reading could have eaten a lot of memory in some
situations
mbox: Fixed crash during mail delivery when mailbox didn't yet have
GUID assigned to it.
zlib+mbox: Fetching last message from compressed mailboxes crashed.
userdb extra fields can now return name+=value to append to an
existing name
script-login attempted an unnecessary config lookup, which usually
failed with "Permission denied".
lmtp: Fixed parsing quoted strings with spaces as local-part for
MAIL FROM and RCPT TO.
imap: FETCH BODY[HEADER.FIELDS (..)] may have crashed or not
returned all data sometimes.
ldap: Fixed random assert-crashing with with sasl_bind=yes.
Fixes to handling mail chroots
Fixed renaming mailboxes under different parent with FS layout when
using separate ALT, INDEX or CONTROL paths.
zlib: Fixed reading concatenated .gz files.
mdbox purge: Fixed wrong warning about corrupted extrefs.
script-login binary wasn't actually dropping privileges to the
user/group/chroot specified by its service settings.
Fixed potential crashes and other problems when parsing header names
that contained NUL characters.
dsync: More fixes to avoid hanging with remote syncs
dsync: Many other syncing/correctness fixes
doveconf: v2.0.10 and v2.0.11 didn't output plugin {} section right
IMAP: Fixed a hang when trying to COPY to a nonexistent mailbox.
IMAP: Fixed hang/crash with SEARCHRES + pipelining $.
IMAP: Fixed assert-crash if IDLE+DONE is sent in same TCP packet.
- services' default vsz_limits weren't being enforced correctly
- added systemd support
- dbox: Fixes to handling external mail attachments
- imap, pop3: When service { client_count } was larger than 1, the
log messages didn't use the correct prefix
- MySQL: Only the first specified host was ever used
- IMAP: Fixed LIST-STATUS when listing subscriptions with subscriptions=no namespaces.
- IMAP: Fixed SELECT QRESYNC not to crash on mailbox close if a lot of changes were being sent.
- quota: Don't count virtual mailboxes in quota
- doveadm expunge didn't always actually do the physical expunging
- Fixed some index reading optimizations introduced by v2.0.5.
- LMTP proxying fixes
- Pre-login CAPABILITY includes IDLE again. Mainly to make Blackberry
servers happy.
- auth: auth_cache_negative_ttl default was 0 in earlier v2.0.x, but it
was supposed to be 1 hour as in v1.x. Changed it back to 1h.
- doveadm: Added import command for importing mails from other storages.
- Reduced NFS I/O operations for index file accesses
- dbox, Maildir: When copying messages, copy also already cached fields
from dovecot.index.cache
- Maildir: LDA/LMTP assert-crashed sometimes when saving a mail.
- Fixed leaking fds when writing to dovecot.mailbox.log.
- Fixed rare dovecot.index.cache corruption
- IMAP: SEARCH YOUNGER/OLDER wasn't working correctly
- acl: Fixed the logic of merging multiple ACL entries
- sdbox: Fixed memory leak when copying messages with hard links.
- zlib: Fixed several crashes, which mainly showed up with mbox.
- quota: Don't crash if user has quota disabled, but plugin loaded.
- acl: Fixed crashing when sometimes listing shared mailboxes via dict proxy.
- multi-dbox: If :INDEX=path is specified, keep storage/dovecot.map.index*
files also in the index path rather than in the main storage directory.
- dsync: POP3 UIDLs weren't copied with Maildir
- dict file: Fixed fd leak (showed up easily with LMTP + quota)
- dovecot-lda: Removed use of non-standard Envelope-To: header as
a default for -a
- dsync: Fixed handling \Noselect mailboxes
- Fixed an infinite loop introduced by v2.0.2's message parser changes.
- Fixed a crash introduced by v2.0.2's istream-crlf changes.
- vpopmail support is disabled for now, since it's broken. You can use
it via checkpassword support or its sql/ldap database directly.
- maildir: Fixed "duplicate uidlist entry" errors that happened at
least with LMTP when mail was delivered to multiple recipients
- Deleting ACLs didn't cause entries to be removed from acl_shared_dict
- mail_max_lock_timeout setting wasn't working with all locks
- Using more than 2 plugins could have caused broken behavior
- Listescape plugin fixes
- mbox: Fixed a couple of assert-crashes
- mdbox: Fixed potential assert-crash when saving multiple messages
in one transaction
- dovecot and pigeonhole updated
- doveadm mailbox status: Fixed listing non-ASCII mailbox names.
- doveadm fetch: Fixed output when fetching message header or body
- doveadm director map/add/remove: Fixed handling IP address as parameter.
- dsync: A few more fixes
- fixed lda + sieve crash
- added mail_temp_dir setting, used by deliver and lmtp for creating
temporary mail files. Default is /tmp.
- imap: Fixed checking if list=children namespace has children.
- mdbox: Race condition fixes related to copying and purging
- enabled pigeonhole's build time test suite
- acl: Fixed crashon FS layout with non-default hierarchy separator
- dbox renamed to sdbox
- dsync fixes and improvements
- fixed a crash with empty mail_plugins
- fixed sharing INBOX to other users
- director+LMTP proxy wasn't working correctly
- v1.x config parser failed with some settings if pigeonhole wasn't
installed.
- virtual: If non-matching messages weren't expunged within same session,
they never got expunged.
- moved disable_plaintext_auth to 10-auth.conf
- mdbox: Fixed assert-crash on storage rebuild if file got lost
- lib-charset: Don't assert-crash when iconv() skips lots of invalid input
- master: Fixed crash on deinit (maybe also on reload)
- lib-storage: Fixed accessing uncommitted saved mails with dsync
- example-config: Moved ACL and quota settings to a separate .conf files
- dbox, mdbox: Fixed race conditions when creating mailboxes
- mdbox: Avoid rebuilding storage if another process already did it
- lib-storage: Fixed () sublists in IMAP SEARCH parser
- example-config: auth-checkpassword include wasn't listed in 10-auth.conf
- doveadm: Added search command
- lib-master: Don't crash after timeouting an auth-master request
- master: If inet listener uses DNS name, which returns multiple IPs,
listen in all of them
- doveconf <setting name> now prints only the one setting's value
- mdbox: Automatically delete old temp.* files from storage/ directory
- mdbox: use flock locking by default
- mdbox: Purge crashed if it purged all messages from a file
- lib-storage: Shared namespace's prefix_len wasn't updated after prefix
was truncated
- imap-quota: Iterate quota roots only once when replying to GETQUOTAROOT
- idle: Do cork/uncork when sending "OK Still here" notification
- login: If proxy returns ssl=yes and no port, switch port to imaps/pop3s
- updated to snapshot 20100414
- config: Added nn- prefix to *.conf files so the sort ordering makes more
sense
- lib-master: Log an error if login client disconnects too early
- mdbox: If purging found corrupted files, it didn't auto-rebuild storage
- lib-storage: Added support for searching save date
- and more...
- pigeonhole updated:
- Mailbox extension: fixed memory leak in the mailboxexists test
- added login failure handler
- config: Added nn- prefix to *.conf files so the sort ordering makes more
sense
- lib-master: Log an error if login client disconnects too early
- mdbox: If purging found corrupted files, it didn't auto-rebuild storage
- lib-storage: Added support for searching save date
- and more...
- pigeonhole updated:
- Mailbox extension: fixed memory leak in the mailboxexists test
- added login failure handler
- auth: If userdb lookup fails internally, don't cache the result.
- Added support for userdb lookup to fail with a reason
- sdbox: mailbox_update() could have changed UIDVALIDITY incorrectly
- layout=maildir++: Fixed deleting mailboxes with mailbox=file storages
- Fixed potential problems with parsing invalid address groups.
- dsync: Don't repeatedly try to keep opening the same failing mailbox
- lib-storage: Don't crash if root mail directory isn't given.
- mbox: Message header reading was unnecessarily slow. Fetching a huge
header could have resulted in Dovecot eating a lot of CPU. Also
searching messages was much slower than necessary.
- maildir: Reading uidlist could have ended up in an infinite loop.
- IMAP IDLE: v1.2.7+ caused extra load by checking changes every
0.5 seconds after a change had occurred in mailbox
- %variables now support %{host}, %{pid} and %{env:ENVIRONMENT_NAME}
everywhere.
- LIST-STATUS capability is now advertised
- maildir: Fixed several assert-crashes.
- imap: LIST "" inbox shouldn't crash when using namespace with "INBOX."
prefix.
- lazy_expunge now ignores non-private namespaces.
- Added authtest utility for doing passdb and userdb lookups.
- login: ssl_security string now also shows the used compression.
- quota: Don't crash with non-Maildir++ quota backend.
- imap proxy: Fixed crashing with some specific password characters.
- fixed broken dovecot --exec-mail.
- Avoid assert-crashing when two processes try to create index at the same
time.