]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Tue, 4 Mar 2025 14:10:14 +0000 (16:10 +0200)]
lib: Add event_filter_register_cmp()
Timo Sirainen [Tue, 4 Mar 2025 14:27:32 +0000 (16:27 +0200)]
global: Remove duplicate listing of linked libraries
Timo Sirainen [Sun, 2 Mar 2025 12:28:40 +0000 (14:28 +0200)]
master: Don't fail doveconf output if service settings contain %variables
Timo Sirainen [Sun, 2 Mar 2025 12:28:07 +0000 (14:28 +0200)]
lib-settings, config: Add SETTINGS_EVENT_NO_EXPAND for ext_check_func() callbacks
Timo Sirainen [Sun, 2 Mar 2025 09:39:08 +0000 (11:39 +0200)]
doveconf: Write how many default setting changes there have been since configured dovecot_config_version
Timo Sirainen [Sun, 2 Mar 2025 10:13:17 +0000 (12:13 +0200)]
config: Support tracking setting changes for named filter paths
Timo Sirainen [Sun, 2 Mar 2025 08:45:19 +0000 (10:45 +0200)]
config: Support dovecot_config_version to rename settings or change default settings
Timo Sirainen [Sun, 2 Mar 2025 08:48:12 +0000 (10:48 +0200)]
config: Remove most of the old-set-parser code
Timo Sirainen [Sun, 2 Mar 2025 08:43:58 +0000 (10:43 +0200)]
config: Pass dovecot_config_version to config_export_init()
Simplifies the next commit.
Timo Sirainen [Mon, 3 Mar 2025 07:47:25 +0000 (09:47 +0200)]
config: If first line isn't dovecot_config_version, don't try to parse it
After following changes it can crash.
Aki Tuomi [Wed, 5 Mar 2025 09:17:57 +0000 (11:17 +0200)]
auth: db-ldap - Free dn from ldap_get_dn()
Broken in
c2ccdab8d09dec65753ee42366f48d53d7f47cfd
Aki Tuomi [Tue, 4 Mar 2025 09:41:24 +0000 (11:41 +0200)]
lib-dcrypt: Install dcrypt_openssl.so into dovecot modules directory
Aki Tuomi [Tue, 4 Mar 2025 17:56:34 +0000 (19:56 +0200)]
lib-dcrypt: Remove OSSL_EXCHANGE_PARAM_PAD from ECDH
This is only supported for DH/DHX
Marco Bettini [Tue, 18 Feb 2025 11:39:06 +0000 (11:39 +0000)]
fts-flatcurve: fts_flatcurve_mail_user_deinit() - Defer deallocation of fuser->set
This is required to prevent premature deallocation that can cause
fts_flatcurve_xapian_need_optimize() to crash inside fts_mailbox_list_deinit() in mail_user_unref()
Josh Soref [Fri, 14 Feb 2025 02:16:07 +0000 (21:16 -0500)]
global: Fix code comment spelling
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Aki Tuomi [Mon, 17 Feb 2025 16:09:58 +0000 (18:09 +0200)]
lib-sasl: Support ANONYMOUS mechanism
Aki Tuomi [Wed, 19 Feb 2025 09:23:17 +0000 (11:23 +0200)]
lib-storage: imapc - Check sasl mechanism
Aki Tuomi [Fri, 21 Feb 2025 08:47:28 +0000 (10:47 +0200)]
lib-sasl: Add dsasl_client_mech_uses_password()
This indicates whether mechanism uses password at all.
Aki Tuomi [Fri, 21 Feb 2025 08:41:47 +0000 (10:41 +0200)]
lib-sasl: Use BIT() for flags
Aki Tuomi [Mon, 17 Feb 2025 16:10:09 +0000 (18:10 +0200)]
lib-imap-client: Send only CR LF if SASL output is empty
Stephan Bosch [Tue, 13 Nov 2018 21:25:07 +0000 (22:25 +0100)]
imap: Implement support for the REPLACE capability
Stephan Bosch [Tue, 13 Nov 2018 21:23:04 +0000 (22:23 +0100)]
quota: Make new implementation for quota handling for both moving and replacing mails
Use the new expunged mail field recorded in the mailbox save context.
Stephan Bosch [Tue, 13 Nov 2018 21:24:10 +0000 (22:24 +0100)]
lib-storage: Add support for replacing mail using mailbox_save_begin_replace()
The indicated expunged mail is expunged once saving the new mail finishes
successfully. The expunged mail is available in the mailbox save context for
plugins (like quota) that need to be able to obtain information about the mail
being replaced. The source mail for mailbox_move() is also recorded in the
context as such. This way, quota handling can be implemented identically for
moving and replacing a message.
Stephan Bosch [Tue, 13 Nov 2018 21:50:46 +0000 (22:50 +0100)]
quota: Make quota_try_alloc() suitable for moving/replacing messages
Stephan Bosch [Tue, 13 Nov 2018 21:50:11 +0000 (22:50 +0100)]
quota: Make quota_test_alloc() suitable for moving/replacing messages
Stephan Bosch [Thu, 13 Feb 2025 01:25:18 +0000 (02:25 +0100)]
quota: Make quota_alloc_with_size() directly suitable for moving/replacing messages
Stephan Bosch [Tue, 13 Nov 2018 21:03:46 +0000 (22:03 +0100)]
quota: Make quota_root_is_over() suitable for calculations involving moving/replacing messages
Stephan Bosch [Fri, 16 Nov 2018 11:09:05 +0000 (12:09 +0100)]
trash: Properly handle situation in which quota roots have different sets of visible trash mailboxes
Stephan Bosch [Fri, 14 Feb 2025 00:25:52 +0000 (01:25 +0100)]
trash: trash-plugin - Create sub-event for cleanup attempt
Stephan Bosch [Fri, 16 Nov 2018 15:26:22 +0000 (16:26 +0100)]
trash: Do not modify *_ceil and *_over fields in struct quota_transaction_context
These are not supposed to be modified. Instead, increase the *_expunged fields.
Stephan Bosch [Fri, 16 Nov 2018 11:08:47 +0000 (12:08 +0100)]
quota: Add support for recording quota resource usage reduction from sub-transactions
Such transactions apply their own quota modifications, so modifying the usage
fields for the present transaction would cause such modifications to be
counted several times. However, their effect must be applied in the quota limit
calculations, so the amount of resources expunged in sub-transactions is
recorded in separate fields.
Stephan Bosch [Thu, 13 Feb 2025 01:19:36 +0000 (02:19 +0100)]
quota: quota-util - Add quota_used_apply_expunged()
Stephan Bosch [Tue, 13 Nov 2018 20:31:11 +0000 (21:31 +0100)]
quota: Create facilities for determining which quota root limit is exceeded
Stephan Bosch [Thu, 13 Feb 2025 01:09:52 +0000 (02:09 +0100)]
quota: quota - Use normal for-loop in quota_transaction_begin()
Stephan Bosch [Fri, 16 Nov 2018 14:27:22 +0000 (15:27 +0100)]
trash: Perform expunge in a separate function
Also, improve the integer calculations for updating the total amount of expunged
resource usage.
Stephan Bosch [Fri, 16 Nov 2018 14:18:20 +0000 (15:18 +0100)]
trash: Perform check for achievement of quota usage reduction target in a separate function
Stephan Bosch [Fri, 16 Nov 2018 14:14:43 +0000 (15:14 +0100)]
trash: Record resource expunge status and target in struct trash_clean
Also make the value types uint64_t consistently, which matches the quota plugin API.
Stephan Bosch [Wed, 19 Feb 2025 02:31:48 +0000 (03:31 +0100)]
trash: Substitute (uint64_t)-1 with UINT64_MAX
Stephan Bosch [Fri, 16 Nov 2018 13:49:20 +0000 (14:49 +0100)]
trash: Limit scope of local variables to where they are used in trash_clean_execute()
Stephan Bosch [Fri, 16 Nov 2018 13:23:42 +0000 (14:23 +0100)]
trash: Restructure trash_try_clean_mails()
- Avoid storing temporary state in the global trash mailboxes list. Instead,
allocate local state on the data stack.
- Avoid using goto by wrapping the core of the function in another function that
guarantees cleanup.
Stephan Bosch [Tue, 9 Nov 2021 22:56:55 +0000 (23:56 +0100)]
quota: quota-util - Simplify quota_is_over()
Stephan Bosch [Tue, 9 Nov 2021 22:33:42 +0000 (23:33 +0100)]
quota: quota-util - Assert that either ceil or over parameter equals 0 in quota_is_over()
Stephan Bosch [Tue, 9 Nov 2021 22:19:23 +0000 (23:19 +0100)]
quota: quota-util - Rework comments in quota_is_over()
Stephan Bosch [Tue, 9 Nov 2021 23:01:01 +0000 (00:01 +0100)]
quota: quota-util - Fix bug in quota_is_over()
The case were the storage is under quota even before deleting the messages and
the new allocation exceeds the quota limit was tested with reverse logic. The
original test first checks that the allocation is larger than the deletion
(which is ok) and subsequently checks that the excess is *smaller* than the
ceiling, yielding an over-quota result, which made no sense.
Stephan Bosch [Fri, 16 Nov 2018 12:51:22 +0000 (13:51 +0100)]
quota: Make quota_root_is_visible() available for plugins
Stephan Bosch [Tue, 13 Nov 2018 19:56:51 +0000 (20:56 +0100)]
quota: Move quota limit calculations from quota_transaction_is_over() to a separate function
This makes the implementation for count and bytes quota fully identical. Makes
the algorithm avaiable for other functions.
Stephan Bosch [Tue, 13 Nov 2018 18:46:45 +0000 (19:46 +0100)]
quota: Move quota_get_mail_size() to quota-util.c
Makes it available for broader internal use.
Stephan Bosch [Fri, 17 Jan 2025 01:42:47 +0000 (02:42 +0100)]
quota: Link tests to lib-storage
Aki Tuomi [Mon, 24 Feb 2025 07:15:35 +0000 (09:15 +0200)]
lib-auth: Move things needed by auth and doveadm to libauth-crypt.la
Avoids linking everything with libsodium and libcrypt
Stephan Bosch [Wed, 10 Nov 2021 22:11:25 +0000 (23:11 +0100)]
imap-acl: Add support for the IMAP LIST-MYRIGHTS capability
Stephan Bosch [Sun, 16 Sep 2018 12:21:19 +0000 (14:21 +0200)]
imap-acl: Move sending MYRIGHTS response to a separate function
Stephan Bosch [Sun, 16 Sep 2018 10:55:24 +0000 (12:55 +0200)]
imap: cmd-list - Add infrastructure for dynamically adding support for new RETURN flags
This is needed for the new IMAP LIST-MYRIGHTS capability (RFC 8440).
Stephan Bosch [Mon, 17 Feb 2025 17:27:44 +0000 (18:27 +0100)]
imap: cmd-list - Exit loop in cmd_list_continue() early upon connection failure
Stephan Bosch [Thu, 20 Feb 2025 02:44:20 +0000 (03:44 +0100)]
imap: cmd-list - Make the list iter flags a parameter for list_send_status()
Before, it was available only in the LIST command context. This is preparation
for adding infrastructure for dynamically adding support for new RETURN flags.
Stephan Bosch [Tue, 18 Sep 2018 19:19:44 +0000 (21:19 +0200)]
imap: cmd-list - Make the namespace a parameter for list_send_status()
Before, it was determined internally. This is preparation for adding
infrastructure for dynamically adding support for new RETURN flags.
Stephan Bosch [Sun, 16 Sep 2018 10:48:11 +0000 (12:48 +0200)]
imap: cmd-list - Collect parameters for list_send_status() in a struct
This is preparation for adding infrastructure for dynamically adding support for new RETURN flags.
Stephan Bosch [Thu, 20 Feb 2025 21:38:40 +0000 (22:38 +0100)]
imap: cmd-list - Add assert to list_send_status()
While listing subscriptions, but only child is subscribed, the appropriate
mailbox info flag must be also set.
Stephan Bosch [Wed, 10 Nov 2021 21:56:46 +0000 (22:56 +0100)]
imap-acl: Reformat imap-acl-plugin.c
Aki Tuomi [Tue, 18 Feb 2025 13:21:08 +0000 (15:21 +0200)]
m4: Update pkg.m4
Aki Tuomi [Tue, 18 Feb 2025 13:00:04 +0000 (15:00 +0200)]
lib-dcrypt: Fix ostream-encrypt error handling
Stream errno was not always set
Timo Sirainen [Mon, 24 Feb 2025 08:32:09 +0000 (10:32 +0200)]
config: Avoid duplicating version numbers when listing supported config versions
Timo Sirainen [Mon, 17 Feb 2025 10:39:11 +0000 (12:39 +0200)]
auth: Allow configuring passdb/userdb sql to use auth-workers
If passdb/userdb_use_worker=yes, this overrides the sql-driver specific
worker decision.
Timo Sirainen [Mon, 17 Feb 2025 10:22:25 +0000 (12:22 +0200)]
lib-storage: Clear storage errors if iteration failed due to no mailbox attribute dict
This doesn't normally matter, but if there are error handling bugs elsewhere
this error might wrongly show up in logs and cause confusion. It's better to
log "Unknown error" in that case.
Aki Tuomi [Thu, 20 Feb 2025 19:43:33 +0000 (21:43 +0200)]
lib-var-expand: Add backwards compability for older bison
Bison 3.5.1 does not add error symbol or handling, add them ourselves.
Timo Sirainen [Thu, 20 Feb 2025 08:02:39 +0000 (10:02 +0200)]
auth: lua - Remove dead code
Marco Bettini [Fri, 14 Feb 2025 09:16:56 +0000 (09:16 +0000)]
fts-flatcurve: Switch from <stdio.h> to <cstdio>
Michael M Slusarz [Wed, 13 Mar 2024 00:20:24 +0000 (18:20 -0600)]
fts-flatcurve: Fix potential crash when searching virtual mailboxes
Fixes:
Panic: file fts-search.c: line 87 (level_scores_add_vuids):
assertion failed: (array_count(&vuids_arr) == array_count(&br->scores))
Michael M Slusarz [Thu, 29 Feb 2024 05:14:53 +0000 (22:14 -0700)]
fts-flatcurve: Support lock files in VOLATILEDIR
Marco Bettini [Fri, 24 Jan 2025 16:06:17 +0000 (16:06 +0000)]
fts-flatcurve: Fix maybe queries
Marco Bettini [Fri, 24 Jan 2025 15:31:36 +0000 (15:31 +0000)]
fts-flatcurve: Ignore non-selectable mailboxes when doing optimize/rescan
Marco Bettini [Fri, 24 Jan 2025 15:23:39 +0000 (15:23 +0000)]
fts-flatcurve: Ignore alias mailboxes when doing optimize/rescan
Marco Bettini [Thu, 13 Feb 2025 09:13:34 +0000 (09:13 +0000)]
fts: xml2text - Move lib_init()/deinit() to surround event_create() and unref()
Otherwise we crash at 23: .event = event_create(NULL)
Timo Sirainen [Thu, 20 Feb 2025 07:36:44 +0000 (09:36 +0200)]
config: Add explicit support for 3.1.0 version
Config version 3.0.x is no longer supported.
Aki Tuomi [Wed, 19 Feb 2025 08:16:53 +0000 (10:16 +0200)]
lib-var-expand: Use moduledir instead of pkglibdir for crypt
This is where the module is installed.
Josh Soref [Tue, 18 Feb 2025 00:39:11 +0000 (19:39 -0500)]
lib-dict: Add DISTCLEANFILES for dict-drivers-register.c
Josh Soref [Tue, 18 Feb 2025 00:15:05 +0000 (19:15 -0500)]
Makefile: Exclude conf files from dist uninstall check
Timo Sirainen [Fri, 14 Feb 2025 08:41:01 +0000 (10:41 +0200)]
auth: lua - Passdb/userdb lookups can no longer return a single string on success
The second return value must be either a table or nil. Returning a single
string was a bit unsafe since its values could accidentally become expanded
to spaces, causing unsafe behavior.
If the first return value indicates an error, the second can still be a
string.
Timo Sirainen [Fri, 14 Feb 2025 08:12:04 +0000 (10:12 +0200)]
auth: Remove unused passdb/userdb-template.[ch]
Timo Sirainen [Fri, 14 Feb 2025 08:09:56 +0000 (10:09 +0200)]
auth: lua - Remove auth_request#response_from_template()
This is a bit unsafe since it can't handle e.g. spaces in values.
It's also relying on otherwise obsolete template code.
Timo Sirainen [Fri, 14 Feb 2025 08:10:57 +0000 (10:10 +0200)]
auth: Move STATIC_PASS_SCHEME to passdb.h
Timo Sirainen [Fri, 14 Feb 2025 12:27:28 +0000 (14:27 +0200)]
auth: Expand debug message about auth failure delay handling
Timo Sirainen [Fri, 14 Feb 2025 11:43:46 +0000 (13:43 +0200)]
auth: Avoid auth failure delays entirely with auth_failure_delay=0
Timo Sirainen [Fri, 14 Feb 2025 11:42:07 +0000 (13:42 +0200)]
auth: Don't use auth failure delay for internal failures
Internal failures nowadays have their own delays.
Timo Sirainen [Fri, 14 Feb 2025 11:41:26 +0000 (13:41 +0200)]
auth: Split off auth_request_want_failure_delay()
Aki Tuomi [Mon, 17 Feb 2025 09:47:52 +0000 (11:47 +0200)]
lib-var-expand: Validate UTF-8 input
Aki Tuomi [Mon, 17 Feb 2025 10:44:04 +0000 (12:44 +0200)]
lib-var-expand: Fix lexer error passing
This way we can actually tell what the lexer did wrong.
Aki Tuomi [Mon, 17 Feb 2025 09:45:39 +0000 (11:45 +0200)]
lib-var-expand: fn_domain - Copy value before setting state
Aki Tuomi [Mon, 17 Feb 2025 09:41:40 +0000 (11:41 +0200)]
lib-var-expand: Reuse var_expand_state_set_transfer_data() in var_expand_state_set_transfer_binary()
It's same code
Aki Tuomi [Mon, 17 Feb 2025 09:41:09 +0000 (11:41 +0200)]
lib-var-expand: Ensure we don't try to set transfer from partial of it
Timo Sirainen [Sat, 15 Feb 2025 18:43:22 +0000 (20:43 +0200)]
imap: Fix crash with Maildir when trying to send INPROGRESS during mailbox syncing
Mailbox syncing could have been done outside command context, in which case
there is no global event.
Timo Sirainen [Sun, 16 Feb 2025 07:20:25 +0000 (09:20 +0200)]
global: Fix compiling without ldap
Timo Sirainen [Sun, 16 Feb 2025 07:19:18 +0000 (09:19 +0200)]
global: Replace PASSDB_LDAP/USERDB_LDAP with HAVE_LDAP macro
This macro is needed for other ldap-related code.
Timo Sirainen [Sat, 15 Feb 2025 07:12:25 +0000 (09:12 +0200)]
auth: Fix memory leak when building oauth2 failure JSON reply
Broken by
4bf8b11f5196752bb928baf59e48f9774bb0ce59
Timo Sirainen [Sat, 15 Feb 2025 09:04:03 +0000 (11:04 +0200)]
lib-smtp: Fix pipelining initial SASL response after AUTH
Aki Tuomi [Tue, 11 Feb 2025 14:19:05 +0000 (16:19 +0200)]
auth: Avoid delaying reply when shutting down
Aki Tuomi [Thu, 6 Feb 2025 13:43:28 +0000 (15:43 +0200)]
auth: Deinitialize connection already in auth_client_connection_destroy()
Aki Tuomi [Thu, 6 Feb 2025 13:42:40 +0000 (15:42 +0200)]
auth: Deinitialize passdb before freeing up settings
Some passdbs need the settings during deinitialization.
Aki Tuomi [Thu, 13 Feb 2025 07:31:47 +0000 (09:31 +0200)]
quota: Fix integer type in quota_warning_match()
Found by static analysis
Aki Tuomi [Thu, 13 Feb 2025 07:36:02 +0000 (09:36 +0200)]
lib-var-expand: Fix potential crash if referring to too large regexp capture group
Using sizeof() will not give number of elements here.
Aki Tuomi [Thu, 13 Feb 2025 07:16:21 +0000 (09:16 +0200)]
lib-var-expand: Ensure key is not NULL in fn_hash()
Satisfies static analysers