]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
4 years agolib-storage: Drop struct mail_user_vfuncs.stats_fill API
Marco Bettini [Wed, 16 Feb 2022 10:52:41 +0000 (11:52 +0100)] 
lib-storage: Drop struct mail_user_vfuncs.stats_fill API

4 years agoauth: Drop auth-stat
Marco Bettini [Thu, 3 Feb 2022 14:59:21 +0000 (15:59 +0100)] 
auth: Drop auth-stat

4 years agolib-dict: Remove memcached
Marco Bettini [Thu, 10 Feb 2022 10:42:08 +0000 (11:42 +0100)] 
lib-dict: Remove memcached

4 years agolib-storage: Don't use cached message_parts while message is being parsed
Timo Sirainen [Mon, 25 Oct 2021 12:43:00 +0000 (15:43 +0300)] 
lib-storage: Don't use cached message_parts while message is being parsed

Finish the parsing instead. Otherwise there can be some confusion about
parsed_bodystructure* fields, which indicate that data->parts have the
bodystructure info while in reality data->parts came from cached fields
and they have no bodystructure info.

4 years agolib-storage: Reset bodystructure parsing state when reseting message_parts
Timo Sirainen [Mon, 25 Oct 2021 09:22:06 +0000 (12:22 +0300)] 
lib-storage: Reset bodystructure parsing state when reseting message_parts

Fixes:
Panic: file message-part-data.c: line 28 (message_part_data_is_plain_7bit): assertion failed: (data != NULL)

4 years agosubmission: Add submission_add_received_header setting
Aki Tuomi [Tue, 4 Jan 2022 08:30:53 +0000 (10:30 +0200)] 
submission: Add submission_add_received_header setting

4 years agodict-sql: Fix assert-crash if trying to rollback an open set/inc transaction
Timo Sirainen [Wed, 9 Feb 2022 21:12:19 +0000 (23:12 +0200)] 
dict-sql: Fix assert-crash if trying to rollback an open set/inc transaction

Fixes:
Panic: file dict-sql.c: line 911 (sql_dict_transaction_free): assertion failed: (!array_is_created(&ctx->prev_set))

4 years agolib-master: sig_term_try_kick_user() - Remove ignored sockaddr and addrlen
Martti Rannanjärvi [Tue, 15 Feb 2022 02:39:26 +0000 (04:39 +0200)] 
lib-master: sig_term_try_kick_user() - Remove ignored sockaddr and addrlen

Coverity complains about uninitialized addrlen, but no point in passing
these to accept() as the results are ignored.

4 years ago.gitignore: Ignore doc/man/doveadm-indexer.1
Martti Rannanjärvi [Mon, 14 Feb 2022 16:17:37 +0000 (18:17 +0200)] 
.gitignore: Ignore doc/man/doveadm-indexer.1

4 years agopop3: Fix empty command handling
Aki Tuomi [Mon, 14 Feb 2022 11:50:02 +0000 (13:50 +0200)] 
pop3: Fix empty command handling

If empty command is given, error out instead of trying to create event.
This fixes a crash caused by d2ab26be6038bd53b13a3ff18c403d6c192c1d91.

4 years agoman: Add doveadm-indexer
Timo Sirainen [Thu, 3 Feb 2022 16:20:57 +0000 (17:20 +0100)] 
man: Add doveadm-indexer

4 years agoimap, pop3, indexer-worker, submission: Add per-process admin socket listener
Timo Sirainen [Thu, 3 Feb 2022 15:33:06 +0000 (16:33 +0100)] 
imap, pop3, indexer-worker, submission: Add per-process admin socket listener

This enables race-free kicking using socket+SIGTERM.

4 years agolib-master: Add support for for race-free kicking of users with SIGTERM
Timo Sirainen [Wed, 2 Feb 2022 19:15:13 +0000 (20:15 +0100)] 
lib-master: Add support for for race-free kicking of users with SIGTERM

This works by anvil connecting to the per-process admin socket and sending
KICK-USER-SIGNAL command, followed by SIGTERM.

The receiving process usually gets the SIGTERM and attempts to accept() the
admin socket and read() the KICK-USER-SIGNAL command. If the command is for
a different user than is currently running, the signal is ignored.

