]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
3 years agodsync: Log reason why mailbox is synced with debug logging
Timo Sirainen [Fri, 18 Feb 2022 16:31:43 +0000 (18:31 +0200)] 
dsync: Log reason why mailbox is synced with debug logging

3 years agodsync: If modseqs aren't permanent, assume HIGHESTMODSEQ=0
Timo Sirainen [Mon, 21 Feb 2022 22:07:11 +0000 (23:07 +0100)] 
dsync: If modseqs aren't permanent, assume HIGHESTMODSEQ=0

Otherwise the HIGHESTMODSEQ is just whatever happens to be in the in-memory
view of the index, which most likely isn't the true HIGHESTMODSEQ. Using 0
makes it clear that the HIGHESTMODSEQ isn't valid and can't be used.

3 years agosubmission-login: submission-proxy - Do not include initial response in AUTH command...
Stephan Bosch [Sat, 12 Feb 2022 14:07:39 +0000 (15:07 +0100)] 
submission-login: submission-proxy - Do not include initial response in AUTH command if it is too long.

3 years agosubmission-login: submission-proxy - Rename local variable in proxy_send_login().
Stephan Bosch [Mon, 21 Feb 2022 20:36:55 +0000 (21:36 +0100)] 
submission-login: submission-proxy - Rename local variable in proxy_send_login().

3 years agolib-smtp: smtp-client - Move SMTP_BASE_LINE_LENGTH_LIMIT definition to smtp-common.h.
Stephan Bosch [Mon, 21 Feb 2022 20:32:45 +0000 (21:32 +0100)] 
lib-smtp: smtp-client - Move SMTP_BASE_LINE_LENGTH_LIMIT definition to smtp-common.h.

3 years agolib-smtp: smtp-client-connection - Rename SMTP_CLIENT_BASE_LINE_LENGTH_LIMIT to SMTP_...
Stephan Bosch [Mon, 21 Feb 2022 20:29:23 +0000 (21:29 +0100)] 
lib-smtp: smtp-client-connection - Rename SMTP_CLIENT_BASE_LINE_LENGTH_LIMIT to SMTP_BASE_LINE_LENGTH_LIMIT.

3 years agolib-smtp: smtp-client-connection - Fix typo in comment.
Stephan Bosch [Wed, 23 Feb 2022 13:21:02 +0000 (14:21 +0100)] 
lib-smtp: smtp-client-connection - Fix typo in comment.

3 years agodirector: Fix crashes caused by changing host tag
Timo Sirainen [Tue, 22 Feb 2022 13:14:20 +0000 (14:14 +0100)] 
director: Fix crashes caused by changing host tag

Fixes:
Panic: file director.c: line 1175 (director_move_user): assertion failed: (user->host->tag == host->tag)
Panic: file director-request.c: line 303 (director_request_continue_real): assertion failed: (user->host->tag == mail_tag)

3 years agodirector: Prevent loops where directors keep changing host tags
Timo Sirainen [Tue, 22 Feb 2022 13:10:02 +0000 (14:10 +0100)] 
director: Prevent loops where directors keep changing host tags

3 years agolib: If log prefix update can't be sent to log, exit with FATAL_LOGERROR
Timo Sirainen [Mon, 21 Feb 2022 11:47:29 +0000 (12:47 +0100)] 
lib: If log prefix update can't be sent to log, exit with FATAL_LOGERROR

3 years agolib: Fix losing log prefix or IP change when log process is busy
Timo Sirainen [Mon, 21 Feb 2022 11:39:02 +0000 (12:39 +0100)] 
lib: Fix losing log prefix or IP change when log process is busy

The fd for writing to log process is non-blocking. When sending options
to log process, it was done with write_full(), which stopped whenever
EAGAIN was returned. This error was simply ignored, and the logging code
thought that the prefix was successfully changed (or the IP was sent).

This mainly caused a problem when processes were reused and log process
was busy. The prefix update could have failed, and the following logging
would be using the previous session's log prefix, i.e. log lines could have
been logged for the wrong user/session.

Broken by 9372e48b702a3af5705785e08fbf47b0e37f2047

3 years agodict: Fix potential timeout leak at deinit
Timo Sirainen [Sun, 6 Feb 2022 13:20:08 +0000 (14:20 +0100)] 
dict: Fix potential timeout leak at deinit

