00651e607c
imapsieve plugin: Fixed assert failure occurring when used with virtual
mailboxes.
In that case a transaction (delayed sync) is perfromed outside of the
context of an IMAP command.
PR: 214302
Submitted by: maintainer (Larry Rosenman)
* Part of the Sieve extprograms implementation was moved to Dovecot,
which means that this release depends on Dovecot v2.2.26+.
* ManageSieve: The PUTSCRIPT command now allows uploading empty Sieve
scripts. There was really no good reason to disallow doing that.
+ Sieve vnd.dovecot.report extension:
+ Added a Dovecot-Reporting-User field to the report body, which
contains the e-mail address of the user sending the report.
+ Added support for configuring the "From:" address used in the
report.
+ LDA sieve plugin: Implemented support for a "discard script" that is
run when the message is going to be discarded. This allows doing
something other than throwing the message away for good.
+ Sieve vnd.dovecot.environment extension: Added vnd.dovecot.config.*
environment items. These environment items map to sieve_env_*
settings from the plugin {} section in the configuration. Such values
can of course also be returned from userdb.
+ Sieve vacation extension: Use the Microsoft X-Auto-Response-Suppress
header to prevent unwanted responses from and to (older) Microsoft
products.
+ ManageSieve: Added rawlog_dir setting to store ManageSieve traffic
logs. This replaces at least partially the rawlog plugin (mimics
similar IMAP/POP3 change).
- doveadm sieve plugin: synchronization: Prevent setting file
timestamps to unix epoch time. This occurred when Dovecot passed the
timestamp as 'unknown' during synchronization.
- Sieve exprograms plugin: Fixed spurious '+' sometimes returned at the
end of socket-based program output.
- imapsieve plugin: Fixed crash occurring in specific situations.
PR: 213926
Submitted by: maintainer (Larry Rosenman)
antispam-plugin.
Changes for 2.2.26:
Mainly there are quite a lot of director fixes and improvements.
Here's the full list of changes:
* master: Removed hardcoded 511 backlog limit for listen(). The kernel
should limit this as needed.
* doveadm import: Source user is now initialized the same as target
user. Added -U parameter to override the source user.
* Mailbox names are no longer limited to 16 hierarchy levels. We'll
check another way to make sure mailbox names can't grow larger than
4096 bytes.
+ Added a concept of "alternative usernames" by returning user_* extra
field(s) in passdb. doveadm proxy list shows these alt usernames in
"doveadm proxy list" output. "doveadm director&proxy kick" adds
-f <passdb field> parameter. The alt usernames don't have to be
unique, so this allows creation of user groups and kicking them in
one command.
+ auth: passdb/userdb dict allows now %variables in key settings.
+ auth: If passdb returns noauthenticate=yes extra field, assume that
it only set extra fields and authentication wasn't actually performed.
+ auth: passdb static now supports password={scheme} prefix.
+ auth, login_log_format_elements: Added %{local_name} variable, which
expands to TLS SNI hostname if given.
+ imapc: Added imapc_max_line_length to limit maximum memory usage.
+ imap, pop3: Added rawlog_dir setting to store IMAP/POP3 traffic logs.
This replaces at least partially the rawlog plugin.
+ dsync: Added dsync_features=empty-header-workaround setting. This
makes incremental dsyncs work better for servers that randomly return
empty headers for mails. When an empty header is seen for an existing
mail, dsync assumes that it matches the local mail.
+ doveadm sync/backup: Added -I <max size> parameter to skip too
large mails.
+ doveadm sync/backup: Fixed -t parameter and added -e for "end date".
+ doveadm mailbox metadata: Added -s parameter to allow accessing
server metadata by using empty mailbox name.
+ Added "doveadm service status" and "doveadm process status" commands.
+ director: Added director_flush_socket. See
http://wiki2.dovecot.org/Director#Flush_socket
+ doveadm director flush: Users are now moved only max 100 at a time to
avoid load spikes. --max-parallel parameter overrides this.
+ Added FILE_LOCK_SLOW_WARNING_MSECS environment, which logs a warning
if any lock is waited on or kept for this many milliseconds.
- master process's listener socket was leaked to all child processes.
This might have allowed untrusted processes to capture and prevent
"doveadm service stop" comands from working.
- login proxy: Fixed crash when outgoing SSL connections were hanging.
- auth: userdb fields weren't passed to auth-workers, so %{userdb:*}
from previous userdbs didn't work there.
- auth: Each userdb lookup from cache reset its TTL.
- auth: Fixed auth_bind=yes + sasl_bind=yes to work together
- auth: Blocking userdb lookups reset extra fields set by previous
userdbs.
- auth: Cache keys didn't include %{passdb:*} and %{userdb:*}
- auth-policy: Fixed crash due to using already-freed memory if policy
lookup takes longer than auth request exists.
- lib-auth: Unescape passdb/userdb extra fields. Mainly affected
returning extra fields with LFs or TABs.
- lmtp_user_concurrency_limit>0 setting was logging unnecessary
anvil errors.
- lmtp_user_concurrency_limit is now checked before quota check with
lmtp_rcpt_check_quota=yes to avoid unnecessary quota work.
- lmtp: %{userdb:*} variables didn't work in mail_log_prefix
- autoexpunge settings for mailboxes with wildcards didn't work when
namespace prefix was non-empty.
- Fixed writing >2GB to iostream-temp files (used by fs-compress,
fs-metawrap, doveadm-http)
- director: Ignore duplicates in director_servers setting.
- director: Many fixes related to connection handshaking, user moving
and error handling.
- director: Don't break with shutdown_clients=no
- zlib, IMAP BINARY: Fixed internal caching when accessing multiple
newly created mails. They all had UID=0 and the next mail could have
wrongly used the previously cached mail.
- doveadm stats reset wasn't reseting all the stats.
- auth_stats=yes: Don't update num_logins, since it doubles them when
using with mail stats.
- quota count: Fixed deadlocks when updating vsize header.
- dict-quota: Fixed crashes happening due to memory corruption.
- dict proxy: Fixed various timeout-related bugs.
- doveadm proxying: Fixed -A and -u wildcard handling.
- doveadm proxying: Fixed hangs and bugs related to printing.
- imap: Fixed wrongly triggering assert-crash in
client_check_command_hangs.
- imap proxy: Don't send ID command pipelined with nopipelining=yes
- imap-hibernate: Don't execute quota_over_script or last_login after
un-hibernation.
- imap-hibernate: Don't un-hibernate if client sends DONE+IDLE in one
IP packet.
- imap-hibernate: Fixed various failures when un-hibernating.
- fts: fts_autoindex=yes was broken in 2.2.25 unless
fts_autoindex_exclude settings existed.
- fts-solr: Fixed searching multiple mailboxes (patch by x16a0)
- doveadm fetch body.snippet wasn't working in 2.2.25. Also fixed a
crash with certain emails.
- pop3-migration + dbox: Various fixes related to POP3 UIDL
optimization in 2.2.25.
- pop3-migration: Fixed "truncated email header" workaround.
- Clean up the Makefile.
- Follow some upstream recommendations (--with-data-packaging=archive,
--disable-renaming, -DICU_NO_USER_DATA_OVERRIDE).
- Patch makefiles to install static libraries with INSTALL_DATA so they
aren't stripped.
- Patch config/mh-bsd-gcc to sync with config/mh-linux-gcc.
- Fix endianness detection in ICU. The code wanted to use BYTE_ORDER
defined in machine/endian.h, but this isn't visible because ICU is
compiled with _XOPEN_SOURCE. Patch the code to use _BYTE_ORDER instead.
- Compile ICU with C++11 compiler to enable move constructors.
- Patch ICU to fix a problem with atomics in the case of a C++11 compiler
without C++11 header <atomic> (like Clang on FreeBSD 9).
- Bump all ports that depend on it due to library version change.
- Add USES=compiler:c++0x to some ports that pick up -std=c++0x from ICU
pkgconfig files.
- Add USES=compiler:c++11-lib to graphics/libcdr01 because it also needs
a C++11 runtime library now. Add this to all ports that depend on it
so their executables load the right libstdc++.so on FreeBSD 9.
PR: 205120
Exp-run by: antoine
Approved by: portmgr (antoine)
from ports, pigeonhole's build will fail because it can't find libkrb5.so.
To fix this, introduce the usual GSSAPI option block. Also, add a
BUILD_FAIL_MESSAGE asking you to make sure that the GSSAPI option here
matches the GSSAPI option from dovecot2.
PR: 211025
Submitted by: dewayne heuristicsystems com au
Patch by: maintainer (Larry Rosenman)
* vacation extension: The sieve_user_email setting is now used in the
check for implicit delivery.
- imapsieve plugin: For any mail transaction, the mailbox was opened a
second time, even if no mailbox rule matched. This was unintentional,
useless and caused problems when the imapsieve plugin was used with
other plugins like acl.
- extprograms plugin: Significantly improved error handling. No stream
errors were logged.
- extprograms plugin: Fixed bug in handling of result code from remote
program (script service).
- extprograms plugin: Connection to remote program service was not
retried.
- Several small fixes based on static analysis.
- Fixed handling of quoted string localparts in email addresses.
PR: 210905
Submitted by: maintainer (Larry Rosenman)
fix the kqueue crash. Bump PORTREVISION on pigeonhole and antispam-plugin
again.
Extra thanks to Larry Rosenman for being on top of the fix.
Obtained from: ffd8dc9325
antispam-plugin.
* lmtp: Start tracking lmtp_user_concurrency_limit and reject already
at RCPT TO stage. This avoids MTA unnecessarily completing DATA only
to get an error.
* doveadm: Previously only mail settings were read from protocol
doveadm { .. } section. Now all settings are.
+ quota: Added quota_over_flag_lazy_check setting. It avoids checking
quota_over_flag always at startup. Instead it's checked only when
quota is being read for some other purpose.
+ auth: Added a new auth policy service:
http://wiki2.dovecot.org/Authentication/Policy
+ auth: Added PBKDF2 password scheme
+ auth: Added %{auth_user}, %{auth_username} and %{auth_domain}
+ auth: Added ":remove" suffix to extra field names to remove them.
+ auth: Added "delay_until=<timestamp>[+<max random secs>]" passdb
extra field. The auth will wait until <timestamp> and optionally some
randomness and then return success.
+ dict proxy: Added idle_msecs=<n> parameter. Support async operations.
+ Performance improvements for handling large mailboxes.
+ Added lib-dcrypt API for providing cryptographic functions.
+ Added "doveadm mailbox update" command
+ imap commands' output now includes timing spent on the "syncing"
stage if it's larger than 0.
+ cassandra: Added metrics=<path> to connect setting to output internal
statistics in JSON format every second to <path>.
+ doveadm mailbox delete: Added -e parameter to delete only empty
mailboxes. Added --unsafe option to quickly delete a mailbox,
bypassing lazy_expunge and quota plugins.
+ doveadm user & auth cache flush are now available via doveadm-server.
+ doveadm service stop <services> will stop specified services while
leaving the rest of Dovecot running.
+ quota optimization: Avoid reading mail sizes for backends which
don't need them (count, fs, dirsize)
+ Added mailbox { autoexpunge_max_mails=<n> } setting.
+ Added welcome plugin: http://wiki2.dovecot.org/Plugins/Welcome
+ fts: Added fts_autoindex_exclude setting.
- v2.2.24's MIME parser was assert-crashing on mails having truncated
MIME headers.
- auth: With multiple userdbs the final success/failure result wasn't
always correct. The last userdb's result was always used.
- doveadm backup was sometimes deleting entire mailboxes unnecessarily.
- doveadm: Command -parameters weren't being sent to doveadm-server.
- If dovecot.index read failed e.g. because mmap() reached VSZ limit,
an empty index could have been opened instead, corrupting the
mailbox state.
- imapc: Fixed EXPUNGE handling when imapc_features didn't have modseq.
- lazy-expunge: Fixed a crash when copying failed. Various other fixes.
- fts-lucene: Fixed crash on index rescan.
- auth_stats=yes produced broken output
- dict-ldap: Various fixes
- dict-sql: NULL values crashed. Now they're treated as "not found".
The most important feature that this new release adds is the IMAPSIEVE
capability, which allows executing Sieve scripts at IMAP events. It also
adds the ability to obtain trace logs from Sieve execution at actual
delivery (or from IMAP), rather than only using the sieve-test command
line tool.
This release also fixes a bug in the Sieve extprograms plugin that has
been bothering a few people for a while now.
Changelog v0.4.14:
* The address test now allows specifying the X-Original-To header.
+ Implemented the Sieve imapsieve extension and its IMAP counterpart
(RFC 6785) as a set of plugins. This allows running Sieve scripts at
IMAP activity, rather than at delivery. There are also facilities for
the familiar sieve_before/sieve_after administrator scripts. A user
script is defined for a mailbox using an IMAP METADATA entry, whereas
administrator scripts are configured using mailbox matching rules
defined in the plugin settings.
+ Adjusted the Sieve ihave extension to allow capability tests to be
performed at runtime. This way, scripts can be written that work both
at delivery and from IMAP.
+ Implemented support for runtime trace debugging. This means that
detailed information about which commands, actions and tests are
performed is written to a file. That file is created in the
configured directory, but only if that directory exists. This way, a
particular user can be easily singled out for debugging. This works
much like the Dovecot rawlog facility. The trace output is identical
to what is produced using sieve-test with its "-t" command line
option.
+ Added a "sieve_user_email" setting that configures the user's primary
email address. This is mainly useful to have a user email address
available in IMAP, where envelope data is unavailable.
+ Implemented the dovecot-specific "vnd.dovecot.report" extension. This
allows sending report messages in the Message Abuse Reporting Format
(RFC 5965).
- extprograms plugin: Fixed epoll() panic caused by closing the output
FD before the output stream.
- Made sure that the local part of a mail address is encoded properly
using quoted string syntax when it is not a dot-atom.
PR: 209084
Submitted by: maintainer (Larry Rosenman)
pigeonhole.
* doveconf now warns if it sees a global setting being changed when
the same setting was already set inside some filters. (A common
mistake has been adding more plugins to a global mail_plugins
setting after it was already set inside protocol { .. }, which
caused the global setting to be ignored for that protocol.)
* LMTP proxy: Increased default timeout 30s -> 125s. This makes it
less likely to reach the timeout and cause duplicate deliveries.
* LMTP and indexer now append ":suffix" to session IDs to make it
unique for the specific user's delivery. (Fixes duplicate session
ID warnings in stats process.)
+ Added dict-ldap for performing read-only LDAP dict lookups.
+ lazy-expunge: All mails can be saved to a single specified mailbox.
+ mailbox { autoexpunge } supports now wildcards in mailbox names.
+ doveadm HTTP API: Added support for proxy commands
+ imapc: Reconnect when getting disconnected in non-selected state.
+ imapc: Added imapc_features=modseq to access MODSEQs/HIGHESTMODSEQ.
This is especially useful for incremental dsync.
+ doveadm auth/user: Auth lookup performs debug logging if
-o auth_debug=yes is given to doveadm.
+ Added passdb/userdb { auth_verbose=yes|no } setting.
+ Cassandra: Added user, password, num_threads, connect_timeout and
request_timeout settings.
+ doveadm user -e <value>: Print <value> with %variables expanded.
- Huge header lines could have caused Dovecot to use too much memory
(depending on config and used IMAP commands). (Typically this would
result in only the single user's process dying with out of memory
due to reaching service { vsz_limit } - not a global DoS).
- dsync: Detect and handle invalid/stale -s state string better.
- dsync: Fixed crash caused by specific mailbox renames
- auth: Auth cache is now disabled passwd-file. It was unnecessary and
it broke %variables in extra fields.
- fts-tika: Don't crash if it returns 500 error
- dict-redis: Fixed timeout handling
- SEARCH INTHREAD was crashing
- stats: Only a single fifo_listeners was supported, making it
impossible to use both auth_stats=yes and mail stats plugin.
- SSL errors were logged in separate "Stacked error" log lines
instead of as part of the disconnection reason.
- MIME body parser didn't handle properly when a child MIME part's
--boundary had the same prefix as the parent.
and dovecot2-antispam-plugin.
From the 2.2.23 release notes:
This is a bugfix-only release with various important fixes on top of v2.2.22.
- Various fixes to doveadm. Especially running commands via
doveadm-server was broken.
- director: Fixed user weakness getting stuck in some situations
- director: Fixed a situation where directors keep re-sending
different states to each others and never becoming synced.
- director: Fixed assert-crash related to a slow "user killed" reply
- Fixed assert-crash related to istream-concat, which could have
been triggered at least by a Sieve script.
* redirect action: Added the list-id header to the duplicate ID for
mail loop prevention. This means that the message sent directly to
the user and the message coming through the mailing list itself are
treated as different messages by the loop detection of the redirect
command, even though their Message-ID may be identical.
* Changed the Sieve number type to uint64_t, which means that Sieve
numbers can now technically range up to 2^64. Some other Sieve
implementation allowed this, making this change necessary for
successful migration.
+ Implemented the sieve_implicit_extensions setting. The extensions
listed in this setting do not need to be enabled explicitly using the
Sieve "require" command. This behavior directkly violates the
standard, but can be necessary for compatibility with some existing
implementations of Sieve. Do not use this setting unless you really
need to!
- redirect action: Made mail loop detection more robust by forcibly
adding a Message-ID header if it is missing.
- Prevent logging a useless "script not found" error message for LDAP
scripts for which the entry exists but no attribute containing a
script. This is not necessarily an error.
- extprograms plugin: Changed the communication channel between parent
and child process for a directly forked program from a socketpair to
a double pipe. Linux does not support /dev/stdin, /dev/stdout and
friends for sockets. For some shell program authors this may be
confusing, so that is why it is changed. When using the script
service, these device nodes are still not usable though.
PR: 208108
Submitted by: Larry Rosenman <ler@lerctr.org> (maintainer)
and dovecot2-antispam-plugin.
Changes for 2.2.22:
+ Added doveadm HTTP API: See
http://wiki2.dovecot.org/Design/DoveadmProtocol/HTTP
+ virtual plugin: Mailbox filtering can now be done based on the
mailbox metadata. See http://wiki2.dovecot.org/Plugins/Virtual
+ stats: Added doveadm stats reset to reset global stats.
+ stats: Added authentication statistics if auth_stats=yes.
+ dsync, imapc, pop3c & pop3-migration: Many optimizations,
improvements and error handling fixes.
+ doveadm: Most commands now stop soon after SIGINT/SIGTERM.
- auth: Auth caching was done too aggressively when %variables were
used in default_fields, override_fields or LDAP pass/user_attrs.
userdb result_* were also ignored when user was found from cache.
- imap: Fixed various assert-crashes caused v2.2.20+. Some of them
caught actual hangs or otherwise unwanted behavior towards IMAP
clients.
- Expunges were forgotten in some situations, for example when
pipelining multiple IMAP MOVE commands.
- quota: Per-namespaces quota were broken for dict and count backends
in v2.2.20+
- fts-solr: Search queries were using OR instead of AND as the
separator for multi-token search queries in v2.2.20+.
- Single instance storage support wasn't really working in v2.2.16+
- dbox: POP3 message ordering wasn't working correctly.
- virtual plugin: Fixed crashes related to backend mailbox deletions.
+ Implemented the Sieve extracttext extension (RFC 5703; Section 7). It
is now possible to extract body text from a message into a variable.
* Increased ABI version due to changes in the Sieve interpreter's object
definitions.
- multiscript: Fixed bug in handling of (implicit) keep; final keep
action was always executed as though there was a failure. This caused
the keep action to revert back to the initial message, causing
editheader actions to be ignored.
- managesieve-login: Fixed proxy to allow SASL mechanisms other than
PLAIN. Before, the proxy would fail if the server did not support the
PLAIN mechanism.
- ldap storage: Prevent segfault occurring when assigning certain
(global) configuration options.
PR: 207000
Submitted by: Larry Rosenman <ler@lerctr.org> (maintainer)
While here, fix up some paths in the decode2text plugin, and add a note
to pkg-message about how to make it work. [1]
Changes:
- doveadm mailbox list (and some others) were broken in v2.2.20
- director: Fixed making backend changes when running with only a
single director server.
- virtual plugin: Fixed crash when trying to open nonexistent
autocreated backend mailbox.
PR: 205231 [1]
Submitted by: andrej@ebert.su
pigeonhole.
Also, remove the GC option from dovecot2. As reported in bug #205035,
reported by sebastian@wolfgarten.com, all it does it cause leaks and
spam the logs about it.
Changes:
+ Added mailbox { autoexpunge=<time> } setting. See
http://wiki2.dovecot.org/MailboxSettings for details.
+ ssl_options: Added support for no_ticket
+ imap/pop3/managesieve-login: Added postlogin_socket=path passdb extra
field. This allows replacing the default service
imap/pop3/managesieve {} settings for specific users (e.g. running
their imap process via valgrind or strace).
+ doveadm fetch: Added date.sent/received/saved.unixtime
+ fs-posix: Added mode=auto parameter to set the created files' and
directories' mode based on the parent dir if it has setgid-bit.
+ director: Support backends having hostnames, which makes it possible
to verify their SSL certificates.
- director: Directors' state became desynchronized if doveadm director
commands were used to modify the same backend in multiple directors
at the same time with conflicting changes. This fix includes some
extra checks, which makes sure that if such a conflict still happens
it's automatically fixed. In some situations such an automatic fix
may now be unnecessarily triggered and an error logged.
- director: Backend tags weren't working correctly.
- ldap: tls_* settings weren't used for ldaps URIs.
- ldap, mysql: Fixed setting connect timeout.
- auth: userdb lookups via auth-worker couldn't change username
- dsync: Fixed handling deleted directories. Make sure we don't go to
infinite mailbox renaming loop.
- imap: Fixed crash in NOTIFY when there were watched namespaces that
didn't support NOTIFY.
- imap: After SETMETADATA was used, various commands (especially FETCH)
could have started hanging when their output was large.
- stats: Idle sessions weren't refreshed often enough, causing stats
process to forget them and log errors about unknown sessions when
they were updated later.
- stats: Fixed "Duplicate session ID" errors when LMTP delivered to
multiple recipients and fts_autoindex=yes.
- zlib plugin: Fixed copying causing cache corruption when zlib_save
wasn't set, but the source message was compressed.
- fts-solr: Fixed escaping Solr query parameters.
- lmtp: quota_full_tempfail=yes was ignored with
lmtp_rcpt_check_quota=yes
upgrade to follow mail/dovecot2
* Properly implemented checking of ABI version for Sieve interpreter
plugins, much like Dovecot itself does for plugins. This will prevent
plugin ABI mismatches.
+ Implemented a vnd.dovecot.environment extension. This builds upon the
standard environment extension and adds a few more environment items,
such as username and default mailbox. It also creates a variables
namespace so that environment items can be accessed directly. I am
still thinking about more environment items that can be added.
+ Sieve extprograms plugin: Made line endings of the input passed to the
external programs configurable. This can be configured separately for
each of the three extensions.
+ ManageSieve: Implemented proxy XCLIENT support. This allows the proxy
to pass client information to the back-end.
- ManageSieve: Fixed an assert failure occurring when a client
disconnects during the GETSCRIPT command.
- doveadm sieve plugin: Fixed incorrect initialization of mail user.
This caused a few memory leaks.
- sieve-filter command line tool: Fixed handling of failure-related
implicit keep when there is an explicit default destination folder.
This caused message duplication.
- lib-sieve: Fixed bug in RFC5322 header folding. Words longer than the
optimal line length caused empty lines in the output, which would
break the resulting message header. This surfaced in References:
headers with very long message IDs.
PR: 203526
Submitted by: Larry Rosenman <ler@lerctr.org> (maintainer)
and pigeonhole.
Changes:
* pop3_deleted_flag has been broken since v2.2.10. Using it would
cause buffer overflows, which could be exploitable. However, this
bug would have become visible quite soon after users had deleted
some POP3 mails, because the pop3 processes would have started
crashing all the time even in normal use.
* "doveadm director flush" command has a changed meaning now:
It safely moves users to their wanted backends, instead of simply
forgetting the mapping entirely and leaving the existing connections
untouched. Use -F parameter to get the original unsafe behavior.
+ Added imap-hibernate processes (see imap_hibernate_timeout setting).
IDLEing IMAP connections can be hibernated, which saves memory.
+ Optimized tracking mailboxes' vsizes (= sum of all messages' sizes).
If mailbox_list_index=yes, it's also stored in there. This makes it
very efficient to look up vsizes for all mailboxes.
+ Added a quota "count" backend, which uses the mailbox vsizes to get
the current quota usage. It requires using the new quota_vsizes=yes
setting, which tracks the messages' "virtual sizes" rather than
"physical sizes". Their distiction is minor and mostly irrelevant
nowadays (if mail sizes should be counted with LF or CRLF newlines).
+ "doveadm director up/down" commands added. The monitoring script
should be using these commands instead of changing the vhost count.
This allows admin to manually disable a server by changing the vhost
count to 0 without the monitoring script changing it back.
+ Added support for HAProxy protocol: http://wiki2.dovecot.org/HAProxy
+ Added push-notification plugin framework, which can be used to
easily implement push notifications to various backends. Implemented
"ox" backend for notifying Open-Xchange via HTTP/json.
+ imap_logout_format supports more variables now, e.g. number of
deleted messages.
+ pop3: Added pop3_delete_type setting (related to pop3_deleted_flag).
+ plugin { fts_enforced=yes } setting now fails body searches unless
it can be done via the full text search engine.
+ Added %{passdb:*} and %{userdb:*} variables to various places
+ auth: Added ":protected" suffix for passdb and userdb fields. If
used, the field doesn't overwrite an existing field.
+ IMAP/POP3 proxy: If a backend server dies, avoid client reconnection
spikes by slowly disconnecting clients over time. This is enabled by
setting login_proxy_max_disconnect_delay=secs passdb extra field.
+ imap: Added new read-only METADATA entries: /private/specialuse,
/shared/comment, /shared/admin
+ imap: If client disconnects in the middle of a command, log how long
the command had been running.
- mdbox: Rebuilding could have caused message's reference count to
overflow the 16bit number in some situations, causing problems when
trying to expunge the duplicates.
- Various search fixes (fts, solr, tika, lib-charset, indexer)
- Various virtual plugin fixes
- Various fixes and optimizations to dsync, imapc and pop3-migration
- imap: Various RFC compliancy and crash fixes to NOTIFY
identified in 2.2.17.
Changes:
- director: Login UNIX sockets were normally detected as doveadm or
director ring sockets, causing it to break in existing installations.
- sdbox: When copying a mail in alt storage, place the destination to
alt storage as well.
Bump PORTREVISION on antispam-plugin and pigeonhole, like I should have
done last time.
Changelog v0.4.7:
* editheader extension: Made protection against addition and deletion of
headers configurable separately. Also, the `Received' and
`Auto-Submitted' headers are no longer protected against addition by
default.
* Turned message envelope address parse errors into warnings.
* The interpreter now accepts non-standard domain names, e.g.
containing '_'.
+ Implemented the Sieve index extension (RFC 5260).
+ Implemented support for the mboxmetadata and servermetadata extensions
(RFC 5490).
+ Implemented new sieve commands for the doveadm command line utility.
These commands are currently limited to ManageSieve operations, but
the other current sieve tools will be migrated to doveadm in the near
future as well.
+ Added more debug output about binary up-to-date checking.
+ Added script metadata to binary dump output.
- Fixed Sieve script binary up-to-date checking by normalizing the
script location.
- The Sieve interpreter now flushes the duplicate database during start
phase of result execution rather than commit phase. This makes sure
locks on the duplicate database are released as soon as possible,
preventing contention.
- Performed a few optimizations in the lexical scanner of the language.
- Fixed bug in `:matches' match-type that made a pattern without
wildcards match as if there were a '*' at the beginning.
- Fixed crash in validation of the string parameter of the comparator
tag.
- extprograms extension: Made sure supplemental group privileges are
also dropped. This was a problem reported by Debian lintian.
- Fixed bug in handling of binary errors for action side-effects and
message overrides.
- file script storage: Restructured storage initialization to address
backwards compatibility issues.
- dict script storage: Fixed small memory allocation bug.
PR: 198747
Submitted by: Larry Rosenman <ler@lerctr.org> (maintainer)
- submitter takes maintainership
Changes:
0.4.4:
- Added support for Japanese mail addresses with dots at non-standard
places in localpart.
- Changed handling of ENOSPACE into a normal temporary failure and added
handling of ENOQUOTA as a user error.
- Restructured result execution, so that all actions which involve mail
storage are always committed before all others.
- Implemented support for generic Sieve storages. Using alternative
storages now also possible for sieve_before/sieve_after.
- Implemented storage driver for retrieving Sieve scripts from LDAP.
This currently cannot be used with ManageSieve.
- Implemented sieve_redirect_envelope_from setting, which allows
configuring the envelope sender of redirected messages.
- Fixed handling of mail storage errors occurring while evaluating the
input message.
- managesieve-login:
- Removed bogus ALERT response code returned for AUTHENTICATE
command.
- Fixed handling of invalid initial response argument to AUTHENTICATE
command.
- Fixed handling of stream errors in lexical scanner.
- Fixed handling of SMTP errors. Permanent and temporary errors were
mixed up.
- Fixed several problems reported by CLang 3.4.
- duplicate extension: Fixed erroneous compile error about conflicting
tags when `:handle' argument was used last.
- relational extension: Fixed error handling of `:value' match.
- editheader extension: Fixed header unfolding and header iteration.
- mailbox extension: Fixed the `:create' tag, which erroneously
subscribed an existing folder.
- extprograms plugin: Fixed handling of error codes.
- doveadm-sieve plugin: Fixed several bugs. Synchronization of symbolic
link in the file storage should now also work properly.
0.4.5:
- Added a Pigeonhole version banner to doveconf output. This way, future
bug reports will also include Pigeonhole version information.
- Fixed handling of implicit keep. Last version erroneously reported
that implicit keep succeeded after an earlier failure, while it in
fact had failed. Particularly occurred for mailbox quota errors.
- Fixed segfault occurring on SunOS systems when there is no active
script.
0.4.6:
- ports-related change integrated upstream
PR: 194645
Submitted by: Larry Rosenman <ler@lerctr.org>
Approved by: maintainer (timeout)
ChangeLog:
Some small fixes and changes to v2.2.14. This release is mainly in the hope
that it could still make it into the next Debian stable instead of v2.2.14 -
mainly because of a couple of new assert crashes that started happening in
v2.2.14 and should be fixed now.
* Plugins can now print a banner comment in doveconf output
(typically the plugin version)
* Replication plugin now triggers low (instead of high) priority for
mail copying operations.
* IMAP/POP3/ManageSieve proxy: If destination server can't be
connected to, retry connecting once per second up to the value of
proxy_timeout. This allows quick restarts/upgrades on the backend
server without returning login failures.
* Internal passdb lookups (e.g. done by lmtp/doveadm proxy) wasn't
returning failure in some situations where it should have (e.g.
allow_nets mismatch)
* LMTP uses mail_log_prefix now for logging mail deliveries instead of
a hardcoded prefix. The non-delivery log prefix is still hardcoded
though.
+ passdb allow_nets=local matches lookups that don't contain an IP
address (internally done by Dovecot services)
+ Various debug logging and error logging improvements
- Various race condition fixes to LAYOUT=index
- v2.2.14 virtual plugin crashed in some situations
dovecot2-antispam-plugin.
Changes in 2.2.14:
* lmtp: Delivered-To: header no longer contains <> around the email
address. Other MDAs don't have it either.
* "Out of disk space" errors are now treated as temporary errors
(not the same as "Out of disk quota").
* replication plugin: Use replication only for users who have a
non-empty mail_replica setting.
+ lmtp proxy: Log a line about each mail delivery.
+ Added login_source_ips setting. This can be used to set the source IP
address round-robin from a pool of IPs (in case you run out of TCP
ports).
+ Rawlog settings can use tcp:<host>:<port> as the path.
+ virtual plugin: Don't keep more than virtual_max_open_mailboxes
(default 64) number of backend mailboxes open.
+ SSL/TLS compression can be disabled with ssl_options=no_compression
+ acl: Global ACL file now supports "quotes" around patterns.
+ Added last-login plugin to set user's last-login timestamp on login.
+ LDAP auth: Allow passdb credentials lookup also with auth_bind=yes
- IMAP: MODSEQ was sent in FETCH reply even if CONDSTORE/QRESYNC wasn't
enabled. This broke at least old Outlooks.
- passdb static treated missing password field the same as an empty
password field.
- mdbox: Fixed potential infinite looping when scanning a broken
mdbox file.
- imap-login, pop3-login: Fixed potential crashes when client
disconnected unexpectedly.
- imap proxy: The connection was hanging in some usage patterns. This
mainly affected older Outlooks.
- lmtp proxy: The proxy sometimes delivered empty mails in error
situations or potentially delivered truncated mails.
- fts-lucene: If whitespace_chars was set, we may have ended up
indexing some garbage words, growing the index size unnecessarily.
- -c and -i parameters for dovecot/doveadm commands were ignored if
the config socket was readable.
- quota: Quota recalculation didn't include INBOX in some setups.
- Mail headers were sometimes added to dovecot.index.cache in wrong
order. The main problem this caused was with dsync+imapc incremental
syncing when the second sync thought the local mailbox had changed.
- doveadm backup didn't notice if emails were missing from the middle
of the destination mailbox. Now it deletes and resyncs the mailbox.
- And, following the instructions in Makefile, bump PORTREVISION of mail/dovecot2-antispam-plugin and mail/dovecot-pigeonhole
PR: ports/184273
Submitted by: Attila Nagy <bra@fsn.hu> (maintainer)