If the SIGTERM is delayed, the generic admin connection needs to support
handling the KICK-USER-SIGNAL. This is done by blocking the SIGTERM early
while accessing the admin connection.

If the SIGTERM handler finds out that the admin socket was accepted but
a different command than KICK-USER-SIGNAL was found, this means a rather
race condition with another admin command. The process was most likely
going to be killed anyway, so just ignore the command and kill the process.

4 years agolib-master: Split off master_service_accept()
Timo Sirainen [Thu, 3 Feb 2022 15:10:40 +0000 (16:10 +0100)] 
lib-master: Split off master_service_accept()

4 years agolib-storage: Call master_service_set_current_user()
Timo Sirainen [Thu, 3 Feb 2022 15:24:39 +0000 (16:24 +0100)] 
lib-storage: Call master_service_set_current_user()

4 years agolib-master: Add master_service_set_current_user()
Timo Sirainen [Thu, 3 Feb 2022 15:24:11 +0000 (16:24 +0100)] 
lib-master: Add master_service_set_current_user()

4 years agoanvil: Add support for KICK_TYPE_SIGNAL_WITH_SOCKET
Timo Sirainen [Thu, 3 Feb 2022 15:20:26 +0000 (16:20 +0100)] 
anvil: Add support for KICK_TYPE_SIGNAL_WITH_SOCKET

This provides (mostly) race-free SIGTERM kick that doesn't kick the wrong
user.

4 years agolib: lib-signals - Add lib_signals_set_handler2() to set both immediate/delayed handlers
Timo Sirainen [Wed, 2 Feb 2022 18:41:16 +0000 (19:41 +0100)] 
lib: lib-signals - Add lib_signals_set_handler2() to set both immediate/delayed handlers

4 years agolib: lib-signals - Split off lib_signal_delayed()
Timo Sirainen [Wed, 2 Feb 2022 18:39:44 +0000 (19:39 +0100)] 
lib: lib-signals - Split off lib_signal_delayed()

4 years agolib: lib-signals - Check handler callbacks instead of LIBSIG_FLAG_DELAYED
Timo Sirainen [Wed, 2 Feb 2022 18:33:41 +0000 (19:33 +0100)] 
lib: lib-signals - Check handler callbacks instead of LIBSIG_FLAG_DELAYED

This is in preparation for allowing both handlers to be called.

4 years agolib: lib-signals - Split immediate and delayed handlers to separate fields
Timo Sirainen [Wed, 2 Feb 2022 18:31:18 +0000 (19:31 +0100)] 
lib: lib-signals - Split immediate and delayed handlers to separate fields

This is in preparation for allowing both handlers to be called.

4 years agoindexer-worker: Register indexing session to anvil
Timo Sirainen [Mon, 31 Jan 2022 21:51:43 +0000 (22:51 +0100)] 
indexer-worker: Register indexing session to anvil

4 years agoindexer-worker: master_connection_cmd_index() - Reduce indent
Timo Sirainen [Mon, 31 Jan 2022 21:48:10 +0000 (22:48 +0100)] 
indexer-worker: master_connection_cmd_index() - Reduce indent

4 years agoindexer-worker: Split off master_connection_cmd_index()
Timo Sirainen [Mon, 31 Jan 2022 21:46:46 +0000 (22:46 +0100)] 
indexer-worker: Split off master_connection_cmd_index()

4 years agoindexer: Use e_error() for error logging
Timo Sirainen [Thu, 27 Jan 2022 15:28:28 +0000 (16:28 +0100)] 
indexer: Use e_error() for error logging

4 years agoindexer: Change worker-connection API to return struct worker_connection
Timo Sirainen [Thu, 27 Jan 2022 14:52:07 +0000 (15:52 +0100)] 
indexer: Change worker-connection API to return struct worker_connection

4 years agoindexer: Send request immediately in worker_connection_try_create()
Timo Sirainen [Wed, 26 Jan 2022 18:36:12 +0000 (19:36 +0100)] 
indexer: Send request immediately in worker_connection_try_create()

This also guarantees that request_username is always set.