The deinit code could still trigger proctitle refresh.

3 years agodict: Make sure proctitle refresh timeout goes to the main ioloop
Timo Sirainen [Tue, 22 Feb 2022 10:23:33 +0000 (11:23 +0100)] 
dict: Make sure proctitle refresh timeout goes to the main ioloop

In some situations it could have gone to dict_wait() ioloop, causing
timeout leaks or crashes.

3 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.

3 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)

3 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))

3 years agoanvil: connect_limit_deinit() - Free ident_pid_hash elements
Martti Rannanjärvi [Fri, 4 Feb 2022 02:30:48 +0000 (04:30 +0200)] 
anvil: connect_limit_deinit() - Free ident_pid_hash elements

3 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

3 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

3 years agostats: stats_metrics_remove_dynamic() - Free the removed metric
Martti Rannanjärvi [Thu, 3 Feb 2022 23:28:45 +0000 (01:28 +0200)] 
stats: stats_metrics_remove_dynamic() - Free the removed metric

3 years agostats: stats_metric_alloc() - Fix indentation on p_new() call
Martti Rannanjärvi [Thu, 3 Feb 2022 23:32:18 +0000 (01:32 +0200)] 
stats: stats_metric_alloc() - Fix indentation on p_new() call

3 years agoreplication: aggregator - Free replicator_connection content
Martti Rannanjärvi [Mon, 31 Jan 2022 10:42:46 +0000 (12:42 +0200)] 
replication: aggregator - Free replicator_connection content

3 years agomail-crypt: Fix for mail being wrongly storing encrypted via LMTP
Marco Bettini [Tue, 1 Feb 2022 13:22:31 +0000 (14:22 +0100)] 
mail-crypt: Fix for mail being wrongly storing encrypted via LMTP

If 1st recipient has mail_crypt_save_version=2,
and 2nd recipient has mail_crypt_save_version=0,
the mail for 2nd recipient is wrongly stored encrypted.

Same happens if 2nd recipient has mail_crypt disabled

3 years agomail-crypt: Remove "plugin disabled" texts from errors
Timo Sirainen [Tue, 31 Mar 2020 10:51:09 +0000 (13:51 +0300)] 
mail-crypt: Remove "plugin disabled" texts from errors

The plugin isn't just disabled, the user initialization fails entirely.

3 years agomail-crypt: Fix crash when plugin is already initialized, but not used for another...
Timo Sirainen [Tue, 31 Mar 2020 10:49:28 +0000 (13:49 +0300)] 
mail-crypt: Fix crash when plugin is already initialized, but not used for another user

Fixes:
Panic: Module context mail_crypt_user_module missing

3 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()

3 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

3 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.

3 years agolib-master: Fix deinit memory leak with process_shutdown_filter
sergey.kitov [Wed, 2 Feb 2022 15:01:49 +0000 (17:01 +0200)] 
lib-master: Fix deinit memory leak with process_shutdown_filter

3 years agoplugins/fts: Allow plugins to carry state across calls during search session
Marco Bettini [Fri, 17 Dec 2021 08:27:07 +0000 (09:27 +0100)] 
plugins/fts: Allow plugins to carry state across calls during search session

3 years agoauth: ldap: Drop partially saved results before retrying request
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.

3 years agoauth: ldap: If any requests were lost, reconnect to LDAP server
Timo Sirainen [Wed, 26 Jan 2022 14:03:27 +0000 (16:03 +0200)] 
auth: ldap: If any requests were lost, reconnect to LDAP server

3 years agoauth: ldap: If LDAP connection appears to be hanging, abort all old requests
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.

3 years agoauth: ldap: Reconnect to server if receiving unknown msgid
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.

3 years agoauth: ldap: Stop re-sending request after 3 disconnect+reconnects
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.

3 years agolmtp: proxy - Add per-connection counter to session_id
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.

3 years agolmtp: Simplify/clarify per-recipient session ID
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.

3 years agolib-smtp: server-transaction - Simplify/clarify transaction ID
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.

3 years agolib-smtp, lmtp: Add brackets to <session-id> in logging
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.

3 years agolmtp: proxy - Use recipient-specific session-id when logging the result
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.

