]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
2 years agoglobal: Replace settings_get_size() with str_parse_get_size() 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

2 years agolib, lib-settings: Move string-parse functions for bool/size/interval into lib
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.

2 years agolib-storage: mail_search_args_simplify_drop_redundant_args() - Apply Absorptive law...
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

2 years agodoc: Use html and man pages from doc.dovecot.org
Aki Tuomi [Thu, 17 Nov 2022 19:53:01 +0000 (21:53 +0200)] 
doc: Use html and man pages from doc.dovecot.org

2 years agolmtp: Fix restoring global log prefix after session is finished
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.

2 years agolmtp: Add support for haproxy SSL flag
Timo Sirainen [Mon, 14 Nov 2022 14:33:33 +0000 (16:33 +0200)] 
lmtp: Add support for haproxy SSL flag

2 years agologin-common: Check that ssl=required is not used with auth_allow_cleartext=yes
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

2 years agologin-common: Clarify client error when login attempted without TLS
Aki Tuomi [Tue, 4 Oct 2022 09:37:44 +0000 (12:37 +0300)] 
login-common: Clarify client error when login attempted without TLS

2 years agologin-common: ssl=required now requires TLS also for non-TLS/localhost haproxy connec...
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

2 years agologin-common: ssl=required now requires TLS also for trusted 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

2 years agolib-storage: Rename mail_user_connection_data.ssl_secured to end_client_tls_secured
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

2 years agolib-login: Rename LOGIN_REQUEST_FLAG_CONN_SSL_SECURED to ..._FLAG_END_CLIENT_SECURED_TLS
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

2 years agolmtp: Forward end_client_tls_secured state through proxies
Timo Sirainen [Fri, 4 Nov 2022 21:00:58 +0000 (23:00 +0200)] 
lmtp: Forward end_client_tls_secured state through proxies

2 years ago*-login: 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

2 years agolib-smtp: Add XCLIENT CLIENT-TRANSPORT field
Timo Sirainen [Fri, 4 Nov 2022 20:33:37 +0000 (22:33 +0200)] 
lib-smtp: Add XCLIENT CLIENT-TRANSPORT field

2 years agolib-login: Remove LOGIN_REQUEST_FLAG_CONN_SECURED
Timo Sirainen [Fri, 4 Nov 2022 20:39:34 +0000 (22:39 +0200)] 
lib-login: Remove LOGIN_REQUEST_FLAG_CONN_SECURED

2 years agolib-storage: Remove unused mail_user_connection_data.secured
Timo Sirainen [Fri, 4 Nov 2022 20:47:17 +0000 (22:47 +0200)] 
lib-storage: Remove unused mail_user_connection_data.secured

2 years agolib-storage: Remove mail_storage_service_input.conn_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.

2 years agologin-common: Handle haproxy's TLS terminated connections same as if Dovecot did...
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.

2 years agologin-common: Connections from haproxy are always considered secured
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.

2 years agolb-auth, auth: Change transport=trusted to transport=secured in event fields
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.

2 years agologin-common: Fix logging %{secured} and %{ssl_security} for haproxy TLS connections
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".

2 years ago*-login: Don't advertise/allow STARTTLS if haproxy already terminated TLS
Timo Sirainen [Thu, 3 Nov 2022 17:12:46 +0000 (19:12 +0200)] 
*-login: Don't advertise/allow STARTTLS if haproxy already terminated TLS

2 years agoauth: Rename "secured" variable/enum to "conn_secured"
Timo Sirainen [Fri, 4 Nov 2022 20:08:21 +0000 (22:08 +0200)] 
auth: Rename "secured" variable/enum to "conn_secured"

2 years agolib-auth: Rename AUTH_REQUEST_FLAG_TRANSPORT_SECURITY_TLS to AUTH_REQUEST_FLAG_CONN_S...
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

2 years agolib-auth: Rename AUTH_REQUEST_FLAG_SECURED to AUTH_REQUEST_FLAG_CONN_SECURED
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

2 years agologin-common: Rename client.trusted to connection_trusted
Timo Sirainen [Thu, 3 Nov 2022 17:18:03 +0000 (19:18 +0200)] 
login-common: Rename client.trusted to connection_trusted

2 years agologin-common: Rename client.starttls to connection_used_starttls
Timo Sirainen [Thu, 3 Nov 2022 17:15:13 +0000 (19:15 +0200)] 
login-common: Rename client.starttls to connection_used_starttls

2 years agologin-common: Rename client.proxied_ssl to haproxy_terminated_tls
Timo Sirainen [Thu, 3 Nov 2022 17:11:11 +0000 (19:11 +0200)] 
login-common: Rename client.proxied_ssl to haproxy_terminated_tls