4 years agoindexer: worker_connection_try_create() - Remove unnecessary conn_r parameter
Timo Sirainen [Thu, 27 Jan 2022 14:57:51 +0000 (15:57 +0100)] 
indexer: worker_connection_try_create() - Remove unnecessary conn_r parameter

4 years agoindexer: worker-connection - Remove unnecessarily public functions
Timo Sirainen [Wed, 26 Jan 2022 18:19:53 +0000 (19:19 +0100)] 
indexer: worker-connection - Remove unnecessarily public functions

4 years agoindexer: Remove worker-pool wrapper
Timo Sirainen [Wed, 26 Jan 2022 18:16:27 +0000 (19:16 +0100)] 
indexer: Remove worker-pool wrapper

It wasn't actually performing any pooling functionality anymore, so it was
just causing confusion.

4 years agoindexer: Move functions from worker-pool to worker-connection
Timo Sirainen [Wed, 26 Jan 2022 18:10:16 +0000 (19:10 +0100)] 
indexer: Move functions from worker-pool to worker-connection

4 years agoindexer: Refactor worker_connection_create() to _try_create()
Timo Sirainen [Wed, 26 Jan 2022 18:02:37 +0000 (19:02 +0100)] 
indexer: Refactor worker_connection_create() to _try_create()

Moved connection limit checking and connect() error handling inside it.

4 years agoindexer: Send worker's PID in handshake
Timo Sirainen [Wed, 26 Jan 2022 17:50:47 +0000 (18:50 +0100)] 
indexer: Send worker's PID in handshake

4 years agodoveadm: Add indexer add/remove/list commands
Timo Sirainen [Tue, 25 Jan 2022 17:45:32 +0000 (18:45 +0100)] 
doveadm: Add indexer add/remove/list commands

4 years agodoveadm: Use doveadm_blocking_connect() for connecting to indexer socket
Timo Sirainen [Tue, 25 Jan 2022 17:19:01 +0000 (18:19 +0100)] 
doveadm: Use doveadm_blocking_connect() for connecting to indexer socket

This also adds extra error checking to make sure the command was accepted by
indexer.

4 years agodoveadm: Use doveadm_blocking_connect() for connecting to master socket
Timo Sirainen [Tue, 25 Jan 2022 17:18:24 +0000 (18:18 +0100)] 
doveadm: Use doveadm_blocking_connect() for connecting to master socket

4 years agodoveadm: Add doveadm_blocking_connect()
Timo Sirainen [Tue, 25 Jan 2022 17:16:32 +0000 (18:16 +0100)] 
doveadm: Add doveadm_blocking_connect()

This makes it easier for doveadm to connect to various connection API
compatible sockets.

4 years agolib: Add o_stream_create_fd_blocking()
Timo Sirainen [Tue, 25 Jan 2022 17:16:17 +0000 (18:16 +0100)] 
lib: Add o_stream_create_fd_blocking()

4 years agolib: connection - Improve "wrong socket type" error message
Timo Sirainen [Tue, 25 Jan 2022 17:15:16 +0000 (18:15 +0100)] 
lib: connection - Improve "wrong socket type" error message

Especially "Connected to wrong socket type" was confusing when it was logged
for incoming connections.

4 years agodoveadm index: Use blocking fd for indexer
Timo Sirainen [Tue, 25 Jan 2022 15:23:21 +0000 (16:23 +0100)] 
doveadm index: Use blocking fd for indexer

It was already assumed to be blocking, but the writes were so small that
usually it didn't matter.

4 years agoindexer: Add test-indexer-queue unit test
Timo Sirainen [Tue, 25 Jan 2022 22:13:36 +0000 (23:13 +0100)] 
indexer: Add test-indexer-queue unit test

4 years agoindexer: Add REMOVE command to remove requests from queue
Timo Sirainen [Tue, 25 Jan 2022 21:48:58 +0000 (22:48 +0100)] 
indexer: Add REMOVE command to remove requests from queue

4 years agoindexer: Split off a more generic indexer_queue_request_cancel()
Timo Sirainen [Tue, 25 Jan 2022 21:48:20 +0000 (22:48 +0100)] 
indexer: Split off a more generic indexer_queue_request_cancel()

This function can be used to cancel any request, not just the head of the
queue.

