]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Thu, 16 Dec 2021 02:50:09 +0000 (04:50 +0200)]
anvil, doveadm: Add alt usernames to CONNECT-DUMP output
Timo Sirainen [Tue, 1 Feb 2022 15:22:47 +0000 (16:22 +0100)]
doveadm who: Improve error handling
Avoid i_fatal(), but still fail with non-zero exit code.
Timo Sirainen [Thu, 16 Dec 2021 02:48:40 +0000 (04:48 +0200)]
doveadm: Replace who_lookup() with iterator API
Timo Sirainen [Mon, 17 Jan 2022 11:08:29 +0000 (12:08 +0100)]
login-common: Send proxy session destination IP to anvil
Timo Sirainen [Mon, 17 Jan 2022 11:06:50 +0000 (12:06 +0100)]
lib-master: master_service_anvil_connect() - Add support for proxy session destination IP
Timo Sirainen [Tue, 18 Jan 2022 14:10:00 +0000 (15:10 +0100)]
anvil: Don't track proxy connections in userip_hash
Otherwise proxy connections would also be counted towards tracking
mail_max_userip_connections, which could cause the same session to be
counted multiple times.
Timo Sirainen [Mon, 17 Jan 2022 10:59:30 +0000 (11:59 +0100)]
anvil, doveadm: Add support for tracking proxy session destination IP
Timo Sirainen [Wed, 12 Jan 2022 15:34:51 +0000 (17:34 +0200)]
login-common: Send alt usernames to anvil
Timo Sirainen [Wed, 12 Jan 2022 15:25:23 +0000 (17:25 +0200)]
lib-master: master_service_anvil_connect() - Add support for alt usernames
Timo Sirainen [Wed, 15 Dec 2021 23:58:35 +0000 (01:58 +0200)]
anvil: Add support for tracking alternative usernames
Timo Sirainen [Wed, 15 Dec 2021 11:41:32 +0000 (13:41 +0200)]
lib-master, global: Send kick-type for anvil CONNECT
Timo Sirainen [Wed, 15 Dec 2021 23:51:24 +0000 (01:51 +0200)]
anvil: Add test-connect-limit
Timo Sirainen [Mon, 17 Jan 2022 22:25:09 +0000 (23:25 +0100)]
anvil: Add kick-type parameter for CONNECT
This indicates how the process supports kicking users.
Timo Sirainen [Thu, 13 Jan 2022 14:42:31 +0000 (16:42 +0200)]
anvil: Split off session_[un]link_process()
Timo Sirainen [Mon, 17 Jan 2022 22:31:40 +0000 (23:31 +0100)]
lib-master, anvil: [DIS]CONNECT - Move conn-guid to being the first parameter
It uniquely identifies the connection, so it's clearer that it's the first
parameter.
Timo Sirainen [Wed, 15 Dec 2021 22:46:58 +0000 (00:46 +0200)]
anvil, doveadm: Require conn-guid to be set for CONNECT
This removes the need for refcount tracking.
Timo Sirainen [Mon, 7 Feb 2022 10:41:02 +0000 (11:41 +0100)]
anvil: connect-limit - Add API for iterating user's all connections
Timo Sirainen [Wed, 15 Dec 2021 13:39:23 +0000 (15:39 +0200)]
anvil: connect-limit - Keep track of all sessions per user
Timo Sirainen [Wed, 8 Dec 2021 00:25:39 +0000 (02:25 +0200)]
anvil: connect-limit - Keep track of all sessions per process
Timo Sirainen [Wed, 19 Jan 2022 23:09:58 +0000 (00:09 +0100)]
submission: Change kick log message to "Server shutting down"
This way it's the same as with imap and pop3.
Timo Sirainen [Thu, 13 Jan 2022 16:09:51 +0000 (18:09 +0200)]
submission: Add admin-client with KICK-USER command
Timo Sirainen [Thu, 13 Jan 2022 16:07:02 +0000 (18:07 +0200)]
pop3: Add admin-client with KICK-USER command
Timo Sirainen [Thu, 13 Jan 2022 16:03:00 +0000 (18:03 +0200)]
imap: Add admin-client with KICK-USER command
Timo Sirainen [Sat, 9 Oct 2021 21:03:20 +0000 (00:03 +0300)]
login-common: Add admin-client with KICK-USER command
Timo Sirainen [Thu, 6 Jan 2022 11:34:09 +0000 (13:34 +0200)]
login-common: Add login_proxy_kick_user_connection()
Timo Sirainen [Sat, 9 Oct 2021 21:22:03 +0000 (00:22 +0300)]
login-common: Split off more generic login_proxy_kick_user/alt/host()
Move the IPC-specific command input/output handling to the caller, so
these functions just do the main work of kicking.
Timo Sirainen [Wed, 8 Dec 2021 00:03:45 +0000 (02:03 +0200)]
login-common: Track proxied connections in anvil
Timo Sirainen [Sun, 12 Dec 2021 23:26:21 +0000 (01:26 +0200)]
global: Send connection GUIDs to anvil
Timo Sirainen [Sun, 12 Dec 2021 23:22:31 +0000 (01:22 +0200)]
anvil, doveadm: Add support for connection GUIDs
These are anvil-specific GUIDs that can be used to refer to a specific
connection.
Timo Sirainen [Sun, 12 Dec 2021 23:17:13 +0000 (01:17 +0200)]
anvil, doveadm: Simplify CONNECT-DUMP output format
Timo Sirainen [Sun, 12 Dec 2021 22:58:24 +0000 (00:58 +0200)]
anvil, global: Split CONNECT/DISCONNECT/LOOKUP ident to separate parameters
Timo Sirainen [Sun, 12 Dec 2021 23:11:56 +0000 (01:11 +0200)]
global: Increase anvil protocol major version number
The following changes break the backwards compatibility.
Timo Sirainen [Sun, 12 Dec 2021 22:56:12 +0000 (00:56 +0200)]
lib-master, global: Replace master_service_anvil_send() with explicit connect/disconnect()
Timo Sirainen [Sun, 12 Dec 2021 22:52:49 +0000 (00:52 +0200)]
global: Assume anvil command was success only if master_service_anvil_send() returns TRUE
Timo Sirainen [Sun, 12 Dec 2021 22:52:34 +0000 (00:52 +0200)]
lib-master: master_service_anvil_send() - Return TRUE if command was actually sent
Timo Sirainen [Wed, 15 Dec 2021 13:15:34 +0000 (15:15 +0200)]
anvil: Store service strings in a reference counted table
There are only a few different services, so there's no need to duplicate the
memory usage for each of the string instances.
Timo Sirainen [Wed, 15 Dec 2021 12:57:31 +0000 (14:57 +0200)]
anvil: Initialize session_lookup struct directly
Timo Sirainen [Wed, 15 Dec 2021 12:55:40 +0000 (14:55 +0200)]
anvil: Rename "i" variables to "session"
Timo Sirainen [Wed, 15 Dec 2021 12:54:18 +0000 (14:54 +0200)]
anvil: Rename struct ident_pid to struct session
Timo Sirainen [Sun, 12 Dec 2021 17:36:37 +0000 (19:36 +0200)]
anvil: Change connect-limit API to use struct rather than ident string
Timo Sirainen [Mon, 3 Jan 2022 17:27:51 +0000 (19:27 +0200)]
anvil: Split off main_init() and main_deinit()
Timo Sirainen [Thu, 13 Jan 2022 16:03:32 +0000 (18:03 +0200)]
imap: Avoid sending untagged BYE in the middle of command output
This could have caused the untagged BYE to be sent in the middle of e.g.
FETCH command output if the session was kicked out.
Timo Sirainen [Thu, 13 Jan 2022 15:32:09 +0000 (17:32 +0200)]
lib-master: Add admin-client API
The admin-clients are automatically created for %{pid} socket listeners.
They are not reported to master process as being actual connections to
the process, or counted towards service_count.
Timo Sirainen [Sat, 9 Oct 2021 23:04:33 +0000 (02:04 +0300)]
imap/pop3/submission-login: Add srv.<name>/%{pid}-admin unix socket listener
This can be used by admin clients.
Timo Sirainen [Sat, 9 Oct 2021 22:56:21 +0000 (01:56 +0300)]
master: Automatically mkdir listener subdirectories
The directory permissions are based on the unix/fifo_listeners that are
created under the directory.
Timo Sirainen [Tue, 25 Jan 2022 10:18:30 +0000 (11:18 +0100)]
master: Split off service_is_enabled()
Timo Sirainen [Sat, 14 Nov 2020 18:30:39 +0000 (20:30 +0200)]
master: Support %{pid} in unix_listener paths
This allows each process to have their own private UNIX socket listener.
Timo Sirainen [Sat, 14 Nov 2020 18:20:29 +0000 (20:20 +0200)]
master: service_unix_listener_listen() - Add path parameter
Timo Sirainen [Sat, 14 Nov 2020 17:56:06 +0000 (19:56 +0200)]
master: service_unix_listener_listen() - Add verify_addrinuse parameter
Timo Sirainen [Sat, 14 Nov 2020 17:54:46 +0000 (19:54 +0200)]
master: Make service_unix_listener_listen() public
Timo Sirainen [Sat, 14 Nov 2020 18:13:06 +0000 (20:13 +0200)]
master: Move error logging from service_*_listener_listen() to parent function
This is in preparation for the following changes. It would have been
enough actually to just do this for service_unix_listener_listen(), but
it's nicer this way for consistency.
Timo Sirainen [Wed, 5 Jan 2022 21:46:12 +0000 (23:46 +0200)]
lib: Add connection_client_connect_with_retries()
Timo Sirainen [Tue, 4 Jan 2022 16:39:24 +0000 (18:39 +0200)]
lib: Add connection_input_read_stream()
Timo Sirainen [Tue, 4 Jan 2022 16:39:09 +0000 (18:39 +0200)]
lib: Add i_stream_set_error()
Timo Sirainen [Sat, 14 Nov 2020 20:07:51 +0000 (22:07 +0200)]
lib-master: Remove unused master_auth_request()
Karl Fleischmann [Mon, 7 Feb 2022 08:20:34 +0000 (09:20 +0100)]
welcome: Supply noreply-parameter to program client creation
Use the appropriate noreply parameter when initializing the program
client to implement the behavior as it was configured.
Karl Fleischmann [Mon, 7 Feb 2022 08:19:04 +0000 (09:19 +0100)]
welcome: Use program_client_exit_status enum value
Replace the implicit int with the explicit program_client_exit_status
enum value when starting the script and handling the callback.
Timo Sirainen [Mon, 7 Feb 2022 08:18:03 +0000 (09:18 +0100)]
welcome: Remove io_loop_stop() call in callback
This is the responsibility of the program-client API and should not
happen in the plugin itself.
Timo Sirainen [Mon, 7 Feb 2022 08:14:53 +0000 (09:14 +0100)]
lib-program-client: Stop waiting ioloop on destruction
Martti Rannanjärvi [Thu, 3 Feb 2022 23:28:45 +0000 (01:28 +0200)]
stats: stats_metrics_remove_dynamic() - Free the removed metric
Martti Rannanjärvi [Thu, 3 Feb 2022 23:32:18 +0000 (01:32 +0200)]
stats: stats_metric_alloc() - Fix indentation on p_new() call
Martti Rannanjärvi [Mon, 31 Jan 2022 10:42:46 +0000 (12:42 +0200)]
replication: aggregator - Free replicator_connection content
sergey.kitov [Wed, 2 Feb 2022 15:01:49 +0000 (17:01 +0200)]
lib-master: Fix deinit memory leak with process_shutdown_filter
Timo Sirainen [Tue, 1 Feb 2022 13:57:16 +0000 (14:57 +0100)]
lmtp: proxy - Add per-connection counter to session_id
This way connections to two different backends don't try to use the same
session_id. Add 'P' letter before the counter to clarify that it's the
proxy connection counter.
Timo Sirainen [Tue, 1 Feb 2022 13:40:48 +0000 (14:40 +0100)]
lmtp: Simplify/clarify per-recipient session ID
The session ID is the transaction ID followed by an increasing recipient
count (number of RCPT commands) in the SMTP transaction. Clarify this by
adding 'R' letter before the counter. Also don't add the counter suffix at
all for the first recipient, since most transactions only have a single
recipient.
Timo Sirainen [Tue, 1 Feb 2022 13:35:05 +0000 (14:35 +0100)]
lib-smtp: server-transaction - Simplify/clarify transaction ID
The transaction ID is the session ID followed by an increasing transaction
count (number of MAIL commands) in the SMTP server connection. Clarify
this by adding 'T' letter before the counter. Also don't add the counter
suffix at all for the first session, since most sessions only have a
single transaction.
Timo Sirainen [Tue, 1 Feb 2022 13:29:43 +0000 (14:29 +0100)]
lib-smtp, lmtp: Add brackets to <session-id> in logging
This makes it clearer where the session-id stops. It's also similar to
how it is in mail_log_prefix.
Timo Sirainen [Tue, 1 Feb 2022 14:03:15 +0000 (15:03 +0100)]
lmtp: proxy - Use recipient-specific session-id when logging the result
Instead of transaction ID, which is shared between recipients.
Timo Sirainen [Tue, 1 Feb 2022 13:58:57 +0000 (14:58 +0100)]
lmtp: struct lmtp_recipient - Change all strings to const
Timo Sirainen [Wed, 26 Jan 2022 14:09:29 +0000 (16:09 +0200)]
auth: ldap: Drop partially saved results before retrying request
Fixes "LDAP search returned multiple entries" happening after reconnects.
Timo Sirainen [Wed, 26 Jan 2022 14:03:27 +0000 (16:03 +0200)]
auth: ldap: If any requests were lost, reconnect to LDAP server
Timo Sirainen [Wed, 26 Jan 2022 14:00:45 +0000 (16:00 +0200)]
auth: ldap: If LDAP connection appears to be hanging, abort all old requests
Retrying the reconnect might fix them, but since this situation isn't
supposed to happen in the first place, it's safer to just remove them
entirely to guarantee that it's not trying to keep retrying them for
a long time.
Timo Sirainen [Wed, 26 Jan 2022 12:46:55 +0000 (14:46 +0200)]
auth: ldap: Reconnect to server if receiving unknown msgid
It's unclear why this happens. Is it a bug on server or client side?
Either way, this situation doesn't now fix itself automatically, so
reconnecting should help.
Timo Sirainen [Wed, 26 Jan 2022 12:43:01 +0000 (14:43 +0200)]
auth: ldap: Stop re-sending request after 3 disconnect+reconnects
This prevents retrying the same LDAP request forever in situations where the
request causes LDAP server to become disconnected. This might fix some real
issues, but it was mainly implemented because testing the following commit
caused infinite looping.
Aki Tuomi [Wed, 19 Jan 2022 09:20:24 +0000 (10:20 +0100)]
welcome: Use program-client for welcome script
Replace manual execution of client script with consolidated
program-client API.
Karl Fleischmann [Thu, 20 Jan 2022 09:34:00 +0000 (10:34 +0100)]
lib-program-client: Add unit tests for client program execution
- Add unit test that covers program_client_wait(), in which the script
execution environment needs to wait for a still running asynchronous
client program, and
- add unit test that covers a synchronous program_client_run().
Aki Tuomi [Wed, 19 Jan 2022 08:40:55 +0000 (09:40 +0100)]
lib-program-client: Add program_client_wait() function
Akin to program_client_run() this function creates an inner io-loop that
waits but without operating on the available data.
Aki Tuomi [Wed, 19 Jan 2022 08:16:44 +0000 (09:16 +0100)]
lib-program-client: Process successful unix connection directly
Call program_client_remote_connected() directly instead of adding it to
the io-loop.
Markus Valentin [Tue, 18 Jan 2022 08:46:32 +0000 (09:46 +0100)]
imapc: Start to handle new untagged fetch messages in imapc_sync()
Markus Valentin [Tue, 18 Jan 2022 08:22:24 +0000 (09:22 +0100)]
imapc: Add imapc_sync_handle_untagged_fetches()
Markus Valentin [Mon, 17 Jan 2022 14:41:25 +0000 (15:41 +0100)]
imapc: imapc_untagged_fetch_handle() - Change return type to bool
When calling imapc_untagged_fetch_handle() also retrieve new_message_r
from it which allows imapc_mailbox_msgmap_update() to determine if the
message just handled was already in index or not.
Markus Valentin [Thu, 27 Jan 2022 07:06:16 +0000 (08:06 +0100)]
imapc: imapc_untagged_fetch_update_flags() - Reduce indentation
Markus Valentin [Thu, 27 Jan 2022 06:56:32 +0000 (07:56 +0100)]
imapc: Split off imapc_untagged_fetch_update_flags() for handling flag updates
Markus Valentin [Mon, 17 Jan 2022 14:00:41 +0000 (15:00 +0100)]
imapc: Introduce imapc_untagged_fetch_ctx
Markus Valentin [Mon, 17 Jan 2022 12:57:56 +0000 (13:57 +0100)]
imapc: Decouple imapc_untagged_fetch parsing and handling
Stephan Bosch [Wed, 26 Jan 2022 03:00:32 +0000 (04:00 +0100)]
lib-smtp: test-smtp-client-errors - Add test for succesful authentication with large initial response.
Stephan Bosch [Wed, 26 Jan 2022 02:58:49 +0000 (03:58 +0100)]
lib-smtp: smtp-client-connection - Fix authentication with multi-roundtrip SASL mechanisms.
Before, it would fail with an unexpected reply error.
Stephan Bosch [Mon, 24 Jan 2022 00:39:19 +0000 (01:39 +0100)]
lib-smtp: test-smtp-client-errors - Add test for successful authentication.
Stephan Bosch [Mon, 24 Jan 2022 00:41:15 +0000 (01:41 +0100)]
lib-smtp: test-smtp-client-errors - Rename "authentication failed" test to "authentication".
Stephan Bosch [Fri, 28 Jan 2022 02:14:16 +0000 (03:14 +0100)]
lib-smtp: smtp-client - Fix maximum line length to include CRLF.
Stephan Bosch [Fri, 21 Jan 2022 00:08:31 +0000 (01:08 +0100)]
lib-smtp: smtp-client-connection - Do not include initial response in AUTH command if it is too long.
Stephan Bosch [Fri, 21 Jan 2022 01:26:18 +0000 (02:26 +0100)]
lib-smtp: smtp-client-connection - Move auth cleanup to separate function.
Stephan Bosch [Fri, 28 Jan 2022 02:17:59 +0000 (03:17 +0100)]
lib-sasl: dsasl-client - Make dsasl_client_free(&NULL) a no-op.
Stephan Bosch [Fri, 21 Jan 2022 01:28:23 +0000 (02:28 +0100)]
lib-smtp: smtp-client-connection - Reformat comment.
Timo Sirainen [Thu, 20 Jan 2022 17:36:27 +0000 (18:36 +0100)]
lib-program-client: Explicitly ignore dns_lookup() return value
Timo Sirainen [Thu, 20 Jan 2022 17:23:43 +0000 (18:23 +0100)]
lmtp: proxy: Fix bad error handling code path with assert
Timo Sirainen [Thu, 20 Jan 2022 17:10:41 +0000 (18:10 +0100)]
dict-ldap: Fix crash in synchronous dict_lookup()
However, this code could never actually be called. All dict-ldap lookups
go through dict process, which uses only dict_lookup_async().
Broken by
4453ca75c600ed35643d0775b16848cafae9eaea
Markus Valentin [Fri, 28 Jan 2022 09:54:53 +0000 (10:54 +0100)]
lib-http: http_server_resource_create() - Remove unnecessary pool allocation
Fixes leaking the memory pool created in stats_http_resource_add()
Markus Valentin [Thu, 27 Jan 2022 20:40:25 +0000 (21:40 +0100)]
lib-storage: LAYOUT=index: Fix accessing freed memory when deleting \Noselect parents
Broken by
f5328d6f7e4a8e460c736fa0336f5766aa58abda
Timo Sirainen [Mon, 14 May 2018 20:59:02 +0000 (23:59 +0300)]
fts: Use fts_backend_is_uid_indexed() instead of fts_backend_get_last_uid()
If the highest UID currently known to the view is already indexed, we don't
care whether there are other higher UIDs that have already been indexed.