]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Mon, 4 Aug 2025 09:58:25 +0000 (12:58 +0300)]
config: Allow config_write_keyvariable() to fail at expansion time without panic
Needed by the next commit.
Timo Sirainen [Mon, 4 Aug 2025 10:03:02 +0000 (13:03 +0300)]
config: Prepare for config_get_value() to return different errors
Timo Sirainen [Thu, 31 Jul 2025 12:21:24 +0000 (15:21 +0300)]
config: Remove special service_* -> $SET:default_* handling
This now works by setting them with regular setting_keyvalues.
Timo Sirainen [Thu, 31 Jul 2025 12:47:53 +0000 (15:47 +0300)]
config: Assume config parser end hook wants to change default settings
This is what Pigeonhole wants at least. This was already happening a bit
accidentally. Make thie explicit, because the next commit removes the
accidental method.
Timo Sirainen [Tue, 29 Jul 2025 12:00:03 +0000 (15:00 +0300)]
config: Delay expanding $SET variables until the whole config is parsed
This most importantly fixes using $SET in built-in group settings which
prevents changing the setting in the config file before it is already
expanded.
Timo Sirainen [Tue, 29 Jul 2025 10:00:37 +0000 (13:00 +0300)]
config: Prepare for storing unexpanded $SET variables into setting values
Timo Sirainen [Tue, 29 Jul 2025 09:34:48 +0000 (12:34 +0300)]
config: Add and use set_str_expanded() to simplify the following changes
Timo Sirainen [Tue, 29 Jul 2025 09:06:55 +0000 (12:06 +0300)]
config: Prepare for expanding $SET variables later
Timo Sirainen [Thu, 31 Jul 2025 10:14:32 +0000 (13:14 +0300)]
config: Fix $SET expansion handling between default/non-default settings
This becomes more important after following changes, which otherwise would
cause e.g. built-in $SET:default_idle_kill_interval to not use
default_idle_kill_interval from dovecot.conf.
Timo Sirainen [Tue, 29 Jul 2025 11:47:55 +0000 (14:47 +0300)]
config: config_write_keyvariable() - Add filter_parser parameter
Timo Sirainen [Thu, 31 Jul 2025 11:57:32 +0000 (14:57 +0300)]
config: Refactor config_get_value()
Timo Sirainen [Thu, 31 Jul 2025 11:51:41 +0000 (14:51 +0300)]
config: Move config_filters_find_child()
Timo Sirainen [Tue, 29 Jul 2025 11:31:53 +0000 (14:31 +0300)]
config: Move config_get_value()
Timo Sirainen [Tue, 29 Jul 2025 11:31:04 +0000 (14:31 +0300)]
config: config_get_value() - Add filter_parser parameter
Timo Sirainen [Tue, 29 Jul 2025 09:41:17 +0000 (12:41 +0300)]
config: Split config_module_parser.array to list and filter_array
The list is used for SET_STRLIST and SET_BOOLLIST, while filter_array is
used for SET_FILTER_ARRAY.
Timo Sirainen [Tue, 29 Jul 2025 08:55:27 +0000 (11:55 +0300)]
config: Rename config_apply_line() to config_apply_key_value()
Timo Sirainen [Tue, 29 Jul 2025 09:59:37 +0000 (12:59 +0300)]
lib-settings, global: Add prefix parameter to settings_parse_read_file()
Timo Sirainen [Tue, 29 Jul 2025 12:36:00 +0000 (15:36 +0300)]
doveconf: Fix crash when asking for specific settings but config is unusable
Aki Tuomi [Fri, 25 Jul 2025 09:00:57 +0000 (12:00 +0300)]
auth: auth-cache - Drop auth_cache_parse_key()
It's only used by tests and can now just call
auth_cache_parse_key_and_fields().
Aki Tuomi [Fri, 25 Jul 2025 08:41:03 +0000 (11:41 +0300)]
auth: auth-cache - Require cache key to contain at least one variable
Aki Tuomi [Fri, 25 Jul 2025 08:52:36 +0000 (11:52 +0300)]
auth: auth-cache - Treat cache key parsing errors as fatals
Avoids accidentically turning off caching
Aki Tuomi [Fri, 25 Jul 2025 08:51:16 +0000 (11:51 +0300)]
auth: auth-cache - Change auth_cache_parse_key_exclude() to return error
Simplifies following commit
Aki Tuomi [Fri, 25 Jul 2025 08:48:43 +0000 (11:48 +0300)]
auth: auth-cache - Deduplicate auth_cache_parse_key() to use auth_cache_parse_key_and_fields()
Simplifies following commit
Aki Tuomi [Wed, 30 Jul 2025 06:42:20 +0000 (09:42 +0300)]
auth: auth-cache - Refactor auth_cache_parse_key_and_fields()
Call auth_cache_parse_key_exclude() at the function end,
simplifies next commit.
Aki Tuomi [Fri, 25 Jul 2025 05:16:52 +0000 (08:16 +0300)]
auth: Use AUTH_CACHE_KEY_USER instead of per-database constants
Fixes cache key issue where users would end up overwriting
each other in cache due to cache key being essentially static
string because we no longer support %u.
Forgotten in
2e298e7ee98b6df61cf85117f000290d60a473b8
Stephan Bosch [Tue, 1 Apr 2025 02:43:33 +0000 (04:43 +0200)]
lib-language: Substitute libicu lowercase mapping implementation with our own
Stephan Bosch [Tue, 1 Apr 2025 02:23:15 +0000 (04:23 +0200)]
lib: unicode-transform - Implement case mapping
Stephan Bosch [Tue, 1 Apr 2025 01:07:30 +0000 (03:07 +0200)]
lib: unicode-data - Add case folding mappings
Stephan Bosch [Mon, 31 Mar 2025 21:23:01 +0000 (23:23 +0200)]
lib: unicode-data - Add special case mappings for upper and lower case
Stephan Bosch [Fri, 21 Mar 2025 18:40:01 +0000 (19:40 +0100)]
lib-language: Drop old word break and word boundary lookup implementation
Stephan Bosch [Fri, 21 Mar 2025 18:34:44 +0000 (19:34 +0100)]
lib-language: lang-tokenizer-generic - Use the new Unicode character database
Stephan Bosch [Fri, 21 Mar 2025 17:18:07 +0000 (18:18 +0100)]
lib: unicode-data - Add relevant word break and boundary bits
Stephan Bosch [Mon, 7 Apr 2025 22:17:09 +0000 (00:17 +0200)]
lib: unicode-transform - Add Unicode conformance test for NF* normalizations as unit test
Stephan Bosch [Wed, 27 Nov 2024 00:36:43 +0000 (01:36 +0100)]
lib: unicode-transform - Implement streaming Unicode Normalization
All standard forms are supported: NFD, NFKD, NFC, NFKC.
Stephan Bosch [Sun, 30 Mar 2025 01:02:58 +0000 (03:02 +0200)]
lib: unicode-transform - Add generic Unicode string transformation API
Stephan Bosch [Tue, 22 Apr 2025 00:04:43 +0000 (02:04 +0200)]
lib: unicode-data - Add fields needed for Unicode normalization
Stephan Bosch [Fri, 21 Mar 2025 05:19:57 +0000 (06:19 +0100)]
lib: unicode-transform - Make Hangul base and count definitions global
Stephan Bosch [Fri, 21 Mar 2025 04:59:48 +0000 (05:59 +0100)]
lib: unicode-transform - Implement RFC5051 API in UTF32 and use it
Stephan Bosch [Fri, 21 Mar 2025 05:09:21 +0000 (06:09 +0100)]
lib: unicode-transform - Rename chr variables/parameters to cp
These are code points and not characters per se.
Stephan Bosch [Fri, 21 Mar 2025 05:04:19 +0000 (06:04 +0100)]
lib: unicode-transform - Rename uni_ucs4_decompose_hangul() to unicode_hangul_decompose()
Stephan Bosch [Fri, 21 Mar 2025 05:02:49 +0000 (06:02 +0100)]
lib: unicode-transform - Avoid unichar_t in unicode modules
Stephan Bosch [Fri, 21 Mar 2025 04:48:48 +0000 (05:48 +0100)]
lib: unichar - Move uni_ucs4_decompose_one_utf8() to unicode-transform.c
Stephan Bosch [Fri, 21 Mar 2025 04:45:07 +0000 (05:45 +0100)]
lib: unichar - Move Hangul syllable handling to unicode-transform.c
Stephan Bosch [Fri, 21 Mar 2025 15:07:14 +0000 (16:07 +0100)]
lib: Drop the old Unicode Character Database implementation
Stephan Bosch [Fri, 21 Mar 2025 15:06:05 +0000 (16:06 +0100)]
lib: unichar - Implement uni_utf8_to_decomposed_titlecase() using the new Unicode character database
Stephan Bosch [Fri, 21 Mar 2025 04:06:20 +0000 (05:06 +0100)]
lib: unichar - Implement uni_ucs4_to_titlecase() using the new Unicode character database
Stephan Bosch [Fri, 21 Mar 2025 03:49:57 +0000 (04:49 +0100)]
lib: unichar - Split off uni_ucs4_decompose_hangul()
Stephan Bosch [Fri, 21 Mar 2025 03:47:24 +0000 (04:47 +0100)]
lib: unichar - Update hangul syllable decomposition to the latest standard
Stephan Bosch [Fri, 21 Mar 2025 04:14:26 +0000 (05:14 +0100)]
lib: test-unichar - Move collation test to separate function
Stephan Bosch [Tue, 22 Apr 2025 00:55:05 +0000 (02:55 +0200)]
lib: unicode-data - Add data for first and full code point decomposition
Stephan Bosch [Fri, 21 Mar 2025 03:26:50 +0000 (04:26 +0100)]
lib: Start new Unicode Character Database implementation
It uses a pre-compiled trie structure and will in later commits feature full
support for the data necessary for Unicode normalization. Stuff needed for
lib-language can be migrated here as well.
Stephan Bosch [Mon, 17 Mar 2025 02:55:38 +0000 (03:55 +0100)]
lib: Move Unicode Character Database (UCD) files to ./ucd
Stephan Bosch [Fri, 25 Jul 2025 01:31:44 +0000 (03:31 +0200)]
lib-test: Add test_assert_memcmp*()
Stephan Bosch [Sat, 26 Jul 2025 00:25:22 +0000 (02:25 +0200)]
lib-test: test-common - Drop spurious spaces in function prototype
Karl Fleischmann [Tue, 1 Jul 2025 13:00:57 +0000 (15:00 +0200)]
lib-storage: mail_storage_settings_ext_check() - Add warning for deprecated mailbox_directory_name_legacy setting
Karl Fleischmann [Tue, 1 Jul 2025 12:43:35 +0000 (14:43 +0200)]
lib-storage: mail-storage-settings - Disable mailbox_directory_name_legacy by default
Timo Sirainen [Tue, 29 Jul 2025 17:10:03 +0000 (20:10 +0300)]
config: Setting changes may have updated the included group's settings
If group include was done before other settings, any further updates
changed the group's settings. For example:
group @test foo {
default_internal_user = A
}
service imap {
@test = foo
default_internal_user = B
}
service pop3 {
@test = foo
}
This caused service pop3 to also have default_internal_user=B.
Aki Tuomi [Tue, 29 Jul 2025 11:19:57 +0000 (14:19 +0300)]
master: Check that no other fd than DOVECOT_CONFIG_FD leaks
This fd is needed for configuration reading.
Aki Tuomi [Tue, 29 Jul 2025 11:19:41 +0000 (14:19 +0300)]
lib-master: Ensure cache fd is closed on exec
Prevents it from leaking by accident.
Aki Tuomi [Tue, 29 Jul 2025 06:35:51 +0000 (09:35 +0300)]
lib-storage: fs - Initialize roots in iteration always
Fixes segmentation fault when running force-resync with missing folder.
Marco Bettini [Fri, 27 Jun 2025 14:07:29 +0000 (14:07 +0000)]
lib-storage: Remove diversions to mailbox_list_subscriptions_iter_*()
Marco Bettini [Mon, 21 Jul 2025 12:24:30 +0000 (12:24 +0000)]
lib-storage: drivers - Remove *_list_iter_next() driver specific code
Marco Bettini [Tue, 8 Jul 2025 09:25:42 +0000 (09:25 +0000)]
lib-storage: mailbox_list_iter_next_call() - Handle subscriptions
directly here
Marco Bettini [Tue, 15 Jul 2025 08:09:09 +0000 (08:09 +0000)]
lib-storage: Make mailbox_tree_deinit() and mailbox_tree_iterate_deinit() no-ops on NULLs
Marco Bettini [Fri, 25 Jul 2025 12:52:56 +0000 (12:52 +0000)]
fts: fts_parser_script_try_init() - Initialize filename
Found by clang scan-build static analysis.
Marco Bettini [Thu, 24 Jul 2025 10:18:13 +0000 (10:18 +0000)]
lib-imap: test_imap_write_capabilities() - Add missing NULL to terminate the array
Fred Morcos [Fri, 18 Jul 2025 08:38:38 +0000 (10:38 +0200)]
fts: Work harder to find attachment filename
Timo Sirainen [Fri, 18 Jul 2025 11:14:34 +0000 (14:14 +0300)]
login-common: Handle different dsasl_client_results failures better
Timo Sirainen [Fri, 18 Jul 2025 11:13:23 +0000 (14:13 +0300)]
*-login: Deduplicate shared SASL step handling code to login_proxy_sasl_step()
Timo Sirainen [Fri, 18 Jul 2025 11:28:47 +0000 (14:28 +0300)]
*-login: Add LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED
Timo Sirainen [Fri, 18 Jul 2025 11:26:21 +0000 (14:26 +0300)]
*-commin: Rename LOGIN_PROXY_FAILURE_TYPE_AUTH to LOGIN_PROXY_FAILURE_TYPE_AUTH_REPLIED
Timo Sirainen [Fri, 18 Jul 2025 11:02:36 +0000 (14:02 +0300)]
lib-sasl: Add more results to enum dsasl_client_result
Timo Sirainen [Fri, 18 Jul 2025 10:55:43 +0000 (13:55 +0300)]
lib-sasl, global: Change dsasl_client_input/output() to return enum
Timo Sirainen [Fri, 18 Jul 2025 11:55:25 +0000 (14:55 +0300)]
imap-urlauth: Remove dead assignment
Timo Sirainen [Wed, 16 Jul 2025 06:50:56 +0000 (09:50 +0300)]
lib-var-expand-crypt: Fix linking issues
This fixes at least OSX linking issues.
Timo Sirainen [Mon, 7 Jul 2025 08:17:42 +0000 (11:17 +0300)]
doveadm: Fix boolean-parameter:false handling in doveadm HTTP API
doveadm_cmd_param_flag() returned TRUE if the parameter was set, regardless
of whether its value was set to true or false.
Timo Sirainen [Wed, 2 Jul 2025 11:01:38 +0000 (14:01 +0300)]
lib-http: Fix memory leak when accessing HTTP server via UNIX socket
Timo Sirainen [Wed, 2 Jul 2025 10:50:06 +0000 (13:50 +0300)]
login-common: Change login_socket_path setting to be hidden
Now that director is gone, there's no need to change it anymore in the
config.
Timo Sirainen [Wed, 2 Jul 2025 10:49:00 +0000 (13:49 +0300)]
lib-storage, doveadm: Change auth_socket_path setting to be hidden
Now that director is gone, there's no need to change it anymore in the
config.
Timo Sirainen [Tue, 1 Jul 2025 11:06:30 +0000 (14:06 +0300)]
global: Replace mail service binaries' -a parameter with auth_master_socket_path setting
Markus Valentin [Thu, 26 Jun 2025 08:42:39 +0000 (10:42 +0200)]
lib-lua: Add dlua_var_expand() allow var_expand() from lua
Timo Sirainen [Wed, 18 Jun 2025 07:29:55 +0000 (10:29 +0300)]
lib-dict-extra: dict-client - Fix crash if server sends invalid iteration reply
Timo Sirainen [Mon, 9 Jun 2025 08:41:36 +0000 (11:41 +0300)]
lib-dict-extra: Install dict-client.h
Timo Sirainen [Mon, 9 Jun 2025 08:20:42 +0000 (11:20 +0300)]
lib-dict: Remove unused enum dict_data_type
Timo Sirainen [Mon, 9 Jun 2025 08:20:13 +0000 (11:20 +0300)]
dict: Remove unnecessary parsing of value_type parameter in handshake
It's not actually used for anything
Timo Sirainen [Tue, 15 Jul 2025 09:32:23 +0000 (12:32 +0300)]
lib: Fix crash when config is reloaded and logging to syslog
openlog() was called with a string pointing to settings. When settings were
reloaded, the pointer became invalid, causing syslog() to crash.
Marco Bettini [Mon, 14 Jul 2025 10:04:07 +0000 (10:04 +0000)]
imapc: imapc_list_subscriptions_refresh() - Use LIST (SUBSCRIBED) when available rather than LSUB
Marco Bettini [Mon, 14 Jul 2025 10:02:53 +0000 (10:02 +0000)]
imapc: imapc_untagged_list() - Handle the \Subscribed flag
These are especially needed in the following change that uses LIST (SUBSCRIBED)
Marco Bettini [Mon, 14 Jul 2025 10:01:05 +0000 (10:01 +0000)]
imapc: imapc_untagged_lsub() - Extract tree variable
Marco Bettini [Mon, 14 Jul 2025 09:19:32 +0000 (09:19 +0000)]
imapc: imapc_list_update_tree() - Always get a node
These are especially needed in the following change that uses LIST (SUBSCRIBED),
as \Subscribed, but non-existent, mailboxes must still be returned.
Marco Bettini [Tue, 3 Jun 2025 12:22:54 +0000 (12:22 +0000)]
lib-imap-client: Add imapc_cmd_has_imap4rev2()
Timo Sirainen [Wed, 4 Jun 2025 14:05:36 +0000 (17:05 +0300)]
imap: Add imap_compress_on_proxy hidden setting
Keep it disabled by default for now. Once we're sure COMPRESS on proxy
works properly we'll enable it again.
Timo Sirainen [Tue, 3 Jun 2025 15:11:09 +0000 (18:11 +0300)]
lib-compression: Fix potential hangs writing to non-blocking ostreams
This especially fixes hangs with IMAP COMPRESS handling in proxies.
Timo Sirainen [Wed, 4 Jun 2025 06:56:26 +0000 (09:56 +0300)]
lib, lib-ssl-iostream: Split off o_stream_init_buffering_flush()
Timo Sirainen [Wed, 4 Jun 2025 10:15:57 +0000 (13:15 +0300)]
lib: Fix potential hangs when filter istream read doesn't read from its parent
More specifically, this fixes at least a hang where:
* SSL istream reads some data into buffer
* SSL iostream places input into internal BIO buffer, which doesn't yet
get copied to the SSL istream's buffer
* zlib_istream gets more data from parent SSL istream. Since there is already
some data buffered, it doesn't call the parent read(). At the end it checks
that parent SSL istream has 0 bytes in its buffer, so it doesn't se the
IO pending.
The problem is that SSL istream would buffer if its read() had been called.
Since there is no more IO pending, it causes a hang.
Alternative rejected ideas I thought of:
* Add some new i_stream_has_maybe_more_data() method that all istreams
need to implement and filter istreams need to call and use it to set IO
pending.
* Change SSL iostream to immediately place input into SSL istream.
However, this makes the following i_stream_read() behavior confusing,
since it won't return the newly added data, and might even return -2
as buffer full, which the caller might not handle properly. Or if
i_stream_read() did return the newly added data, it would be wrong for
i_stream_get_data*() to return the newly added data before, effectively
making the whole change pointless.
Timo Sirainen [Tue, 3 Jun 2025 12:36:00 +0000 (15:36 +0300)]
login-common: Write client rawlogs in plaintext
Timo Sirainen [Tue, 3 Jun 2025 12:35:01 +0000 (15:35 +0300)]
imap, imap-login: Fix libcompress dependency tracking
Timo Sirainen [Tue, 3 Jun 2025 09:23:17 +0000 (12:23 +0300)]
login-common: Change proxy_no_multiplex to bit field
Timo Sirainen [Wed, 4 Jun 2025 08:30:36 +0000 (11:30 +0300)]
lib-ssl-iostream: Remove unused OPENSSL_IOSTREAM_SYNC_TYPE_FIRST_READ
Timo Sirainen [Tue, 3 Jun 2025 15:13:56 +0000 (18:13 +0300)]
lib-ssl-iostream: Remove dead code
o_stream_ssl_buffer() was always called with bytes_sent=0 parameter.