4 years agoindexer: Add LIST command to list all requests
Timo Sirainen [Tue, 25 Jan 2022 15:19:58 +0000 (16:19 +0100)] 
indexer: Add LIST command to list all requests

4 years agoindexer: Add indexer-queue iterator API
Timo Sirainen [Tue, 25 Jan 2022 15:19:47 +0000 (16:19 +0100)] 
indexer: Add indexer-queue iterator API

4 years agoindexer: Track user's indexing requests in a separate hash table
Timo Sirainen [Tue, 25 Jan 2022 21:38:44 +0000 (22:38 +0100)] 
indexer: Track user's indexing requests in a separate hash table

4 years agoindexer: Use a proper enum for request type
Timo Sirainen [Tue, 25 Jan 2022 15:05:41 +0000 (16:05 +0100)] 
indexer: Use a proper enum for request type

This cleans up the code a bit.

4 years agoindexer, global: Change protocol names in VERSION line
Timo Sirainen [Tue, 25 Jan 2022 14:53:14 +0000 (15:53 +0100)] 
indexer, global: Change protocol names in VERSION line

Dovecot IPC protocols generally use the -server and -client suffix.

4 years agoindexer: Fix handling indexing requests while the request is being worked on
Timo Sirainen [Tue, 25 Jan 2022 22:11:13 +0000 (23:11 +0100)] 
indexer: Fix handling indexing requests while the request is being worked on

The request was always prepended to the head of the queue, even if it wasn't
asked for.

4 years agofts: fts_indexer_cmd() - Fix wrong handshake
Timo Sirainen [Tue, 25 Jan 2022 17:12:56 +0000 (18:12 +0100)] 
fts: fts_indexer_cmd() - Fix wrong handshake

This was used only by fts-lucene to send OPTIMIZE command.

Broken by b4827bc2f2c99029e8524e0c57228124dd22de52

4 years agolib-storage: If mailbox list index refresh fails due to I/O error, don't try to handl...
Timo Sirainen [Wed, 15 Dec 2021 02:02:57 +0000 (03:02 +0100)] 
lib-storage: If mailbox list index refresh fails due to I/O error, don't try to handle corruption

The list index may not have the latest state, so corruption handling could
be breaking it further.

4 years agolib-storage: Fix caching mailbox list index refresh failure
Timo Sirainen [Wed, 15 Dec 2021 01:58:37 +0000 (02:58 +0100)] 
lib-storage: Fix caching mailbox list index refresh failure

If refresh fails (e.g. lock timeout), the following refresh within the same
ioloop_timeval succeeded. This could have resulted wrongly thinking a
mailbox didn't exist when it actually did.

4 years agolib-storage: Fix error handling if metadata lookup fails from mailbox list index
Timo Sirainen [Tue, 14 Dec 2021 21:47:50 +0000 (22:47 +0100)] 
lib-storage: Fix error handling if metadata lookup fails from mailbox list index

The error was handled as success. Fixes at least:
Panic: file mail-storage.c: line 2207 (mailbox_get_metadata): assertion failed: ((items & MAILBOX_METADATA_GUID) == 0 || !guid_128_is_empty(metadata_r->guid))

4 years agoimap: Remove X-CANCEL command
Karl Fleischmann [Wed, 9 Feb 2022 09:10:11 +0000 (10:10 +0100)] 
imap: Remove X-CANCEL command

This was a Dovecot-specific extension that was never used by any
clients. Having it available might expose bugs, so it's better to just
remove it.

4 years agoimap: Remove X-STATE command
Karl Fleischmann [Wed, 9 Feb 2022 09:04:36 +0000 (10:04 +0100)] 
imap: Remove X-STATE command

This was a Dovecot-specific extension that never even worked. It simply
answered "NO Command is disabled for now."

4 years agoindexer: indexer_client_status_callback() - Fix accessing freed memory
Marco Bettini [Fri, 11 Feb 2022 08:17:58 +0000 (09:17 +0100)] 
indexer: indexer_client_status_callback() - Fix accessing freed memory

Broken by a9683d7b3

4 years agolib-storage: imapc_mailbox_close() - Remove unprocessed untagged_fetch_contexts
Marco Bettini [Thu, 10 Feb 2022 16:37:59 +0000 (17:37 +0100)] 
lib-storage: imapc_mailbox_close() - Remove unprocessed untagged_fetch_contexts