2 years agologin-common: Rename client.tls to connection_tls_secured
Timo Sirainen [Thu, 3 Nov 2022 17:08:10 +0000 (19:08 +0200)] 
login-common: Rename client.tls to connection_tls_secured

2 years agologin-common: Rename client.ssl_secured to end_client_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.

2 years agolib-master: Rename "proxy" connections to "haproxy"
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.

2 years agologin-common: Rename client.secured to connection_secured
Timo Sirainen [Thu, 3 Nov 2022 16:49:18 +0000 (18:49 +0200)] 
login-common: Rename client.secured to connection_secured

2 years agolib: event-filter - Ensure 0 can be matched correctly in filters
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

2 years agolib: event-filter - Fix matching duration field
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.

2 years agolib-http: http-url - Make sure url->have_ssl is properly initialized in http_url_requ...
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.

2 years agolib-oauth2: jwt - Allow missing 'typ' field
Aki Tuomi [Wed, 2 Nov 2022 13:56:54 +0000 (15:56 +0200)] 
lib-oauth2: jwt - Allow missing 'typ' field

2 years agolib-oauth2: test-oauth2-jwt - Ensure we ignore 'none' algorithm
Aki Tuomi [Thu, 28 May 2020 12:05:08 +0000 (15:05 +0300)] 
lib-oauth2: test-oauth2-jwt - Ensure we ignore 'none' algorithm

2 years agolib-storage: Tolerate but warn about unknown special_use labels
Karl Fleischmann [Fri, 21 Oct 2022 15:32:29 +0000 (17:32 +0200)] 
lib-storage: Tolerate but warn about unknown special_use labels

2 years agolib-ssl-iostream: Do not unref DH parameters too soon
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

2 years agodsync: Skip autocreated mailboxes that haven't been created yet
Timo Sirainen [Thu, 3 Nov 2022 15:40:28 +0000 (17:40 +0200)] 
dsync: Skip autocreated mailboxes that haven't been created yet

2 years agoimapc: Fix listing INBOX when INBOX is already the namespace prefix
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.

2 years agolib-index/test-mail-index-transaction-update.c: Cleanup timezone instances
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.

2 years agolib-dcrypt: Remove pointless else-if
Aki Tuomi [Thu, 3 Nov 2022 11:46:11 +0000 (13:46 +0200)] 
lib-dcrypt: Remove pointless else-if

2 years agolib-dcrypt: Initialize EVP_PKEY when loading JWK key
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

2 years agoTODO: Remove mention on GnuTLS
Aki Tuomi [Wed, 26 Oct 2022 16:42:17 +0000 (19:42 +0300)] 
TODO: Remove mention on GnuTLS

2 years agom4: ssl.m4 - Drop unused checks
Aki Tuomi [Wed, 26 Oct 2022 12:38:56 +0000 (15:38 +0300)] 
m4: ssl.m4 - Drop unused checks

2 years agolib-crypto: Slightly reformat test-crypto.c
Aki Tuomi [Wed, 26 Oct 2022 11:53:25 +0000 (14:53 +0300)] 
lib-crypto: Slightly reformat test-crypto.c

2 years agolib-dcrypt: Add OpenSSLv3 support
Aki Tuomi [Wed, 26 Oct 2022 09:21:59 +0000 (12:21 +0300)] 
lib-dcrypt: Add OpenSSLv3 support

2 years agolib-dcrypt: test-crypto - Allow newline at end of PEM output
Aki Tuomi [Wed, 26 Oct 2022 09:20:58 +0000 (12:20 +0300)] 
lib-dcrypt: test-crypto - Allow newline at end of PEM output

2 years agolib-dcrypt: test-crypto - Add missing x9.62 roundtrip test
Aki Tuomi [Wed, 26 Oct 2022 09:18:52 +0000 (12:18 +0300)] 
lib-dcrypt: test-crypto - Add missing x9.62 roundtrip test

2 years agolib-dcrypt: Rename dcrypt-openssl.c to dcrypt-openssl1.c
Aki Tuomi [Wed, 26 Oct 2022 09:15:47 +0000 (12:15 +0300)] 
lib-dcrypt: Rename dcrypt-openssl.c to dcrypt-openssl1.c

2 years agolib-dcrypt: Add asserts to key ID and Usage accessors
Aki Tuomi [Tue, 1 Nov 2022 11:11:28 +0000 (13:11 +0200)] 
lib-dcrypt: Add asserts to key ID and Usage accessors

2 years agolib-dcrypt: Make error_r required
Aki Tuomi [Tue, 1 Nov 2022 10:55:36 +0000 (12:55 +0200)] 
lib-dcrypt: Make error_r required

2 years agoglobal: Call dcrypt always with error_r
Aki Tuomi [Tue, 1 Nov 2022 10:54:11 +0000 (12:54 +0200)] 
global: Call dcrypt always with error_r

2 years agolib-dcrytp: istream-decrypt - Report DER decoding issues
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.

