]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Mon, 7 Apr 2025 10:11:41 +0000 (13:11 +0300)]
config: Add config_parsed_get_all_keys()
Timo Sirainen [Wed, 26 Feb 2025 17:52:23 +0000 (19:52 +0200)]
config: Remove unused dump_context.filter_idx
Timo Sirainen [Wed, 26 Feb 2025 10:28:38 +0000 (12:28 +0200)]
config: Move all structs and enums to beginning of file
Timo Sirainen [Wed, 26 Feb 2025 10:43:15 +0000 (12:43 +0200)]
config, lib-settings: Access filter index/offset arrays directly via mmap
Add 64bit alignment to the start offset to make this safe.
Timo Sirainen [Thu, 10 Apr 2025 12:48:50 +0000 (15:48 +0300)]
lib-master: test-master-service-settings - Fix earlier tests
Timo Sirainen [Mon, 24 Feb 2025 11:28:10 +0000 (13:28 +0200)]
lib-settings, config: Use native CPU endianess in binary config file
The binary config file is never shared between different servers, so for
performance it's better to just use native endianess.
Timo Sirainen [Fri, 11 Apr 2025 10:47:51 +0000 (13:47 +0300)]
lib-settings: Add and use SETTINGS_APPEND_KEY_SUFFIX macro
Markus Valentin [Wed, 7 May 2025 12:17:20 +0000 (14:17 +0200)]
lib-storage: Don't use \Recent flags if IMAP4rev2 is enabled
IMAP4rev2 sessions still update the "highest \Recent message UID", but it
doesn't return any messages as having \Recent flag.
Markus Valentin [Thu, 10 Apr 2025 06:24:47 +0000 (08:24 +0200)]
imap: imap-status: Handle RECENT as invalid status item for IMAP4rev2
Markus Valentin [Mon, 7 Apr 2025 12:24:21 +0000 (14:24 +0200)]
imap: Disable RECENT replies when IMAP4REV2 is enabled
Markus Valentin [Mon, 7 Apr 2025 12:18:54 +0000 (14:18 +0200)]
imap: Do not use deprecated IMAP4rev1 search arguments if IMAP4rev2 is enabled
Markus Valentin [Thu, 8 May 2025 10:57:54 +0000 (12:57 +0200)]
lib-storage: Deprecate IMAP4rev1 mail_search_register_args for IMAP4rev2
Also introduce mail_search_register_get_imap4rev2() and
mail_search_register_get_imap4rev1().
Markus Valentin [Fri, 9 May 2025 09:25:31 +0000 (11:25 +0200)]
lib-storage: Add enum mail_search_register_arg_flags to mail_search_register_arg
Markus Valentin [Thu, 8 May 2025 07:47:11 +0000 (09:47 +0200)]
lib-storage: index_storage_mailbox_enable() - Add MAILBOX_FEATURE_IMAP4REV2
Markus Valentin [Thu, 10 Apr 2025 06:23:42 +0000 (08:23 +0200)]
imap: Fix registering IMAP4rev2 as imap feature
Aki Tuomi [Mon, 12 May 2025 08:20:18 +0000 (11:20 +0300)]
global: Drop support for old iconv()
iconv() is part of POSIX.1-2001.
Aki Tuomi [Tue, 15 Apr 2025 10:48:18 +0000 (13:48 +0300)]
lib-lua: Add input & output stream wrappers
Fred Morcos [Wed, 23 Apr 2025 07:21:54 +0000 (09:21 +0200)]
lib-mail: Use explicit boolean expressions to fix compile errors
Fred Morcos [Wed, 16 Apr 2025 13:06:13 +0000 (15:06 +0200)]
lib-mail: Use test_assert_strcmp_idx instead of custom debug code
Fred Morcos [Wed, 19 Mar 2025 06:38:03 +0000 (07:38 +0100)]
fts: Explicit initializer names
Fred Morcos [Thu, 20 Feb 2025 06:58:58 +0000 (07:58 +0100)]
lib-mail: Tests for attachment detection
Fred Morcos [Tue, 18 Feb 2025 21:40:20 +0000 (22:40 +0100)]
lib-mail: Refactor and improve attachment detection
This also adds support for detecting Content-Type->name when Content-Disposition->filename
is not available. This only works in the case of Content-Disposition: attachment.
Fred Morcos [Tue, 18 Feb 2025 08:00:09 +0000 (09:00 +0100)]
lib-mail: Fix clang-tidy lints
Fred Morcos [Wed, 9 Apr 2025 05:21:30 +0000 (07:21 +0200)]
global: clang-tidy: disable recursion warnings
Aki Tuomi [Tue, 8 Apr 2025 05:44:02 +0000 (08:44 +0300)]
imap: Implement UTF8=ACCEPT for APPEND command
Aki Tuomi [Thu, 10 Apr 2025 05:41:54 +0000 (08:41 +0300)]
imap: Split off cmd_append_handle_parse_error()
Aki Tuomi [Tue, 8 Apr 2025 05:42:19 +0000 (08:42 +0300)]
imap: Refactor append handling
Simplifies next commit.
Aki Tuomi [Tue, 8 Apr 2025 18:26:44 +0000 (21:26 +0300)]
lib-imap: Add some tests for literal parsing
Marco Bettini [Thu, 10 Apr 2025 14:24:56 +0000 (14:24 +0000)]
imapc: Propagate response codes
Marco Bettini [Mon, 7 Apr 2025 14:28:41 +0000 (14:28 +0000)]
lib-storage: mail_storage_callbacks - Add notify_bad()
Marco Bettini [Mon, 7 Apr 2025 10:43:20 +0000 (10:43 +0000)]
lib-imap: Add defines for all the Response Codes currently in IANA
Vincent Kenbeek [Mon, 17 Mar 2025 14:25:40 +0000 (15:25 +0100)]
auth: remove proxy_always extra field
Fred Morcos [Mon, 14 Apr 2025 05:15:21 +0000 (07:15 +0200)]
settings: Use marker when Pro version is not specified
Fred Morcos [Fri, 11 Apr 2025 11:03:19 +0000 (13:03 +0200)]
settings: Improvements to settings-history conversion script
- Some cleanup and refactoring
- Improve version handling
- Improve error messages and reporting
Fred Morcos [Fri, 11 Apr 2025 11:02:58 +0000 (13:02 +0200)]
settings: Fix build issue with unsorted settings-history file
Timo Sirainen [Wed, 26 Mar 2025 08:59:43 +0000 (10:59 +0200)]
anvil: Change anvil socket's default group to default_internal_group
Karl Fleischmann [Wed, 9 Apr 2025 10:51:36 +0000 (12:51 +0200)]
imap/test-imap-client-hibernate: Append new unhibernation statistics to expected fields
Forgotten in
3d415cf2dd393e1b4ad6e2be1a06bb221406509f
Karl Fleischmann [Wed, 9 Apr 2025 10:48:35 +0000 (12:48 +0200)]
imap/test-imap-client-hibernate: Propagate failures in imap_hibernate_server()
The subprocess needs to propagate the error to the diligent parent process.
Fred Morcos [Thu, 10 Apr 2025 05:13:55 +0000 (07:13 +0200)]
config: Use python3 instead of python
Fred Morcos [Mon, 7 Apr 2025 12:51:32 +0000 (14:51 +0200)]
config: Change the generated settings-history-core from .h to .c
This changes the output file to a header file instead of a C file, this helps meson deal
better with dependencies on custom_targets.
It is technically an #included header file so it makes sense.
The ideal solution would be to keep it as a C file, and add forward declarations of the
arrays defined in it instead of verbatim #include'ing it. However, array forward decls are
not possible without a specified size which cannot be provided in advance and declaring
them as pointers is perhaps not the best idea.
Fred Morcos [Mon, 7 Apr 2025 12:46:46 +0000 (14:46 +0200)]
config: Replace settings-history Perl script with Python rewrite
Fred Morcos [Thu, 27 Mar 2025 15:51:07 +0000 (16:51 +0100)]
global: Add pyproject.toml for Python scripts
Fred Morcos [Wed, 9 Apr 2025 06:30:20 +0000 (08:30 +0200)]
global: gitignore: Ignore python rope cache dir
Timo Sirainen [Mon, 31 Mar 2025 11:47:55 +0000 (14:47 +0300)]
config: Fail if quoted "\escaping" is used for unexpected characters
Timo Sirainen [Fri, 28 Mar 2025 21:20:07 +0000 (23:20 +0200)]
config: Unescape a "quoted" setting key
This mainly fixes e.g.:
mailbox_special_use {
"\Drafts" = yes
}
Timo Sirainen [Wed, 19 Mar 2025 16:16:43 +0000 (18:16 +0200)]
config: Fix various issues in doveconf when outputing @groups
Timo Sirainen [Thu, 20 Mar 2025 10:57:53 +0000 (12:57 +0200)]
config: Change @group includes to be merged into parsed config immediately
This change expands the group settings into the settings tree using a new
low-priority CONFIG_PARSER_CHANGE_GROUP change_counter. Settings with this
counter are included in all checks, but they are not exported as part of the
configuration (to allow overriding the entire groups in cli/userdb).
This fixes using for example:
@metric_defaults = backend
metric auth_failures {
fields = foo
}
Which otherwise would fail with "metric is required to have metric_filter
setting" error, because it didn't realize the auth_metrics already existed.
Timo Sirainen [Thu, 20 Mar 2025 10:55:37 +0000 (12:55 +0200)]
config: Preserve filter_required_setting_seen when merging filter trees
Timo Sirainen [Thu, 20 Mar 2025 10:51:35 +0000 (12:51 +0200)]
config: config_module_parsers_merge() - Add new_change_counter parameter
This simplifies the following commits.
Timo Sirainen [Tue, 25 Mar 2025 10:11:26 +0000 (12:11 +0200)]
doveadm kick: Add support for kicking multiple usernames
Timo Sirainen [Tue, 25 Mar 2025 09:18:36 +0000 (11:18 +0200)]
doveadm: Add who_filter.username_wildcards helper boolean
Simplifies the next commit.
Timo Sirainen [Tue, 25 Mar 2025 08:57:52 +0000 (10:57 +0200)]
doveadm kick: Fix crash when trying to give multiple username parameters
Timo Sirainen [Tue, 25 Mar 2025 08:53:18 +0000 (10:53 +0200)]
doveadm kick: Fix event/memory leak when failing to connect to anvil
Timo Sirainen [Fri, 21 Mar 2025 19:33:00 +0000 (21:33 +0200)]
lib-storage: mailbox_list_index_refresh_force() - Add missing error handling for failed mail_index_refresh()
Timo Sirainen [Fri, 21 Mar 2025 19:30:12 +0000 (21:30 +0200)]
lib-storage: mailbox_list_index_refresh() - Fix error handling when called many times rapidly
The error could have been cleared out between the calls, so set the repeated
calls as internal failure.
Timo Sirainen [Thu, 27 Mar 2025 10:23:30 +0000 (12:23 +0200)]
imap: Fix potential assert-crash if pipelining IDLE+DONE+more commands
At least followed by COPY command it assert-crashes.
Fixes:
Panic: file cmd-copy.c: line 120 (fetch_and_copy): assertion failed: (o_stream_is_corked(client->output) || client->output->stream_errno != 0)
Timo Sirainen [Fri, 21 Mar 2025 18:38:53 +0000 (20:38 +0200)]
global: Log errors if anvil query fails
Timo Sirainen [Fri, 21 Mar 2025 18:32:30 +0000 (20:32 +0200)]
lib-master: Fix anvil_client_query() return value comment
It never returns NULL.
Timo Sirainen [Fri, 21 Mar 2025 18:30:54 +0000 (20:30 +0200)]
lib-master: Set proper error string to anvil_callback_t
Timo Sirainen [Fri, 21 Mar 2025 14:09:45 +0000 (16:09 +0200)]
lib-master: Add API changes to allow anvil_callback_t to return error string
Aki Tuomi [Fri, 28 Mar 2025 06:08:53 +0000 (08:08 +0200)]
lib-settings: test-settings - Refactor initialization of params3
Satisfies older compilers
Timo Sirainen [Thu, 27 Mar 2025 15:41:20 +0000 (17:41 +0200)]
lib-auth: Fix linking due to duplicate symbols
Timo Sirainen [Thu, 27 Mar 2025 15:52:40 +0000 (17:52 +0200)]
lmtp: Fix Pro edition to actually listen on port 24
Was forgotten in
a9c8da0daf874e2502f60d91a808ead94fe97d35
Timo Sirainen [Wed, 19 Mar 2025 08:11:27 +0000 (10:11 +0200)]
lib-var-expand: Test hierarchical SETTINGS_EVENT_VAR_EXPAND_PARAMS
Aki Tuomi [Wed, 19 Mar 2025 08:48:43 +0000 (10:48 +0200)]
lib-settings: Pad initial var expand context with empty tables and providers when needed
Fixes:
Panic: file settings.c: line 1560 (settings_var_expand_init_add): assertion failed: (I_MAX(num_tables, num_provs) == num_ctx)
Aki Tuomi [Wed, 26 Mar 2025 10:00:49 +0000 (12:00 +0200)]
auth: db-oauth2 - Don't mix table and providers_arr
It's not needed.
Marco Bettini [Tue, 25 Mar 2025 10:18:56 +0000 (10:18 +0000)]
quota: fs_quota_mountpoint_get() - Fix crash due to initialized event
Marco Bettini [Mon, 24 Mar 2025 12:58:47 +0000 (12:58 +0000)]
quota: imapc_quota_refresh_update() - Fix crash due to initialized event
Timo Sirainen [Thu, 20 Mar 2025 12:01:52 +0000 (14:01 +0200)]
config: doveconf - Fix asking for settings which have named filter as prefix
For example "doveconf imapc_master_user" wouldn't output the setting,
although "doveconf imapc/master_user" would.
Timo Sirainen [Fri, 21 Mar 2025 11:41:52 +0000 (13:41 +0200)]
config: Fix file descriptor leak if "set = <file" handling fails due to fstat()
Broken by
0301f03cbe9123302a439756f54a713373b86c69
Timo Sirainen [Thu, 20 Mar 2025 09:29:57 +0000 (11:29 +0200)]
config: Improve "Unknown section name" error with more details
Markus Valentin [Tue, 18 Mar 2025 10:29:23 +0000 (11:29 +0100)]
lib-imap-client: Add IMAP4rev2 capability detection support
Markus Valentin [Mon, 10 Mar 2025 14:29:27 +0000 (14:29 +0000)]
imap: Add imap4rev2 capability
It can only be enabled if build with --enable-experimental-imap4rev2
Aki Tuomi [Wed, 19 Mar 2025 10:57:58 +0000 (12:57 +0200)]
config: Support config version 2.4.1
Timo Sirainen [Wed, 19 Mar 2025 10:02:04 +0000 (12:02 +0200)]
lib-settings: Skip applying groups early if there are no group includes
Aki Tuomi [Tue, 18 Mar 2025 08:31:37 +0000 (10:31 +0200)]
lib: test-file-cache - Ignore RLIMIT_AS enforcement failure
If the OS does not respect RLIMIT_AS here, lets skip all the rest of
the tests.
This happens at least with qemu/aarch64.
Timo Sirainen [Tue, 11 Mar 2025 07:44:24 +0000 (09:44 +0200)]
lib-master: Try to use binary config cache if DOVECOT_CONFIG_CACHE environment is set
Timo Sirainen [Sun, 9 Mar 2025 09:09:07 +0000 (11:09 +0200)]
config, lib-settings: Add support for binary config file cache
This is mainly intended for optimizing our CI performance. It shouldn't
be used in production.
Timo Sirainen [Tue, 11 Mar 2025 07:39:09 +0000 (09:39 +0200)]
lib-settings, global: settings_parse_read_file() - Return file's struct stat
Timo Sirainen [Fri, 14 Mar 2025 08:40:23 +0000 (10:40 +0200)]
auth: Fix using passdb_fields with passdb_ldap_bind_userdn=yes
Timo Sirainen [Wed, 12 Mar 2025 14:12:11 +0000 (16:12 +0200)]
config: Improve "Unknown setting" error with more details and suggestions
List the autoprefixed setting names that were attempted. Also try to give
suggestions for corrected setting names with named list filters.
Timo Sirainen [Wed, 12 Mar 2025 13:33:22 +0000 (15:33 +0200)]
config: Remove dead code trying to add section name prefix for unknown settings
All settings are now global. There is no settings hierarchy.
Karl Fleischmann [Wed, 12 Mar 2025 08:59:18 +0000 (09:59 +0100)]
lmtp: Clarify lmtp_user_concurrency_limit value of unlimited
Disallow setting this setting to 0. Make the relevant checks against
"unlimited" instead.
Karl Fleischmann [Wed, 12 Mar 2025 08:59:09 +0000 (09:59 +0100)]
lmtp: Change the default lmtp_user_concurrency_limit to 10
Timo Sirainen [Wed, 12 Mar 2025 15:51:44 +0000 (17:51 +0200)]
global: Make process_shutdown_filter specific to imap/pop3/submission
Timo Sirainen [Tue, 11 Mar 2025 12:01:07 +0000 (14:01 +0200)]
imap: For Pro edition, change imap-master socket's owner to default_internal_user
Timo Sirainen [Sat, 8 Mar 2025 08:45:59 +0000 (10:45 +0200)]
pop3: Use inbox mailbox_list's existing mail_storage_settings
Timo Sirainen [Sat, 8 Mar 2025 08:43:52 +0000 (10:43 +0200)]
lib-storage: Add mailbox_list_get_mail_set()
Timo Sirainen [Sat, 8 Mar 2025 08:35:38 +0000 (10:35 +0200)]
lib-storage: Remove unused mail_user._mail_set
This was implicitly doing mail_user_get_home() when expanding user settings,
which was expected by the shared storage code. Changed this call now to be
explicit.
Timo Sirainen [Sat, 8 Mar 2025 08:33:03 +0000 (10:33 +0200)]
lib-storage: Remove unused mail_user_set_get_storage_set()
Timo Sirainen [Sat, 8 Mar 2025 08:32:05 +0000 (10:32 +0200)]
doveadm auth: Replace mail_user_set_get_storage_set() with direct settings lookup
Timo Sirainen [Sat, 8 Mar 2025 08:22:46 +0000 (10:22 +0200)]
lib-storage: Default namespace init: Lookup mail_driver with a settings lookup
This allows removal of mail_user_set_get_storage_set()
Timo Sirainen [Sat, 8 Mar 2025 08:19:25 +0000 (10:19 +0200)]
lib-storage: mail_duplicate_db_init() - Lookup settings via inbox mailbox_list
It's already used for looking up volatile directory, so use it for the rest
as well.
Timo Sirainen [Sat, 8 Mar 2025 08:17:33 +0000 (10:17 +0200)]
imap: Move mailbox_list_index setting to be looked up via imap_settings
Timo Sirainen [Sat, 8 Mar 2025 08:14:11 +0000 (10:14 +0200)]
lib-storage: Move namespace setting to mail_user_settings
Timo Sirainen [Sat, 8 Mar 2025 08:07:58 +0000 (10:07 +0200)]
lib-storage: mail_user_lock_file_create() - Use mail_set from mailbox_list
It was partially being used, while other settings were from user's mail_set.
Timo Sirainen [Fri, 7 Mar 2025 10:56:55 +0000 (12:56 +0200)]
lib-storage: Try to get special_use flags using cached mailbox settings
Timo Sirainen [Tue, 11 Mar 2025 09:50:54 +0000 (11:50 +0200)]
lib-storage: mailbox_list_iter_next() - Fix memory allocation for special_use flags
It's not safe to store the string into data stack.
Timo Sirainen [Fri, 7 Mar 2025 10:27:06 +0000 (12:27 +0200)]
lib-storage: Try to use cached mailbox settings
Timo Sirainen [Fri, 7 Mar 2025 10:26:39 +0000 (12:26 +0200)]
lib-storage: Move mailbox_get_name_without_prefix()