4 years agolib-storage: Remove trainling spaces
Marco Bettini [Thu, 10 Feb 2022 15:26:10 +0000 (16:26 +0100)] 
lib-storage: Remove trainling spaces

4 years agodoveadm deduplicate: Simplify code by using doveadm_mail_iter_deinit_sync()
Timo Sirainen [Thu, 29 Apr 2021 18:09:01 +0000 (21:09 +0300)] 
doveadm deduplicate: Simplify code by using doveadm_mail_iter_deinit_sync()

4 years agodoveadm deduplicate: Optimize by deduplicating in a single transaction
Timo Sirainen [Thu, 29 Apr 2021 18:05:40 +0000 (21:05 +0300)] 
doveadm deduplicate: Optimize by deduplicating in a single transaction

4 years agoimapc: imapc_sync_handle_untagged_fetches() - Commit after adding the untagged fetch...
Markus Valentin [Wed, 2 Feb 2022 15:58:24 +0000 (16:58 +0100)] 
imapc: imapc_sync_handle_untagged_fetches() - Commit after adding the untagged fetch messages

The absence of the commit could have caused issues when
imapc_sync_finish() was not called as it left mbox->delayed_sync_trans
initialized but mbox->delayed_sync_view was NULL.

Broken by 55a8c2d294bb2f764209c7ce455d258b2b7506f5

4 years agodoveadm kick: Run anvil commands in a sub-ioloop
Timo Sirainen [Wed, 9 Feb 2022 08:04:01 +0000 (10:04 +0200)] 
doveadm kick: Run anvil commands in a sub-ioloop

Running in main ioloop can cause unexpected IO to happen, which can lead to
crashes.

4 years agoindexer: Fix memory leak on indexer timeout
Marco Bettini [Mon, 7 Feb 2022 15:04:41 +0000 (16:04 +0100)] 
indexer: Fix memory leak on indexer timeout

4 years agodoveadm: doveadm_who_iter_init() - Fix for handle leak on the fail path
Marco Bettini [Wed, 9 Feb 2022 13:20:47 +0000 (14:20 +0100)] 
doveadm: doveadm_who_iter_init() - Fix for handle leak on the fail path

4 years agoman: Update kick/who/proxy man pages
Timo Sirainen [Wed, 2 Feb 2022 13:31:39 +0000 (15:31 +0200)] 
man: Update kick/who/proxy man pages

4 years agoconfig: Log a warning if service ipc is used in config
Timo Sirainen [Tue, 1 Feb 2022 15:42:02 +0000 (16:42 +0100)] 
config: Log a warning if service ipc is used in config

4 years agolib-master, global: anvil_client_query() - Add type safety to callback's context
Timo Sirainen [Tue, 1 Feb 2022 15:39:57 +0000 (16:39 +0100)] 
lib-master, global: anvil_client_query() - Add type safety to callback's context

4 years agoglobal: Write pid_t as unsigned number where it might end up used with kill()
Timo Sirainen [Fri, 21 Jan 2022 09:27:47 +0000 (10:27 +0100)] 
global: Write pid_t as unsigned number where it might end up used with kill()

pid_t is signed, so usually it's been written to strings as signed long.
The actual pid values should never be negative, so practically it shouldn't
matter if it's written as signed or unsigned. However, due to bugs it's
theoretically possible that some garbage value gets written out.

kill() handles negative PIDs by killing entire process groups. By writing
pid_t as unsigned number we can prevent any (theoretical) issues where
kill() ends up killing entire process groups.

Change only some of the places to unsigned where the value might end up
used for kill(). Usually the signed writing is used only for log messages
where it might be more useful to see the negative numbers clearly
(especially -1 as unknown/unset might be used somewhere).

4 years agoanvil: Add command, user-kick and user-list counts to ps title
Timo Sirainen [Tue, 18 Jan 2022 14:34:25 +0000 (15:34 +0100)] 
anvil: Add command, user-kick and user-list counts to ps title

This may be useful in debugging any potential performance issues with the
anvil process.

