There's no need to log a warning about the second mail_location not
overriding the virtual namespace's mail_location. And the second
mail_location could be there because it's easier to write tests in
that way in CI.
Timo Sirainen [Wed, 31 May 2023 22:13:28 +0000 (01:13 +0300)]
lazy-expunge: Remove support for using lazy_expunge namespaces
Most people are using a single mailbox for lazy_expunge destination. Using
an entire namespace was always a bit troublesome. Also trying to support it
would make the following configuration changes more complex.
Timo Sirainen [Thu, 5 Oct 2023 12:19:29 +0000 (15:19 +0300)]
auth: Change oauth2 to disable retries with http_client_request_max_attempts=1
http_client_auto_retry is a hidden setting that shouldn't normally be
used. http_client_request_max_attempts=1 in this case behaves the same in
a more normal way.
Karl Fleischmann [Thu, 14 Sep 2023 09:09:58 +0000 (11:09 +0200)]
plugins/push-notification: push_notification_driver_ox_init_global() - Move HTTP client initialization into init-callback
This commit makes the HTTP client initialization and propagation of
potential errors into the init-callback of the push notification
drivers, instead of deferring it to the message handling.
Replace the old config lookup mechanism - a per-driver parsing of a
settings-string and a subsequent creation of a config hash-map - with a
new settings-based mechanism. This way each driver can now access its
native settings directly. For this to work the driver identification and
initialization needs to be adapted, as well.
Timo Sirainen [Tue, 22 Aug 2023 19:46:07 +0000 (15:46 -0400)]
config: Don't allow config file to contain key=value for lists or filters
For example although it's allowed to use "-o namespace=name1" to add a
new named array filter in command line, in config file this would just
cause confusion, so require namespace name1 { .. } instead.
Timo Sirainen [Tue, 15 Aug 2023 00:00:53 +0000 (20:00 -0400)]
lib-settings: Sort overridden settings by the key path's element count
This is especially important to get fs_parent/fs_parent/.. hierarchy to
work correctly. An alternative could have been to require specifying the
overridden settings in the correct order, but that would require a stable
merging algorithm to be used instead of qsort().
Timo Sirainen [Thu, 10 Aug 2023 10:53:30 +0000 (13:53 +0300)]
doveadm: Add "mail dict" commands
These are similar to "doveadm dict" commands, but they're run in the mail
user context. This way all user-specific settings are applied and process
uid/gid is also set properly.
Timo Sirainen [Mon, 7 Aug 2023 08:17:34 +0000 (11:17 +0300)]
doveadm: Add "mail fs" commands
These are similar to "doveadm fs" commands, but they're run in the mail user
context. This way all user-specific settings are applied and process
uid/gid is also set properly.
Timo Sirainen [Mon, 7 Aug 2023 06:08:45 +0000 (09:08 +0300)]
doveadm fs: Change fs-driver & fs-args parameters to filter-name
The filter-name refers to the filter section in config file that contains
the fs_driver and other necessary settings. It's also possible to specify
all necessary settings using -o parameter, e.g.:
Timo Sirainen [Sat, 29 Jul 2023 18:31:40 +0000 (21:31 +0300)]
fs-compress: Implement new fs.init() and compression_handler.create_ostream_auto() APIs
The compression method parameter is replaced by fs_compress_write_method
setting. An empty setting means writing with plaintext.
The old "maybe-" prefix is replaced by fs_compress_read_plain_fallback
setting.
Since there is no longer a single generic compression level parameter,
using level 0 to disable compression is replaced by using an empty
fs_compress_write_method value.
Timo Sirainen [Sat, 29 Jul 2023 18:22:28 +0000 (21:22 +0300)]
mail-compress: Use create_ostream_auto() API
mail_compress_save plugin setting is replaced by mail_compress_write_method.
mail_compress_save_level plugin setting is replaced by compression method
specific settings.
Timo Sirainen [Fri, 28 Jul 2023 11:26:05 +0000 (14:26 +0300)]
lib-storage: Replace mail_attachment_fs with mail_attachment filter
Replace e.g.:
mail_attachment_fs = posix:no-fsync
with:
mail_attachment {
fs_driver = posix
fs_posix_fsync = no
}
There is no longer a default mail_attachment { fs_driver }. It needs to be
set explicitly.
This also changes the mailbox_list_init_fs() API to use fs_init_filter().
Currently its only caller in core is this mail_attachment_fs.
If mail_attachment_dir is set, it now gives an error if
mail_attachment { ... } filter is not set. Previously an empty
mail_attachment_fs would have been ignored, although it likely wasn't used
much since its default was not empty.
Copying mails needed to remove full mail_attachment_fs comparison checks
between source and destination storage, because it's not practical anymore
to compare whether two FSes are the same. It's unlikely anyone would use
two incompatible FSes with the same mail_attachment_dir setting.
Timo Sirainen [Fri, 28 Jul 2023 10:40:12 +0000 (13:40 +0300)]
fs-posix: Remove mode=auto setting
This setting has never actually done anything. Its behavior of taking
created files' permissions from parent directory is actually controlled by
the parent directory's SETGID bit.