]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Marco Bettini [Wed, 23 Nov 2022 10:40:57 +0000 (10:40 +0000)]
fts-flatcurve: fts_flatcurve_xapian_index_body() - Explicit sign conversion between char and unsigned char
Marco Bettini [Wed, 23 Nov 2022 09:51:39 +0000 (09:51 +0000)]
login-common: Fix for infinite recursion on invalid var expansion in login_log_format_elements and/or login_log_format
Broken by
0a3997e1c64f48529338a9f93d7c39381dfe4f72
Marco Bettini [Thu, 17 Nov 2022 15:59:02 +0000 (15:59 +0000)]
fts-flatcurve: Fix queries with non character-based searches
Xapian::QueryParser tries to tokenize phrases with non-letters (at least
in certain situations), so this was leading to strange behavior when
searching for e-mail addresses.
Solution: manually create queries using low-level Xapian::Query commands
to precisely define the query. Has the added benefit of making the code
more compact and easier to read.
Fixes GitHub Issue #35
Marco Bettini [Thu, 17 Nov 2022 15:10:56 +0000 (15:10 +0000)]
fts-flatcurve: Simplify handling of phrase queries
Dovecot FTS drivers can't properly support phrase searching (as of
v2.3.19), so simply ignore these queries in flatcurve. Both IMAP
searches and doveadm searches will pass both the phrase and the
component terms as part of the query, so no need to split the phrases
in the plugin.
Marco Bettini [Fri, 18 Nov 2022 15:31:03 +0000 (15:31 +0000)]
fts: fts_expunge_log_read_end() - Always unlink corrupted log files
Broken by
87b5c1fc03945708726c175d540fd307f7f78480
Marco Bettini [Fri, 18 Nov 2022 16:11:53 +0000 (16:11 +0000)]
fts: fts_expunge_log_flatten() - Fix event and memory leak
Marco Bettini [Tue, 22 Nov 2022 09:47:06 +0000 (09:47 +0000)]
auth: Add support for ARGON2 scheme
Timo Sirainen [Wed, 23 Nov 2022 14:00:39 +0000 (16:00 +0200)]
dsync: Add assert to make scan-build happy again
Broken by
0f67c79e48fa783b658606a99cf18db8daf7884e
Timo Sirainen [Sun, 27 Feb 2022 19:26:16 +0000 (20:26 +0100)]
global: Use mail_user_var_expand() where possible
This makes it possible to use %variable functions (e.g. %{userdb:*}) for
these settings.
Timo Sirainen [Sun, 27 Feb 2022 19:21:30 +0000 (20:21 +0100)]
lib-storage: Add mail_user_var_expand()
Marco Bettini [Mon, 21 Nov 2022 11:39:16 +0000 (11:39 +0000)]
global: Drop berkley db support leftovers
Berkeley DB support was already removed in
d5acb577 ,
but these changes had been left behind at that time.
Karl Fleischmann [Mon, 14 Nov 2022 13:47:15 +0000 (14:47 +0100)]
lib: Add unit tests for new interval-parsing in event-filter-parser
Karl Fleischmann [Fri, 11 Nov 2022 14:42:01 +0000 (15:42 +0100)]
lib: Try to interpret filter values as intervals when parsing integer event values
This allows event filter values to be given as "1days" or "1week". This
is only done after parsing sizes and thus sizes takes precedences. Thus
for ambiguous units like "M" sizes are used before intervals (e.g. "1M"
= "1024 * 1024" and not "1M" = "60 * 60 * 1000 * 1000").
Karl Fleischmann [Tue, 15 Nov 2022 15:25:56 +0000 (16:25 +0100)]
login-common: Report proxy-idle value as microseconds
To be consistent with other event attributes this value should be
reported as microseconds instead of seconds.
Karl Fleischmann [Tue, 15 Nov 2022 15:20:08 +0000 (16:20 +0100)]
login-common: Refactor proxy_last_io to use the full timeval struct
Instead of getting the last proxy io by second-value alone this commit
uses the microseconds as well. The existing API is not altered.
Karl Fleischmann [Fri, 28 Oct 2022 09:10:26 +0000 (11:10 +0200)]
lib: Add unit tests for new size-parsing in event-filter-parser
Karl Fleischmann [Thu, 10 Nov 2022 12:28:54 +0000 (13:28 +0100)]
lib: Try to interpret filter values as sizes when parsing integer event values
This allows event filter values to be given as "16M" or "1G".
Karl Fleischmann [Thu, 10 Nov 2022 12:27:35 +0000 (13:27 +0100)]
lib: Outfactor numeric event comparison
This function is later reused for size comparisons.
Karl Fleischmann [Wed, 26 Oct 2022 15:12:27 +0000 (17:12 +0200)]
global: Replace settings_get_time*() with str_parse_get_interval*() in project
Karl Fleischmann [Wed, 26 Oct 2022 15:06:02 +0000 (17:06 +0200)]
global: Replace settings_get_bool() with str_parse_get_bool() in project
Karl Fleischmann [Wed, 26 Oct 2022 15:03:08 +0000 (17:03 +0200)]
global: Replace settings_get_size() with str_parse_get_size() in project
Karl Fleischmann [Wed, 26 Oct 2022 14:57:08 +0000 (16:57 +0200)]
lib, lib-settings: Move string-parse functions for bool/size/interval into lib
Including the tests. Call the new functions from the existing
settings-functions. These will be removed in a later commit.
Marco Bettini [Wed, 9 Nov 2022 15:29:39 +0000 (15:29 +0000)]
lib-storage: mail_search_args_simplify_drop_redundant_args() - Apply Absorptive law versus all terms, not just the 1st
Aki Tuomi [Thu, 17 Nov 2022 19:53:01 +0000 (21:53 +0200)]
doc: Use html and man pages from doc.dovecot.org
Timo Sirainen [Mon, 14 Nov 2022 21:27:33 +0000 (23:27 +0200)]
lmtp: Fix restoring global log prefix after session is finished
Broken by
069dfd657fd91a0e2a3a9307a0cf499d795f27f2
This change also slightly changes the lmtp log prefixes in some places.
It removes "conn $ip:$port [$idx]: rcpt $user:" from some of the log
messages (but that wasn't in all of the log messages anyway), but it now
always includes mail_log_prefix in these log messages, which previously
wasn't always set at that point yet.
Timo Sirainen [Mon, 14 Nov 2022 14:33:33 +0000 (16:33 +0200)]
lmtp: Add support for haproxy SSL flag
Aki Tuomi [Thu, 20 Oct 2022 11:02:09 +0000 (14:02 +0300)]
login-common: Check that ssl=required is not used with auth_allow_cleartext=yes
Aki Tuomi [Tue, 4 Oct 2022 09:37:44 +0000 (12:37 +0300)]
login-common: Clarify client error when login attempted without TLS
Timo Sirainen [Mon, 14 Nov 2022 15:07:52 +0000 (17:07 +0200)]
login-common: ssl=required now requires TLS also for non-TLS/localhost haproxy connections
Timo Sirainen [Fri, 4 Nov 2022 23:10:57 +0000 (01:10 +0200)]
login-common: ssl=required now requires TLS also for trusted connections
Timo Sirainen [Fri, 4 Nov 2022 20:47:56 +0000 (22:47 +0200)]
lib-storage: Rename mail_user_connection_data.ssl_secured to end_client_tls_secured
Timo Sirainen [Fri, 4 Nov 2022 20:43:34 +0000 (22:43 +0200)]
lib-login: Rename LOGIN_REQUEST_FLAG_CONN_SSL_SECURED to ..._FLAG_END_CLIENT_SECURED_TLS
Timo Sirainen [Fri, 4 Nov 2022 21:00:58 +0000 (23:00 +0200)]
lmtp: Forward end_client_tls_secured state through proxies
Timo Sirainen [Fri, 4 Nov 2022 20:37:43 +0000 (22:37 +0200)]
*-login: Forward end_client_tls_secured state through proxies
Timo Sirainen [Fri, 4 Nov 2022 20:33:37 +0000 (22:33 +0200)]
lib-smtp: Add XCLIENT CLIENT-TRANSPORT field
Timo Sirainen [Fri, 4 Nov 2022 20:39:34 +0000 (22:39 +0200)]
lib-login: Remove LOGIN_REQUEST_FLAG_CONN_SECURED
Timo Sirainen [Fri, 4 Nov 2022 20:47:17 +0000 (22:47 +0200)]
lib-storage: Remove unused mail_user_connection_data.secured
Timo Sirainen [Fri, 4 Nov 2022 20:15:22 +0000 (22:15 +0200)]
lib-storage: Remove mail_storage_service_input.conn_secured
This isn't actually used by anything, and it's rather ambiguous how it's
supposed to work through proxies.
Timo Sirainen [Fri, 4 Nov 2022 19:58:30 +0000 (21:58 +0200)]
login-common: Handle haproxy's TLS terminated connections same as if Dovecot did TLS termination
If haproxy is running on localhost, this is clearly the case. If haproxy
is not running on localhost, it's a bit more ambiguous. It is possible to
configure haproxy to do TLS termination and then use another TLS connection
towards Dovecot, but this is likely a not so common configuration. More
likely the intention is that if haproxy has done TLS termination, it should
be handle the same as if Dovecot had done it.
This commit doesn't actually change any behavior. It just makes the tls
variables work in a more consistent way.
Timo Sirainen [Fri, 4 Nov 2022 21:50:49 +0000 (23:50 +0200)]
login-common: Connections from haproxy are always considered secured
Similarly to non-haproxy connections from login_trusted_networks are
considered secured, connections from haproxy_trusted_networks should also be
considered secured.
Timo Sirainen [Fri, 4 Nov 2022 19:36:52 +0000 (21:36 +0200)]
lb-auth, auth: Change transport=trusted to transport=secured in event fields
Using "trusted" word here is wrong/confusing. Login process uses both
"trusted" and "secured" words in connections to mean different things.
Timo Sirainen [Fri, 4 Nov 2022 19:22:15 +0000 (21:22 +0200)]
login-common: Fix logging %{secured} and %{ssl_security} for haproxy TLS connections
It should have been logged as TLS (proxied), but this had never worked.
Instead, it was logged simply as "secured".
Timo Sirainen [Thu, 3 Nov 2022 17:12:46 +0000 (19:12 +0200)]
*-login: Don't advertise/allow STARTTLS if haproxy already terminated TLS
Timo Sirainen [Fri, 4 Nov 2022 20:08:21 +0000 (22:08 +0200)]
auth: Rename "secured" variable/enum to "conn_secured"
Timo Sirainen [Fri, 4 Nov 2022 19:52:53 +0000 (21:52 +0200)]
lib-auth: Rename AUTH_REQUEST_FLAG_TRANSPORT_SECURITY_TLS to AUTH_REQUEST_FLAG_CONN_SECURED_TLS
Timo Sirainen [Fri, 4 Nov 2022 19:45:54 +0000 (21:45 +0200)]
lib-auth: Rename AUTH_REQUEST_FLAG_SECURED to AUTH_REQUEST_FLAG_CONN_SECURED
Timo Sirainen [Thu, 3 Nov 2022 17:18:03 +0000 (19:18 +0200)]
login-common: Rename client.trusted to connection_trusted
Timo Sirainen [Thu, 3 Nov 2022 17:15:13 +0000 (19:15 +0200)]
login-common: Rename client.starttls to connection_used_starttls
Timo Sirainen [Thu, 3 Nov 2022 17:11:11 +0000 (19:11 +0200)]
login-common: Rename client.proxied_ssl to haproxy_terminated_tls
Timo Sirainen [Thu, 3 Nov 2022 17:08:10 +0000 (19:08 +0200)]
login-common: Rename client.tls to connection_tls_secured
Timo Sirainen [Thu, 3 Nov 2022 16:57:22 +0000 (18:57 +0200)]
login-common: Rename client.ssl_secured to end_client_tls_secured
Also note in the comment that this behavior is currently broken on a
proxying setup.
Timo Sirainen [Thu, 3 Nov 2022 17:22:07 +0000 (19:22 +0200)]
lib-master: Rename "proxy" connections to "haproxy"
We already have a Dovecot proxy, and naming haproxy connections simply as
"proxy" just causes confusion. If we end up supporting other types of
proxy protocols later on, we can try to figure out a better name.
Timo Sirainen [Thu, 3 Nov 2022 16:49:18 +0000 (18:49 +0200)]
login-common: Rename client.secured to connection_secured
Aki Tuomi [Tue, 15 Nov 2022 11:44:46 +0000 (13:44 +0200)]
lib: event-filter - Ensure 0 can be matched correctly in filters
Allow matching fields with > 0, priorly this would have always been
treated as string equality / wildcard match, instead we now want
to match it as number. Forgotten in
61cb32860f5237c5d928a7fed8a89f783c2f9b30
This fixes a signal 11 crash with equality comparison with a
non-wildcard value. Broken in
aefe4941c14c6001a9d09fbc3122aca1417d00a8
Aki Tuomi [Tue, 15 Nov 2022 11:22:16 +0000 (13:22 +0200)]
lib: event-filter - Fix matching duration field
If duration field is used in event filter, it cannot be matched
here as no such field exists. We need to actually synthesize the
field here for matching.
Stephan Bosch [Thu, 10 Nov 2022 01:50:02 +0000 (02:50 +0100)]
lib-http: http-url - Make sure url->have_ssl is properly initialized in http_url_request_target_parse().
This fixes the problem that the HTTP server does not yield proper HTTPS urls for
incoming requests.
Aki Tuomi [Wed, 2 Nov 2022 13:56:54 +0000 (15:56 +0200)]
lib-oauth2: jwt - Allow missing 'typ' field
Aki Tuomi [Thu, 28 May 2020 12:05:08 +0000 (15:05 +0300)]
lib-oauth2: test-oauth2-jwt - Ensure we ignore 'none' algorithm
Karl Fleischmann [Fri, 21 Oct 2022 15:32:29 +0000 (17:32 +0200)]
lib-storage: Tolerate but warn about unknown special_use labels
Aki Tuomi [Fri, 4 Nov 2022 10:27:11 +0000 (12:27 +0200)]
lib-ssl-iostream: Do not unref DH parameters too soon
SSL_CTX_set0_tmp_dh_pkey moves references to SSL_CTX which
frees the DH parameters itself.
Broken by
124c491aa688eec146c21718f0d98aec9ae03294
Timo Sirainen [Thu, 3 Nov 2022 15:40:28 +0000 (17:40 +0200)]
dsync: Skip autocreated mailboxes that haven't been created yet
Timo Sirainen [Fri, 4 Nov 2022 12:01:14 +0000 (14:01 +0200)]
imapc: Fix listing INBOX when INBOX is already the namespace prefix
This especially caused problems when using dsync with imapc, resulting in
"Remote lost mailbox GUID" errors.
Dimitry Andric [Wed, 14 Sep 2022 10:26:50 +0000 (12:26 +0200)]
lib-index/test-mail-index-transaction-update.c: Cleanup timezone instances
In
1a7b1f66fe the non-standard extern timezone was partially removed,
but some instances were left. Since the test is supposed to run with
TZ=UTC, and timezone would have been zero anyway, remove them all.
Aki Tuomi [Thu, 3 Nov 2022 11:46:11 +0000 (13:46 +0200)]
lib-dcrypt: Remove pointless else-if
Aki Tuomi [Thu, 3 Nov 2022 11:44:48 +0000 (13:44 +0200)]
lib-dcrypt: Initialize EVP_PKEY when loading JWK key
Satisfies static analysers
Aki Tuomi [Wed, 26 Oct 2022 16:42:17 +0000 (19:42 +0300)]
TODO: Remove mention on GnuTLS
Aki Tuomi [Wed, 26 Oct 2022 12:38:56 +0000 (15:38 +0300)]
m4: ssl.m4 - Drop unused checks
Aki Tuomi [Wed, 26 Oct 2022 11:53:25 +0000 (14:53 +0300)]
lib-crypto: Slightly reformat test-crypto.c
Aki Tuomi [Wed, 26 Oct 2022 09:21:59 +0000 (12:21 +0300)]
lib-dcrypt: Add OpenSSLv3 support
Aki Tuomi [Wed, 26 Oct 2022 09:20:58 +0000 (12:20 +0300)]
lib-dcrypt: test-crypto - Allow newline at end of PEM output
Aki Tuomi [Wed, 26 Oct 2022 09:18:52 +0000 (12:18 +0300)]
lib-dcrypt: test-crypto - Add missing x9.62 roundtrip test
Aki Tuomi [Wed, 26 Oct 2022 09:15:47 +0000 (12:15 +0300)]
lib-dcrypt: Rename dcrypt-openssl.c to dcrypt-openssl1.c
Aki Tuomi [Tue, 1 Nov 2022 11:11:28 +0000 (13:11 +0200)]
lib-dcrypt: Add asserts to key ID and Usage accessors
Aki Tuomi [Tue, 1 Nov 2022 10:55:36 +0000 (12:55 +0200)]
lib-dcrypt: Make error_r required
Aki Tuomi [Tue, 1 Nov 2022 10:54:11 +0000 (12:54 +0200)]
global: Call dcrypt always with error_r
Aki Tuomi [Tue, 1 Nov 2022 11:02:22 +0000 (13:02 +0200)]
lib-dcrytp: istream-decrypt - Report DER decoding issues
Fixes possibility of DER object decode error being reported
as truncation.
Aki Tuomi [Tue, 1 Nov 2022 10:29:40 +0000 (12:29 +0200)]
lib-dcrypt: Improve OpenSSL error handling
Will now try to get the error more thoroughly and handles out of memory
correctly.
Aki Tuomi [Mon, 24 Oct 2022 11:05:46 +0000 (14:05 +0300)]
lib-ssl-iostream: Fix compability with OpenSSL 3.0
Aki Tuomi [Mon, 31 Oct 2022 09:08:49 +0000 (11:08 +0200)]
lib-ssl-iostream: Do not attempt to load empty DH parameters
OpenSSL3 complains about empty DH parameters.
Aki Tuomi [Mon, 31 Oct 2022 09:00:43 +0000 (11:00 +0200)]
lib-ssl-iostream: Use EVP_PKEY to wrap DH parameters
Simplifies OpenSSL 3.0 compability
Aki Tuomi [Mon, 31 Oct 2022 08:59:29 +0000 (10:59 +0200)]
lib-ssl-iostream: Remove support for pre-1.0.2 OpenSSL
Aki Tuomi [Mon, 24 Oct 2022 11:05:16 +0000 (14:05 +0300)]
m4: Update ssl.m4
Aki Tuomi [Wed, 26 Oct 2022 16:25:37 +0000 (19:25 +0300)]
lib-ssl-iostream: Add test DH parameters
Timo Sirainen [Tue, 1 Nov 2022 09:23:44 +0000 (11:23 +0200)]
replicator: Fix crash when removing user from queue and debug logging is enabled
Broken by
4b5337667cea6dea3d684540ee79f26292f9b42d
Timo Sirainen [Tue, 1 Nov 2022 09:21:34 +0000 (11:21 +0200)]
replicator: Fix crash when importing user not listed by userdb iteration
Broken by
31545b4f38ea85615f0111a33d630a03d92d22ab
Timo Sirainen [Mon, 31 Oct 2022 20:39:25 +0000 (22:39 +0200)]
dsync: ns_mailbox_try_alloc() - Don't set errstr_r when mailbox wasn't found
It's unnecessary and confusing, since the callers can't really use it
anyway.
Timo Sirainen [Mon, 31 Oct 2022 20:37:34 +0000 (22:37 +0200)]
dsync: Revert logging a more detailed reason why mailbox was lost
This code can't actually work, because the mailbox allocation is attempted
in multiple namespaces. The error would just come from the last namespace,
which might not have been the correct one.
Reverts
cdf981514af4eb8af5a459d8e68bed2cccd7f37c
Timo Sirainen [Fri, 28 Oct 2022 10:00:03 +0000 (13:00 +0300)]
dsync: Remove unnecessary DSYNC_MAILBOX_IMPORT_FLAG_DEBUG
The debug status comes from the parent event.
Timo Sirainen [Fri, 28 Oct 2022 09:58:56 +0000 (12:58 +0300)]
dsync: Remove unnecessary DSYNC_MAILBOX_TREES_SYNC_FLAG_DEBUG
The debug status comes from the parent event.
Timo Sirainen [Fri, 28 Oct 2022 09:58:43 +0000 (12:58 +0300)]
dsync: Use event_want_debug() rather than checking for debug flag
Timo Sirainen [Fri, 28 Oct 2022 09:57:13 +0000 (12:57 +0300)]
dsync: Remove unused DSYNC_MAILBOX_TREES_SYNC_FLAG_MASTER_BRAIN
Timo Sirainen [Thu, 27 Oct 2022 22:17:48 +0000 (01:17 +0300)]
dsync: Remove duplicate "brain" log prefix
Broken by
3ddb802f3e6faaac4fbeae1b33043bf0046138f4
Timo Sirainen [Thu, 27 Oct 2022 21:56:29 +0000 (00:56 +0300)]
maildir: If mailbox create fails, don't try to apply mailbox_update changes
This was especially causing problems with mailbox GUID mismatches in dsync.
The mismatch wasn't automatically fixed, because mailbox_create() incorrectly
kept updating the mailbox GUID for the already existing mailbox.
Fixes errors such as:
Remote lost mailbox GUID ... (maybe it was just deleted?)
Timo Sirainen [Thu, 27 Oct 2022 22:21:48 +0000 (01:21 +0300)]
dsync: Log a more detailed reason why mailbox was lost
Although usually the reason is just that it wasn't found.
Timo Sirainen [Thu, 27 Oct 2022 22:20:43 +0000 (01:20 +0300)]
doveadm-server: Log dsync's "desync" message with debug level
Previously this was logged only by the CLI doveadm tool as a warning.
Timo Sirainen [Thu, 27 Oct 2022 19:45:24 +0000 (22:45 +0300)]
replicator: Log dsync error code in debug message
Timo Sirainen [Thu, 27 Oct 2022 19:33:59 +0000 (22:33 +0300)]
lib-doveadm, doveadm: Change hardcoded exit code 2 to DOVEADM_EX_CHANGED
This also gives it a "CHANGED" error code in the doveadm protocol.
Aki Tuomi [Tue, 16 Jan 2018 10:21:15 +0000 (12:21 +0200)]
aggregator: Provide name for notify connection
Aki Tuomi [Tue, 16 Jan 2018 10:20:11 +0000 (12:20 +0200)]
aggregator: Add debug logging
Aki Tuomi [Wed, 10 Jan 2018 14:06:52 +0000 (16:06 +0200)]
replicator: Add debug logging