4 years agolib-master, global: anvil_client_query() - Add timeout parameter
Timo Sirainen [Mon, 17 Jan 2022 14:29:41 +0000 (15:29 +0100)] 
lib-master, global: anvil_client_query() - Add timeout parameter

The default kick command timeout should be larger than the lookup timeout.

4 years agolib-master: anvil-client - Change timeout to be query-specific
Timo Sirainen [Mon, 17 Jan 2022 14:23:47 +0000 (15:23 +0100)] 
lib-master: anvil-client - Change timeout to be query-specific

4 years agoimap: Add client.unhibernated boolean
Timo Sirainen [Thu, 13 Jan 2022 14:54:18 +0000 (16:54 +0200)] 
imap: Add client.unhibernated boolean

4 years agolib-master, ipc: Remove all code related to ipc process
Timo Sirainen [Sun, 10 Oct 2021 00:23:13 +0000 (03:23 +0300)] 
lib-master, ipc: Remove all code related to ipc process

4 years agologin-common: Optimize kicking proxy connections by username
Timo Sirainen [Tue, 11 Jan 2022 09:40:27 +0000 (11:40 +0200)] 
login-common: Optimize kicking proxy connections by username

Track proxy connections by username in a hash table. Kicking only needs to
do a hash lookup from there to find the user's all sessions. Only detached
proxies are tracked this way. It's likely not worth the trouble to track
non-detached pending proxies in this way, since normally there shouldn't be
many of them.

4 years agologin-common: Remove support for ipc process commands
Timo Sirainen [Sun, 10 Oct 2021 00:24:54 +0000 (03:24 +0300)] 
login-common: Remove support for ipc process commands

These commands are now accessible via anvil / admin-client.

4 years agodirector: Kick users via anvil
Timo Sirainen [Sun, 10 Oct 2021 22:44:02 +0000 (01:44 +0300)] 
director: Kick users via anvil

4 years agodirector: Add user_director_hash field to passdb lookup replies
Timo Sirainen [Tue, 4 Jan 2022 16:03:41 +0000 (18:03 +0200)] 
director: Add user_director_hash field to passdb lookup replies

This can be used as alt-username to kick users by the hash.

4 years agodoveadm: Change "proxy list/kick" to be aliases to "who/kick" commands
Timo Sirainen [Sun, 10 Oct 2021 00:21:10 +0000 (03:21 +0300)] 
doveadm: Change "proxy list/kick" to be aliases to "who/kick" commands

4 years agodoveadm who: Rename "proto" field to "service"
Timo Sirainen [Tue, 18 Jan 2022 12:36:45 +0000 (13:36 +0100)] 
doveadm who: Rename "proto" field to "service"

That's what it now actually contains.

4 years agodoveadm kick: Add -h <dest-host> parameter
Timo Sirainen [Mon, 17 Jan 2022 11:18:00 +0000 (12:18 +0100)] 
doveadm kick: Add -h <dest-host> parameter

4 years agodoveadm who/kick: Handle number parameter as a username rather than IP address
Timo Sirainen [Wed, 12 Jan 2022 15:40:37 +0000 (17:40 +0200)] 
doveadm who/kick: Handle number parameter as a username rather than IP address

4 years agodoveadm kick: Print usage on bad parameters
Timo Sirainen [Wed, 12 Jan 2022 15:37:30 +0000 (17:37 +0200)] 
doveadm kick: Print usage on bad parameters

4 years agodoveadm kick: Change output format to only print number of connections kicked
Timo Sirainen [Thu, 13 Jan 2022 16:52:22 +0000 (18:52 +0200)] 
doveadm kick: Change output format to only print number of connections kicked

Having the list of usernames kicked is a bit excessive and it also hides
how many connections were kicked.

The output also wasn't correct when kicking based on alt-username, because
it only printed the alt-username rather than the real usernames.

4 years agodoveadm kick: Avoid listing all connections for simple kick filters
Timo Sirainen [Tue, 11 Jan 2022 12:25:18 +0000 (14:25 +0200)] 
doveadm kick: Avoid listing all connections for simple kick filters

4 years agodoveadm who/kick: Add support for -f <passdb-field> parameter
Timo Sirainen [Tue, 11 Jan 2022 12:17:46 +0000 (14:17 +0200)] 
doveadm who/kick: Add support for -f <passdb-field> parameter