3 years agolmtp: struct lmtp_recipient - Change all strings to const
Timo Sirainen [Tue, 1 Feb 2022 15:00:36 +0000 (16:00 +0100)] 
lmtp: struct lmtp_recipient - Change all strings to const

3 years agolib-storage: LAYOUT=index: Fix accessing freed memory when deleting \Noselect parents
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

3 years agolib-http: http_server_resource_create() - Remove unnecessary pool allocation
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()

3 years agolib-smtp: test-smtp-client-errors - Add test for succesful authentication with large...
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.

3 years agolib-smtp: smtp-client-connection - Fix authentication with multi-roundtrip SASL mecha...
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.

3 years agolib-smtp: test-smtp-client-errors - Add test for successful authentication.
Stephan Bosch [Mon, 24 Jan 2022 00:39:19 +0000 (01:39 +0100)] 
lib-smtp: test-smtp-client-errors - Add test for successful authentication.

3 years agolib-smtp: test-smtp-client-errors - Rename "authentication failed" test to "authentic...
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".

3 years agolib-smtp: smtp-client - Fix maximum line length to include CRLF.
Stephan Bosch [Fri, 28 Jan 2022 02:14:16 +0000 (03:14 +0100)] 
lib-smtp: smtp-client - Fix maximum line length to include CRLF.

3 years agolib-smtp: smtp-client-connection - Do not include initial response in AUTH command...
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.

3 years agolib-smtp: smtp-client-connection - Move auth cleanup to separate function.
Stephan Bosch [Fri, 21 Jan 2022 01:26:18 +0000 (02:26 +0100)] 
lib-smtp: smtp-client-connection - Move auth cleanup to separate function.

3 years agolib-sasl: dsasl-client - Make dsasl_client_free(&NULL) a no-op.
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.

3 years agolib-smtp: smtp-client-connection - Reformat comment.
Stephan Bosch [Fri, 21 Jan 2022 01:28:23 +0000 (02:28 +0100)] 
lib-smtp: smtp-client-connection - Reformat comment.

3 years agoindexer: Fix memory leak - worker_requests were never freed
Timo Sirainen [Wed, 26 Jan 2022 18:28:33 +0000 (19:28 +0100)] 
indexer: Fix memory leak - worker_requests were never freed

Broken by 141766b24f885259508ae39f2e18811018373bc7

3 years agoindexer: Fix memory leak - session IDs were never freed
Timo Sirainen [Tue, 25 Jan 2022 22:31:34 +0000 (23:31 +0100)] 
indexer: Fix memory leak - session IDs were never freed

Broken by a8dcd4e2332c73087e9b148d34259230a77edb28

3 years agolib-storage: Fix search query that only contains SEARCH_MAILBOX_GUID
Timo Sirainen [Wed, 1 Dec 2021 10:21:48 +0000 (12:21 +0200)] 
lib-storage: Fix search query that only contains SEARCH_MAILBOX_GUID

Fixes assert-crash in virtual mailbox:

Panic: file virtual-search.c: line 77 (virtual_search_get_records): assertion failed: (result != 0)

3 years agolib-master: Add process_shutdown_filter setting
sergey.kitov [Thu, 16 Dec 2021 09:49:24 +0000 (11:49 +0200)] 
lib-master: Add process_shutdown_filter setting

3 years agolib-master: Refactor parsing event filters from settings.
sergey.kitov [Thu, 16 Dec 2021 09:44:38 +0000 (11:44 +0200)] 
lib-master: Refactor parsing event filters from settings.

3 years agolib-master: Remove check for client->filter == NULL before event_filter_match().
sergey.kitov [Thu, 16 Dec 2021 09:38:53 +0000 (11:38 +0200)] 
lib-master: Remove check for client->filter == NULL before event_filter_match().

3 years agolib: Add check for NULL to event_filter_match().
sergey.kitov [Thu, 16 Dec 2021 09:38:08 +0000 (11:38 +0200)] 
lib: Add check for NULL to event_filter_match().

3 years agolib-master: Whitespace cleanup.
sergey.kitov [Wed, 15 Dec 2021 13:19:04 +0000 (15:19 +0200)] 
lib-master: Whitespace cleanup.