2 years agolib-dcrypt: Improve OpenSSL error handling
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.

2 years agolib-ssl-iostream: Fix compability with OpenSSL 3.0
Aki Tuomi [Mon, 24 Oct 2022 11:05:46 +0000 (14:05 +0300)] 
lib-ssl-iostream: Fix compability with OpenSSL 3.0

2 years agolib-ssl-iostream: Do not attempt to load empty DH parameters
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.

2 years agolib-ssl-iostream: Use EVP_PKEY to wrap 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

2 years agolib-ssl-iostream: Remove support for pre-1.0.2 OpenSSL
Aki Tuomi [Mon, 31 Oct 2022 08:59:29 +0000 (10:59 +0200)] 
lib-ssl-iostream: Remove support for pre-1.0.2 OpenSSL

2 years agom4: Update ssl.m4
Aki Tuomi [Mon, 24 Oct 2022 11:05:16 +0000 (14:05 +0300)] 
m4: Update ssl.m4

2 years agolib-ssl-iostream: Add test DH parameters
Aki Tuomi [Wed, 26 Oct 2022 16:25:37 +0000 (19:25 +0300)] 
lib-ssl-iostream: Add test DH parameters

2 years agoreplicator: Fix crash when removing user from queue and debug logging is enabled
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

2 years agoreplicator: Fix crash when importing user not listed by userdb iteration
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

2 years agodsync: ns_mailbox_try_alloc() - Don't set errstr_r when mailbox wasn't found
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.

2 years agodsync: Revert logging a more detailed reason why mailbox was lost
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

2 years agodsync: Remove unnecessary DSYNC_MAILBOX_IMPORT_FLAG_DEBUG
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.

2 years agodsync: Remove unnecessary DSYNC_MAILBOX_TREES_SYNC_FLAG_DEBUG
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.

2 years agodsync: Use event_want_debug() rather than checking for debug flag
Timo Sirainen [Fri, 28 Oct 2022 09:58:43 +0000 (12:58 +0300)] 
dsync: Use event_want_debug() rather than checking for debug flag

2 years agodsync: Remove unused DSYNC_MAILBOX_TREES_SYNC_FLAG_MASTER_BRAIN
Timo Sirainen [Fri, 28 Oct 2022 09:57:13 +0000 (12:57 +0300)] 
dsync: Remove unused DSYNC_MAILBOX_TREES_SYNC_FLAG_MASTER_BRAIN

2 years agodsync: Remove duplicate "brain" log prefix
Timo Sirainen [Thu, 27 Oct 2022 22:17:48 +0000 (01:17 +0300)] 
dsync: Remove duplicate "brain" log prefix

Broken by 3ddb802f3e6faaac4fbeae1b33043bf0046138f4

2 years agomaildir: If mailbox create fails, don't try to apply mailbox_update changes
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?)

2 years agodsync: Log a more detailed reason why mailbox was lost
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.

2 years agodoveadm-server: Log dsync's "desync" message with debug level
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.

2 years agoreplicator: Log dsync error code in debug message
Timo Sirainen [Thu, 27 Oct 2022 19:45:24 +0000 (22:45 +0300)] 
replicator: Log dsync error code in debug message

2 years agolib-doveadm, doveadm: Change hardcoded exit code 2 to DOVEADM_EX_CHANGED
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.

2 years agoaggregator: Provide name for notify connection
Aki Tuomi [Tue, 16 Jan 2018 10:21:15 +0000 (12:21 +0200)] 
aggregator: Provide name for notify connection

2 years agoaggregator: Add debug logging
Aki Tuomi [Tue, 16 Jan 2018 10:20:11 +0000 (12:20 +0200)] 
aggregator: Add debug logging

2 years agoreplicator: Add debug logging
Aki Tuomi [Wed, 10 Jan 2018 14:06:52 +0000 (16:06 +0200)] 
replicator: Add debug logging

2 years agoreplicator: Add "replication" category to events
Timo Sirainen [Thu, 27 Oct 2022 08:54:29 +0000 (11:54 +0300)] 
replicator: Add "replication" category to events

2 years agoreplication plugin: Use "replication: " log prefix for all log messages
Timo Sirainen [Mon, 31 Oct 2022 09:23:00 +0000 (11:23 +0200)] 
replication plugin: Use "replication: " log prefix for all log messages

Some of the messages were missing the prefix. Some were using
"replication(user): " as the prefix, which was unnecessary since the
mail_log_prefix already contains the username.

2 years agoreplication plugin: Add "replication" category to events
Timo Sirainen [Thu, 27 Oct 2022 08:05:46 +0000 (11:05 +0300)] 
replication plugin: Add "replication" category to events

2 years agoreplicator: Add unit test to replicator-queue
Timo Sirainen [Tue, 16 Aug 2022 20:42:51 +0000 (23:42 +0300)] 
replicator: Add unit test to replicator-queue