This is similar to what "doveadm proxy kick" has, i.e. list/kick users
based on their alternative usernames (user_* passdb fields).

4 years agodoveadm kick: Rewrite to use anvil KICK-USER command
Timo Sirainen [Tue, 11 Jan 2022 10:25:18 +0000 (12:25 +0200)] 
doveadm kick: Rewrite to use anvil KICK-USER command

Removed the "force" parameter, because it's no longer necessary.

4 years agoimap-hibernate: Change anvil service from imap to imap-hibernate
Timo Sirainen [Tue, 25 Jan 2022 12:49:15 +0000 (13:49 +0100)] 
imap-hibernate: Change anvil service from imap to imap-hibernate

This is better now that anvil can internally separate the service from
protocol.

4 years agoanvil: Track service and protocol separately
Timo Sirainen [Tue, 18 Jan 2022 12:42:51 +0000 (13:42 +0100)] 
anvil: Track service and protocol separately

This way anvil can track e.g. "imap" and "imap-hibernate" services
separately, but still count them in the same "imap" protocol towards
mail_max_userip_connections.

4 years agoanvil: Add optional conn-guid parameter to KICK-USER command
Timo Sirainen [Tue, 11 Jan 2022 10:11:31 +0000 (12:11 +0200)] 
anvil: Add optional conn-guid parameter to KICK-USER command

4 years agoanvil: Implement KICK-USER and KICK-ALT-USER commands
Timo Sirainen [Wed, 8 Dec 2021 00:35:37 +0000 (02:35 +0200)] 
anvil: Implement KICK-USER and KICK-ALT-USER commands

4 years agoanvil: Change to run the process as root and without chroot
Timo Sirainen [Wed, 8 Dec 2021 00:05:46 +0000 (02:05 +0200)] 
anvil: Change to run the process as root and without chroot

The KICK-USER command needs to be able to connect to other processes' admin
sockets and to send signals to other processes.

4 years agoanvil: Add admin_cmd_send()
Timo Sirainen [Mon, 3 Jan 2022 17:38:54 +0000 (19:38 +0200)] 
anvil: Add admin_cmd_send()

This can use either incoming or outgoing connections for sending the
command.

4 years agoanvil: Add admin-client API with connection pooling
Timo Sirainen [Mon, 27 Dec 2021 15:03:37 +0000 (17:03 +0200)] 
anvil: Add admin-client API with connection pooling

4 years agoanvil: Add support for sending commands to anvil client connections
Timo Sirainen [Mon, 3 Jan 2022 16:43:04 +0000 (18:43 +0200)] 
anvil: Add support for sending commands to anvil client connections

4 years agoanvil: Add anvil_connection_find()
Timo Sirainen [Mon, 27 Dec 2021 15:42:27 +0000 (17:42 +0200)] 
anvil: Add anvil_connection_find()

4 years agologin-common: Implement KICK-USER incoming anvil command
Timo Sirainen [Wed, 5 Jan 2022 22:17:42 +0000 (00:17 +0200)] 
login-common: Implement KICK-USER incoming anvil command

4 years agolib-master: anvil-client - Add support for handling incoming commands
Timo Sirainen [Tue, 4 Jan 2022 16:28:22 +0000 (18:28 +0200)] 
lib-master: anvil-client - Add support for handling incoming commands

4 years agolib-master, login-common: anvil_client_init() - Change callback to struct of callbacks
Timo Sirainen [Thu, 13 Jan 2022 15:17:28 +0000 (17:17 +0200)] 
lib-master, login-common: anvil_client_init() - Change callback to struct of callbacks

4 years agoanvil: Change VERSION line to be bidirectional and add -client/server suffix
Timo Sirainen [Wed, 5 Jan 2022 21:36:45 +0000 (23:36 +0200)] 
anvil: Change VERSION line to be bidirectional and add -client/server suffix

This makes it more similar to other internal protocols, and allows using
connection API more easily.

4 years agolib-master: anvil-client - Convert to connection API
Timo Sirainen [Wed, 5 Jan 2022 22:00:21 +0000 (00:00 +0200)] 
lib-master: anvil-client - Convert to connection API