Timo Sirainen [Thu, 23 Nov 2023 21:10:20 +0000 (23:10 +0200)]
config: doveconf - If filter_name exists, show filter_name_key under filter_name { key }
This isn't done for default settings, because it's too much effort to
implement. Also this isn't visible for the usual "doveconf -n" or
"doveconf -N" outputs. Normally people aren't looking at just "doveconf" or
"doveconf -d" output, so it likely doesn't matter.
Timo Sirainen [Wed, 15 Nov 2023 15:22:45 +0000 (17:22 +0200)]
config: Support automatic filter name setting prefixing for named non-list filters also
They were working only for named list filters. This also changes
filter_name { filter_name_key } settings (when "filter_name" string is the
same in both) to apply to the global filter_name_key setting instead of
adding it inside the named filter.
Timo Sirainen [Wed, 22 Nov 2023 21:42:50 +0000 (23:42 +0200)]
config: Remove config_parser_context.key_path and config_section_stack.pathlen
Now that all settings are global, the only time when key_path is non-empty
is with strlist { .. } and boollist { .. } settings, and they can't have
nested hierarchies. There's no need for tracking a nested path in sections.
Timo Sirainen [Wed, 1 Nov 2023 13:37:22 +0000 (15:37 +0200)]
doveadm: Sync the inbox=yes namespace by default instead of empty location namespaces
This is hopefully good enough of a replacement. Later changes remove
the namespace_location setting, and later on even mail_location is split
into many settings. Those changes make the original behavior difficult to
preserve.
Timo Sirainen [Tue, 14 Nov 2023 10:54:52 +0000 (12:54 +0200)]
lib-settings: Support accessing overrides for unknown named filters if SETTINGS_EVENT_FILTER_NAME is set
This is mainly intended for "doveadm fs" and similar commands' filter-name
parameter to work properly with overrides. For example:
doveadm -o obox/fs_driver=posix fs get obox testfile
The "doveadm fs" command execution never sees the obox settings, so it
doesn't know that obox/ prefix means that it's a filter name. However,
by "doveadm fs" does set SETTINGS_EVENT_FILTER_NAME=obox to the lookup
event, which now allows it to realize that it is.
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.