2 years agoreplicator: Add replicator_queue_count() and replicator_queue_peek()
Timo Sirainen [Fri, 28 Oct 2022 14:57:03 +0000 (17:57 +0300)] 
replicator: Add replicator_queue_count() and replicator_queue_peek()

These will be useful for the following unit test.

2 years agoreplicator: Add "next sync secs" field to doveadm replicator status
Timo Sirainen [Tue, 25 Oct 2022 12:39:39 +0000 (15:39 +0300)] 
replicator: Add "next sync secs" field to doveadm replicator status

2 years agoreplicator: Make sure to prevent request starvation
Timo Sirainen [Tue, 25 Oct 2022 10:27:23 +0000 (13:27 +0300)] 
replicator: Make sure to prevent request starvation

This synchronizes how priority queue is ordered vs what
replicator_queue_want_sync_now() returns. The mismatch might have caused
request starvation in some situations because they behaved differently.

Also this change makes sure that higher priority requests don't infinitely
block lower priority requests. Instead, they get a temporary boost time
(hardcoded 15-45 minutes). Afterwards lower priority requests are started
to be handled as well.

2 years agoreplicator: Don't update user's last_update if priority doesn't change
Timo Sirainen [Tue, 25 Oct 2022 10:11:37 +0000 (13:11 +0300)] 
replicator: Don't update user's last_update if priority doesn't change

This didn't actually matter, since it was only used to check if importing
should update an existing user. However, importing is only run at startup
when all users have last_update=0 anyway.

The following changes bring new use cases for last_update.

2 years agoreplicator: Change replicator_queue_add_sync_callback() to take user struct
Timo Sirainen [Tue, 25 Oct 2022 10:08:36 +0000 (13:08 +0300)] 
replicator: Change replicator_queue_add_sync_callback() to take user struct

This is just to clean up the API to match the previous change.

2 years agoreplicator: Fix user placement in replication queue
Timo Sirainen [Tue, 25 Oct 2022 09:49:03 +0000 (12:49 +0300)] 
replicator: Fix user placement in replication queue

Especially replicator queue importing and NOTIFY command could have
placed the user to wrong place in the queue, because they modified the
last sync timestamps afterwards.

Fixed by splitting replicator_queue_add() into get/update/add(), so all
the necessary changes can be done before replicator_queue_add() is used
to place the user into the queue.

2 years agoquota: Drop rquota-pragmas.h
Aki Tuomi [Thu, 27 Oct 2022 07:26:01 +0000 (10:26 +0300)] 
quota: Drop rquota-pragmas.h

2 years agoquota: quota-fs - Ignore boolean errors with rquota.h
Aki Tuomi [Thu, 27 Oct 2022 07:25:15 +0000 (10:25 +0300)] 
quota: quota-fs - Ignore boolean errors with rquota.h

2 years agoquota: Fix rquota generation rules
Aki Tuomi [Thu, 27 Oct 2022 07:24:29 +0000 (10:24 +0300)] 
quota: Fix rquota generation rules

2 years agolib-storage: mailbox_attribute_get*() - Fail early on with empty key lookup
Timo Sirainen [Wed, 26 Oct 2022 23:56:45 +0000 (02:56 +0300)] 
lib-storage: mailbox_attribute_get*() - Fail early on with empty key lookup

This fixes using mail_attribute_dict with dict-sql.

2 years agostats: Replace i_<log>() with e_<log>()
Marco Bettini [Mon, 10 Oct 2022 08:46:46 +0000 (08:46 +0000)] 
stats: Replace i_<log>() with e_<log>()

2 years agoreplication: replicator - Replace i_<log>() with e_<log>()
Marco Bettini [Wed, 28 Sep 2022 08:10:39 +0000 (08:10 +0000)] 
replication: replicator - Replace i_<log>() with e_<log>()

2 years agoreplication: struct replicator_queue - Move to replicator-queue-private.h
Marco Bettini [Thu, 6 Oct 2022 12:52:40 +0000 (12:52 +0000)] 
replication: struct replicator_queue - Move to replicator-queue-private.h

2 years agoreplication: aggregator - Replace i_<log>() with e_<log>()
Marco Bettini [Tue, 27 Sep 2022 14:33:24 +0000 (14:33 +0000)] 
replication: aggregator - Replace i_<log>() with e_<log>()

2 years agopop3: Replace i_<log>() with e_<log>()
Marco Bettini [Mon, 19 Sep 2022 13:19:39 +0000 (13:19 +0000)] 
pop3: Replace i_<log>() with e_<log>()

2 years agopop3: struct client - Add event
Marco Bettini [Fri, 14 Oct 2022 09:33:19 +0000 (09:33 +0000)] 
pop3: struct client - Add event