3 years agolib-storage: Emit event with process stat in mail_user_deinit().
sergey.kitov [Wed, 1 Dec 2021 11:35:12 +0000 (13:35 +0200)] 
lib-storage: Emit event with process stat in mail_user_deinit().

3 years agolib: Add event_add_int_non_zero()
sergey.kitov [Tue, 7 Dec 2021 14:58:43 +0000 (16:58 +0200)] 
lib: Add event_add_int_non_zero()

3 years agolib: Add functionality for acquiring process stat.
sergey.kitov [Wed, 1 Dec 2021 11:34:22 +0000 (13:34 +0200)] 
lib: Add functionality for acquiring process stat.

3 years agolib: add timeval_to_usecs()
sergey.kitov [Tue, 21 Dec 2021 08:47:54 +0000 (10:47 +0200)] 
lib: add timeval_to_usecs()

3 years agolib: Whitespace cleanup
sergey.kitov [Mon, 20 Dec 2021 14:17:54 +0000 (16:17 +0200)] 
lib: Whitespace cleanup

3 years agolib-storage: mailbox-list: index_list_rename_mailbox() - Support NO-NOSELECT
Markus Valentin [Fri, 14 Jan 2022 07:07:50 +0000 (08:07 +0100)] 
lib-storage: mailbox-list: index_list_rename_mailbox() - Support NO-NOSELECT

When NO-NOSELECT is configured delete parent mailboxes which are not
selectable or existant when renaming child mailboxes.

3 years agolib-storage: mailbox-list: index_list_delete_mailbox() - Support NO-NOSELECT
Markus Valentin [Fri, 14 Jan 2022 07:04:09 +0000 (08:04 +0100)] 
lib-storage: mailbox-list: index_list_delete_mailbox() - Support NO-NOSELECT

When NO-NOSELECT is configured delete parent mailboxes which are not
selectable or not existant when deleting child mailboxes.

3 years agodoveadm fetch/search: Use DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT
Timo Sirainen [Fri, 21 Jan 2022 14:31:04 +0000 (16:31 +0200)] 
doveadm fetch/search: Use DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT

These commands only write output to the client, so it's safe to stop
them if the client disconnects.

3 years agodoveadm: doveadm_mail_iter_init() - Add DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT
Timo Sirainen [Fri, 21 Jan 2022 14:29:48 +0000 (16:29 +0200)] 
doveadm: doveadm_mail_iter_init() - Add DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT

When this flag is used, the iteration is stopped if print ostream has
reported an error, i.e. doveadm-client has disconnected.

3 years agodoveadm: doveadm_mail_iter_init() - Change bool parameter to flags
Timo Sirainen [Fri, 21 Jan 2022 14:24:39 +0000 (16:24 +0200)] 
doveadm: doveadm_mail_iter_init() - Change bool parameter to flags

3 years agodoveadm-server: Fix hang when flushing print output and client disconnects
Timo Sirainen [Thu, 20 Jan 2022 13:16:51 +0000 (14:16 +0100)] 
doveadm-server: Fix hang when flushing print output and client disconnects

3 years agolib: ostream-multiplex - Call flush callbacks also when stream has failed
Timo Sirainen [Thu, 20 Jan 2022 13:13:48 +0000 (14:13 +0100)] 
lib: ostream-multiplex - Call flush callbacks also when stream has failed

It may be important for the flush callbacks to know when ostream has been
closed. This is a partial fix to prevent doveadm-server hanging when it's
printing lots of output and doveadm client disconnects.

3 years agodoveadm: Fix assert-crash when proxying causes print buffer to be flushed
Timo Sirainen [Thu, 20 Jan 2022 12:34:50 +0000 (13:34 +0100)] 
doveadm: Fix assert-crash when proxying causes print buffer to be flushed

Fixes:
Panic: file ioloop.c: line 865 (io_loop_destroy): assertion failed: (ioloop == current_ioloop)

3 years agoimapc: Fix doveadm copy with imapc
Markus Valentin [Wed, 22 Dec 2021 11:12:51 +0000 (12:12 +0100)] 
imapc: Fix doveadm copy with imapc

