]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
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()
Timo Sirainen [Thu, 6 Mar 2025 18:30:48 +0000 (20:30 +0200)]
lib-storage: Use parsed_mailboxes instead of getting mailbox settings again
Timo Sirainen [Thu, 6 Mar 2025 18:27:57 +0000 (20:27 +0200)]
lib-storage: Save all mailbox settings in namespace settings
This avoids having to look them up again.
Timo Sirainen [Thu, 6 Mar 2025 18:08:16 +0000 (20:08 +0200)]
lmtp: Add and use lmtp_pre_mail_settings
It only has mail_max_lock_timeout setting. This is much efficient to lookup
than the full large mail_storage_settings.
Timo Sirainen [Thu, 6 Mar 2025 17:51:08 +0000 (19:51 +0200)]
lib-storage: Add and use mailbox_list_layout_settings
It only has mailbox_list_layout setting. This is much efficient to lookup
than the full large mail_storage_settings.
Timo Sirainen [Thu, 6 Mar 2025 17:47:39 +0000 (19:47 +0200)]
lib-storage: Add and use mail_driver_settings
It only has mail_driver setting. This is much efficient to lookup than
the full large mail_storage_settings.
Timo Sirainen [Thu, 6 Mar 2025 12:30:58 +0000 (14:30 +0200)]
lib-storage: Remove mail_user.have_special_use_mailboxes
This avoids having to go through all mailbox settings in all namespaces when
initializing user.
Timo Sirainen [Thu, 6 Mar 2025 12:26:49 +0000 (14:26 +0200)]
imap: Unconditionally advertise SPECIAL-USE capability
Clients should be able to handle a LIST reply doesn't return any special-use
flags, even if the capability is returned.
The removal is mainly to avoid rather costly checks with the new
configuration code.
Timo Sirainen [Tue, 11 Mar 2025 10:31:18 +0000 (12:31 +0200)]
config: Add @mailbox_defaults = english
Timo Sirainen [Tue, 11 Mar 2025 10:34:45 +0000 (12:34 +0200)]
config: Rename stats-metrics-defaults.h to default-settings-import.h
Karl Fleischmann [Fri, 7 Mar 2025 09:05:21 +0000 (10:05 +0100)]
imap-hibernate: Send logout statistics when unhibernating
Karl Fleischmann [Fri, 7 Mar 2025 09:02:22 +0000 (10:02 +0100)]
lib-imap, imap: Load and restore logout statistics when creating a client
Karl Fleischmann [Thu, 6 Mar 2025 13:48:18 +0000 (14:48 +0100)]
lib-imap, imap: Move imap_logout_format statistics into separate struct
Karl Fleischmann [Thu, 6 Mar 2025 13:42:59 +0000 (14:42 +0100)]
imap: cmd_store() - Fix indentation
Timo Sirainen [Sat, 8 Mar 2025 07:16:05 +0000 (09:16 +0200)]
config: Change shared config fd to be read-only
Timo Sirainen [Mon, 10 Mar 2025 18:57:23 +0000 (20:57 +0200)]
lib-settings: Fix compiling in build directory
Broken by
404d78b0754f5983015a1b0b189e3f1acec84a37
Aki Tuomi [Tue, 11 Mar 2025 07:32:30 +0000 (09:32 +0200)]
auth: Remove old var expand syntax from test-lua
Aki Tuomi [Tue, 11 Mar 2025 07:23:20 +0000 (09:23 +0200)]
lib-auth: Move password scheme code back to lib-auth
Keep all code that require some dependency in libauth-crypt.
Removes sodium and crypt support from password schemes unless
explicitly enabled.
Aki Tuomi [Tue, 11 Mar 2025 07:25:03 +0000 (09:25 +0200)]
auth, doveadm: Use password_schemes_register_all() to get all schemes
again
Aki Tuomi [Tue, 11 Mar 2025 11:43:17 +0000 (13:43 +0200)]
lib-auth: Add password_schemes_register_all()
Aki Tuomi [Tue, 11 Mar 2025 11:29:15 +0000 (13:29 +0200)]
lib-auth: Move crypt_verify() password-scheme-crypt.c internal function
Aki Tuomi [Tue, 11 Mar 2025 11:31:57 +0000 (13:31 +0200)]
lib-auth: Add password_schemes_weak_allowed()
Needed by next commit
Timo Sirainen [Mon, 10 Mar 2025 17:04:02 +0000 (19:04 +0200)]
config: Add config_parsed_get_setting_change_counter()
Timo Sirainen [Mon, 10 Mar 2025 16:47:51 +0000 (18:47 +0200)]
doveconf: Fix boollist output when using -h parameter
Forgotten in
61e3708fb56a10e3020d6a4f155ad32167833488
Timo Sirainen [Mon, 10 Mar 2025 12:50:28 +0000 (14:50 +0200)]
config: Move hook_config_parser_end() later and add event and config_parsed parameters
Karl Fleischmann [Thu, 6 Mar 2025 09:18:42 +0000 (10:18 +0100)]
lib-sql: driver_cassandra_log_result - Differentiate warn_timeout message
Timo Sirainen [Mon, 3 Mar 2025 13:56:48 +0000 (15:56 +0200)]
config: doveconf - Output replacement boolean lists in a single line
Timo Sirainen [Thu, 6 Mar 2025 12:19:45 +0000 (14:19 +0200)]
config: Add CONFIG_KEY_ESCAPE_CHARS macro
Timo Sirainen [Mon, 3 Mar 2025 12:52:12 +0000 (14:52 +0200)]
global: Add plugin_dependency for settings coming from plugins
Timo Sirainen [Mon, 3 Mar 2025 12:30:46 +0000 (14:30 +0200)]
lib-settings, config: Add setting_parser_info.plugin_dependency
If set, the referred plugin must actually exist on filesystem before its
settings are used. This allows spltting core plugins to separate packages
so that the settings are hidden unless the packages are installed.
Timo Sirainen [Fri, 7 Mar 2025 09:22:14 +0000 (11:22 +0200)]
lib-auth: Don't link libauth.la to libauth-crypt.la
This causes duplicate linking, because libauth.la is already in
libdovecot.so.
Broken by
24d967dfe76818821050f2da531ae1404238cbdf
Timo Sirainen [Fri, 7 Mar 2025 11:14:49 +0000 (13:14 +0200)]
lib-http: Fix increasing memory usage in shared HTTP client context
Broken by
191da0e9f93362fbf1ba8af2461c7df984eb375b
Timo Sirainen [Fri, 7 Mar 2025 10:35:44 +0000 (12:35 +0200)]
m4/dovecot.m4: Fix accidentally renamed LIBDOVECOT_FTS_INCLUDE
Broken by
19316ac1ff80cb454f2d35614137292d9aa79e1e
Aki Tuomi [Sat, 1 Mar 2025 11:20:13 +0000 (13:20 +0200)]
lib-http: http-server-connnection - Make http_server_connection_close() NULL no-op
Aki Tuomi [Sat, 1 Mar 2025 11:20:27 +0000 (13:20 +0200)]
lib-http: http-client - Free settings with client pool
Stephan Bosch [Fri, 21 Aug 2020 19:28:47 +0000 (21:28 +0200)]
lib-http: http-server - Restructure http_server_shut_down() to use while statement
Original for statement was objectionable to static analyzer. New structure is
equivalent to similar code elsewhere in Dovecot.
Stephan Bosch [Wed, 22 Apr 2020 18:42:26 +0000 (20:42 +0200)]
lib-http: http-client-request - Fix NULL pointer dereference in http_client_request_continue_payload()
Problem found by Coverity.
Stephan Bosch [Fri, 21 May 2021 11:16:54 +0000 (13:16 +0200)]
lib-http: test-http-payload - Switch ioloop implicitly using callback
Stephan Bosch [Fri, 21 May 2021 11:00:15 +0000 (13:00 +0200)]
lib-http: http-client-request - Allow calling http_client_request_error() on aborted request
Stephan Bosch [Thu, 20 May 2021 01:04:35 +0000 (03:04 +0200)]
lib-http: http-client-request - Fix pipeline corruption occurring after 100 Continue response
Only unlock connection output when no more requests are pending. Before, the
next request header could be sent while outgoing payload for current request was
still pending.
Stephan Bosch [Thu, 20 May 2021 22:15:26 +0000 (00:15 +0200)]
lib-http: http-client-connection - Move response pre-checks to http-client-request.c
Stephan Bosch [Thu, 20 May 2021 21:54:24 +0000 (23:54 +0200)]
lib-http: http-client-connection - Move handling of 100 response to http-client-request