When copying to a mailbox with imapc it does not sync the destination
mailbox when opening. This created "Error: Syncing mailbox '$mailboxname'
failed: Internal error occurred." Prevent this error by checking for the
MAILBOX_FLAG_SAVEONLY flag which is used by doveadm to create the
destination mailbox. If that flag is set ignore that there was no initial
fetching done.

3 years agoconfigure.ac: Set dovecot version to 2.3.100.devel
Martti Rannanjärvi [Fri, 21 Jan 2022 10:12:52 +0000 (12:12 +0200)] 
configure.ac: Set dovecot version to 2.3.100.devel

This helps with version comparisons.

3 years agosubmission: submission-backend-relay - Make sure QUIT command yields 221 when relay...
Stephan Bosch [Fri, 14 Jan 2022 03:02:09 +0000 (04:02 +0100)] 
submission: submission-backend-relay - Make sure QUIT command yields 221 when relay connection is closed normally.

Before, it would sometimes erroneously treat the closing connection as a
"connection lost" 421 situation.

3 years agosubmission: submission-backend-relay - Fix segfault in QUIT command client-side destr...
Stephan Bosch [Fri, 14 Jan 2022 03:01:29 +0000 (04:01 +0100)] 
submission: submission-backend-relay - Fix segfault in QUIT command client-side destruction.

3 years agolib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete.
Stephan Bosch [Mon, 9 Nov 2020 01:29:04 +0000 (02:29 +0100)] 
lib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete.

A subsequent MAIL command could get reset in the middle otherwise. Before, it
only blocked input until a reply was submitted, but the transaction isn't reset
until the RSET command is complete (just before actually sending the reply)
which can cause issues when the subsequent MAIL command is already being
processed.

3 years agolib-smtp: smtp-server-cmd-helo - Stop processing pipeline until HELO/EHLO is complete.
Stephan Bosch [Sun, 8 Nov 2020 23:02:51 +0000 (00:02 +0100)] 
lib-smtp: smtp-server-cmd-helo - Stop processing pipeline until HELO/EHLO is complete.

A subsequent MAIL command could get reset in the middle otherwise. Before, it
only blocked input until a reply was submitted, but the transaction isn't reset
until the EHLO/HELO command is complete (just before actually sending the reply)
which can cause issues when the subsequent MAIL command is already
being processed.

3 years agolib-smtp: smtp-server-command - Add smtp_server_command_pipeline_block/unblock().
Stephan Bosch [Sun, 8 Nov 2020 02:58:06 +0000 (03:58 +0100)] 
lib-smtp: smtp-server-command - Add smtp_server_command_pipeline_block/unblock().

3 years agolib-smtp: smtp-client-transaction - Plug the command pipeline while transaction is...
Stephan Bosch [Mon, 10 Jan 2022 02:54:13 +0000 (03:54 +0100)] 
lib-smtp: smtp-client-transaction - Plug the command pipeline while transaction is pending.

This prevents commands submitted after creating the transaction from being
exectuted out-of-order before the transaction's MAIL command.

3 years agolib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after().
Stephan Bosch [Mon, 10 Jan 2022 02:53:41 +0000 (03:53 +0100)] 
lib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after().

3 years agolib-smtp: smtp-client-transaction - Prevent recursion for smtp_client_transaction_fai...
Stephan Bosch [Mon, 10 Jan 2022 00:18:56 +0000 (01:18 +0100)] 
lib-smtp: smtp-client-transaction - Prevent recursion for smtp_client_transaction_fail*().

3 years agolib-smtp: Reformat smtp-server-cmd-quit.c.
Stephan Bosch [Tue, 11 Jan 2022 01:05:26 +0000 (02:05 +0100)] 
lib-smtp: Reformat smtp-server-cmd-quit.c.

3 years agolib-storage: Don't delay setting mail event's log prefix
Timo Sirainen [Thu, 20 Jan 2022 10:42:57 +0000 (12:42 +0200)] 
lib-storage: Don't delay setting mail event's log prefix

This caused crashes if the mail event was kept referenced and used for
logging after struct mail was already freed. With the delayed mail event
creation the log prefix shouldn't be much of a performance problem, so just
set the prefix immediately.

Partially reverts bc68e1c368db746557829f67556f3c72943b7956.

3 years agoconfigure: Update version to 2.3.devel
Timo Sirainen [Wed, 19 Jan 2022 14:07:58 +0000 (15:07 +0100)] 
configure: Update version to 2.3.devel

3 years agoNEWS: Add news for 2.3.17.1 175/head
Aki Tuomi [Tue, 30 Nov 2021 10:47:52 +0000 (12:47 +0200)] 
NEWS: Add news for 2.3.17.1

3 years agoNEWS: Add news for 2.3.17
Aki Tuomi [Tue, 28 Sep 2021 09:40:29 +0000 (12:40 +0300)] 
NEWS: Add news for 2.3.17

3 years agolib-storage: Remove reason_code=mailbox:search
Timo Sirainen [Mon, 10 Jan 2022 17:46:12 +0000 (19:46 +0200)] 
lib-storage: Remove reason_code=mailbox:search

Continues the slow per-mail event removals started in
f3c568e3cbc113920bc029e07e56619589c6a26d.

Reverts 87cd6570a14b3f572fc6000f710df409371a4bcb

3 years agolmtp: lmtp-proxy - Add session ID to backend connection error replies.
Stephan Bosch [Mon, 13 Dec 2021 11:54:19 +0000 (12:54 +0100)] 
lmtp: lmtp-proxy - Add session ID to backend connection error replies.

3 years agosubmssion: submission-backend-relay - Avoid logging two errors about a connection...
Stephan Bosch [Mon, 13 Dec 2021 03:08:32 +0000 (04:08 +0100)] 
submssion: submission-backend-relay - Avoid logging two errors about a connection problem.

Earlier commit changed lib-smtp to consistently log an error for connection
problems, which causes a second error to occur for submission relay backend.
This is undesirable.

3 years agolmtp: lmtp-proxy - Add lmtp_verbose_replies setting.
Stephan Bosch [Tue, 7 Dec 2021 00:51:45 +0000 (01:51 +0100)] 
lmtp: lmtp-proxy - Add lmtp_verbose_replies setting.

It causes the proxy to return errors with full details in replies to the LMTP
client.

3 years agolmtp: lmtp-proxy - Split off lmtp_proxy_handle_connection_error().
Stephan Bosch [Mon, 27 Dec 2021 10:35:05 +0000 (11:35 +0100)] 
lmtp: lmtp-proxy - Split off lmtp_proxy_handle_connection_error().

3 years agolmtp: lmtp-proxy - Change proxy connection failure message make more sense.
Stephan Bosch [Tue, 4 Jan 2022 20:20:22 +0000 (21:20 +0100)] 
lmtp: lmtp-proxy - Change proxy connection failure message make more sense.

3 years agolib-smtp: smtp-client - Add verbose_user_errors setting.
Stephan Bosch [Tue, 7 Dec 2021 00:58:32 +0000 (01:58 +0100)] 
lib-smtp: smtp-client - Add verbose_user_errors setting.

It returns the detailed administrator errors as user error in the reply returned
to the calling application.

3 years agolib-smtp: smtp-client-connection - Log administrator connection failures at a single...
Stephan Bosch [Tue, 7 Dec 2021 00:51:18 +0000 (01:51 +0100)] 
lib-smtp: smtp-client-connection - Log administrator connection failures at a single place.

3 years agolib-smtp: smtp-client-connection - Consistently log an error for connection failures.
Stephan Bosch [Wed, 22 Dec 2021 23:59:45 +0000 (00:59 +0100)] 
lib-smtp: smtp-client-connection - Consistently log an error for connection failures.

3 years agolib-smtp: smtp-client-connection - Add definition for repeatedly used connection...
Stephan Bosch [Tue, 7 Dec 2021 01:44:58 +0000 (02:44 +0100)] 
lib-smtp: smtp-client-connection - Add definition for repeatedly used connection error.

3 years agolmtp: Reformat lmtp-proxy.c.
Stephan Bosch [Mon, 27 Dec 2021 10:24:36 +0000 (11:24 +0100)] 
lmtp: Reformat lmtp-proxy.c.

3 years agolib-smtp: Reformat smtp-client-connection.c.
Stephan Bosch [Tue, 7 Dec 2021 00:23:13 +0000 (01:23 +0100)] 
lib-smtp: Reformat smtp-client-connection.c.