]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
6 years agolib-smtp: common: Add smtp_proxy_data_merge().
Stephan Bosch [Mon, 3 Dec 2018 17:45:36 +0000 (18:45 +0100)] 
lib-smtp: common: Add smtp_proxy_data_merge().

6 years agolib-smtp: client: Drop smtp_client_command_mail_submit_after().
Stephan Bosch [Mon, 3 Dec 2018 17:45:35 +0000 (18:45 +0100)] 
lib-smtp: client: Drop smtp_client_command_mail_submit_after().

It is not used.

6 years agolib-smtp: client: connection: Fix copying of PROTO XCLIENT field in proxy data.
Stephan Bosch [Mon, 3 Dec 2018 17:45:24 +0000 (18:45 +0100)] 
lib-smtp: client: connection: Fix copying of PROTO XCLIENT field in proxy data.

6 years agolib-smtp: syntax: Fix smtp_ehlo_line_parse() to also record the last parameter.
Stephan Bosch [Mon, 3 Dec 2018 17:45:17 +0000 (18:45 +0100)] 
lib-smtp: syntax: Fix smtp_ehlo_line_parse() to also record the last parameter.

6 years agosubmission: Install header files
Timo Sirainen [Fri, 9 Nov 2018 11:03:43 +0000 (13:03 +0200)] 
submission: Install header files

This allows creating external submission plugins.

6 years agolib-fs: If fs_get_metadata() isn't implemented, return internal metadata anyway
Timo Sirainen [Wed, 31 Oct 2018 15:19:42 +0000 (17:19 +0200)] 
lib-fs: If fs_get_metadata() isn't implemented, return internal metadata anyway

The metadata is sometimes used for transferring internal metadata within the
files. This metadata isn't stored to disk. So even if the fs driver doesn't
support metadata at all, it should still be possible to get/set the internal
metadata. Setting it was already possible, but getting wasn't.

6 years agosubmission: relay backend: Forward a (possibly multi-line) 421 reply from relay serve...
Stephan Bosch [Fri, 2 Nov 2018 09:39:17 +0000 (10:39 +0100)] 
submission: relay backend: Forward a (possibly multi-line) 421 reply from relay server to the client.

Before, it substituted a generic 421 error reply, which is far less helpful.

6 years agosubmission: client: Properly handle a multi-line reason string in client_disconnect().
Stephan Bosch [Fri, 2 Nov 2018 09:37:22 +0000 (10:37 +0100)] 
submission: client: Properly handle a multi-line reason string in client_disconnect().

Pass the multi-line string to smtp_server_connection_terminate(), yet log it as a single line.

6 years agolib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_conn...
Stephan Bosch [Fri, 2 Nov 2018 09:26:53 +0000 (10:26 +0100)] 
lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_terminate().

6 years agolib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_conn...
Stephan Bosch [Fri, 2 Nov 2018 09:43:11 +0000 (10:43 +0100)] 
lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_disconnect().

Convert it to a single line string.

6 years agolib-smtp: server: connection: Add smtp_server_connection_reply_lines().
Stephan Bosch [Fri, 2 Nov 2018 09:23:42 +0000 (10:23 +0100)] 
lib-smtp: server: connection: Add smtp_server_connection_reply_lines().

This function immediately sends a reply on the connection with the indicated
status, enhanced code and text lines.

6 years agolib-smtp: server: connection: Add debug messages for protocol elements sent outside...
Stephan Bosch [Fri, 2 Nov 2018 09:17:30 +0000 (10:17 +0100)] 
lib-smtp: server: connection: Add debug messages for protocol elements sent outside the normal reply API.

6 years agolib-smtp: reply: Add smtp_reply_get_text_lines_omit_prefix().
Stephan Bosch [Fri, 2 Nov 2018 09:14:57 +0000 (10:14 +0100)] 
lib-smtp: reply: Add smtp_reply_get_text_lines_omit_prefix().

This returns a string array of the lines in the reply, omitting the prefix (the
first word), which is usually a "<domain>" value.

6 years agolib-smtp: reply: Make parsing enhanced status codes available as a separate function.
Stephan Bosch [Fri, 2 Nov 2018 09:11:35 +0000 (10:11 +0100)] 
lib-smtp: reply: Make parsing enhanced status codes available as a separate function.

6 years agolib: strfuncs: Add t_str_oneline().
Stephan Bosch [Fri, 2 Nov 2018 09:12:20 +0000 (10:12 +0100)] 
lib: strfuncs: Add t_str_oneline().

This puts the string on a single line by replacing all newlines with spaces and
dropping any carriage returns

6 years agolib-smtp: client: transaction: Hold a reference to the transaction while calling...
Stephan Bosch [Fri, 2 Nov 2018 09:08:26 +0000 (10:08 +0100)] 
lib-smtp: client: transaction: Hold a reference to the transaction while calling the RCPT command callback.

This fixes memory problems when the callback inadvertently gets the transaction destroyed.

6 years agolib-smtp: server: recipient: Hold a reference to the recipient while calling a non...
Stephan Bosch [Thu, 1 Nov 2018 00:14:50 +0000 (01:14 +0100)] 
lib-smtp: server: recipient: Hold a reference to the recipient while calling a non-destroy hook.

Prevents memory problems when the hook inadvertently gets the recipient
destroyed. Unlike the server command, this is not strictly necessary for the
recipient object, but we add this anyway to prevent future problems when the
recipient implementation becomes more complex (e.g. with additional hooks).

6 years agolib-smtp: server: recipient: Prevent reference counting from within destroy hook.
Stephan Bosch [Wed, 31 Oct 2018 23:58:47 +0000 (00:58 +0100)] 
lib-smtp: server: recipient: Prevent reference counting from within destroy hook.

6 years agolib-smtp: server: recipient: Add reference counting.
Stephan Bosch [Thu, 1 Nov 2018 00:25:10 +0000 (01:25 +0100)] 
lib-smtp: server: recipient: Add reference counting.

Unlike the server command, this is not strictly necessary for the recipient
object, but we add this anyway to prevent future problems when the recipient
implementation becomes more complex.

6 years agolib-smtp: server: Make sure command object is not used after it is destroyed in hook.
Stephan Bosch [Wed, 31 Oct 2018 23:12:03 +0000 (00:12 +0100)] 
lib-smtp: server: Make sure command object is not used after it is destroyed in hook.

6 years agolib-smtp: server: command: Hold connection reference while calling replied hook.
Stephan Bosch [Thu, 1 Nov 2018 00:40:10 +0000 (01:40 +0100)] 
lib-smtp: server: command: Hold connection reference while calling replied hook.

6 years agolib-smtp: server: command: Move core of smtp_server_command_submit_reply() into a...
Stephan Bosch [Wed, 31 Oct 2018 23:44:10 +0000 (00:44 +0100)] 
lib-smtp: server: command: Move core of smtp_server_command_submit_reply() into a separate function.

Makes the next changes easier.

6 years agolib-smtp: server: command: Hold a reference to the command while calling a non-destro...
Stephan Bosch [Wed, 31 Oct 2018 23:39:21 +0000 (00:39 +0100)] 
lib-smtp: server: command: Hold a reference to the command while calling a non-destroy hook.

Prevents memory problems when the hook inadvertently gets the command destroyed.

6 years agolib-smtp: server: command: Prevent reference counting from within destroy hook.
Stephan Bosch [Wed, 31 Oct 2018 23:27:50 +0000 (00:27 +0100)] 
lib-smtp: server: command: Prevent reference counting from within destroy hook.

6 years agolib-smtp: Consistently use signed integer for reference counters.
Stephan Bosch [Thu, 1 Nov 2018 21:22:34 +0000 (22:22 +0100)] 
lib-smtp: Consistently use signed integer for reference counters.

6 years agosubmission: relay backend: Add assertion in backend_relay_handle_relay_reply() to...
Stephan Bosch [Tue, 30 Oct 2018 08:53:07 +0000 (09:53 +0100)] 
submission: relay backend: Add assertion in backend_relay_handle_relay_reply() to address compiler warning.

Assert that the error message is assinged when the result is FALSE.

6 years agosubmission: relay backend: In backend_relay_handle_relay_reply(): Only determine...
Stephan Bosch [Tue, 30 Oct 2018 08:57:31 +0000 (09:57 +0100)] 
submission: relay backend: In backend_relay_handle_relay_reply(): Only determine error detail when it is used.

6 years agosubmission: Make include directory available to external plugins.
Stephan Bosch [Mon, 29 Oct 2018 00:36:43 +0000 (01:36 +0100)] 
submission: Make include directory available to external plugins.

6 years agosubmission: relay backend: Allow creating the client transaction with specific flags.
Stephan Bosch [Thu, 25 Oct 2018 21:50:55 +0000 (23:50 +0200)] 
submission: relay backend: Allow creating the client transaction with specific flags.

6 years agolib-smtp: client: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP...
Stephan Bosch [Thu, 18 Oct 2018 00:15:07 +0000 (02:15 +0200)] 
lib-smtp: client: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions.

This is non-standard.

6 years agosubmission: Add support for module contexts to backend.
Stephan Bosch [Sat, 27 Oct 2018 10:20:01 +0000 (12:20 +0200)] 
submission: Add support for module contexts to backend.

6 years agosubmission: Allocate each backend on its own pool.
Stephan Bosch [Sat, 27 Oct 2018 09:56:59 +0000 (11:56 +0200)] 
submission: Allocate each backend on its own pool.

This allows allocating per-backend module data.

6 years agosubmission: Add support for modifying the transaction path and parameters in the...
Stephan Bosch [Fri, 26 Oct 2018 19:00:00 +0000 (21:00 +0200)] 
submission: Add support for modifying the transaction path and parameters in the trans_start backend vfunc.

To keep the changes limited to a particular backend, the server transaction
cannot be modified. Also, creating a mock server transaction and passing it on
is not a good idea, since it is not a simple container struct.

6 years agosubmission: Add backend flag indicating whether the backend is ready.
Stephan Bosch [Fri, 26 Oct 2018 15:00:32 +0000 (17:00 +0200)] 
submission: Add backend flag indicating whether the backend is ready.

This flag is set just before the ready() vfunc is called.

6 years agosubmission: Add backend vfunc called when the backend is ready.
Stephan Bosch [Thu, 18 Oct 2018 21:35:05 +0000 (23:35 +0200)] 
submission: Add backend vfunc called when the backend is ready.

For a relay backend, this means that the connection is fully connected and
handshaked. For any backend it means the capabilities are known (and passed as a
parameter to the ready function).

6 years agolib-smtp: params: Explicitly allow smtp_params_*_add_extra() value parameter to be...
Stephan Bosch [Thu, 25 Oct 2018 21:50:22 +0000 (23:50 +0200)] 
lib-smtp: params: Explicitly allow smtp_params_*_add_extra() value parameter to be NULL.

6 years agosubmission: relay backend: Allow recording extra (non-standard) capabilities.
Stephan Bosch [Tue, 16 Oct 2018 23:34:54 +0000 (01:34 +0200)] 
submission: relay backend: Allow recording extra (non-standard) capabilities.

6 years agosubmission: relay backend: Provide access to the client connection and transaction...
Stephan Bosch [Tue, 16 Oct 2018 21:58:23 +0000 (23:58 +0200)] 
submission: relay backend: Provide access to the client connection and transaction for plugins.

6 years agolib-smtp: client: Add support for recording extra (non-standard) capabilities from...
Stephan Bosch [Tue, 16 Oct 2018 22:59:02 +0000 (00:59 +0200)] 
lib-smtp: client: Add support for recording extra (non-standard) capabilities from server.

6 years agolib-smtp: client: connection: Consolidate capability data into a struct.
Stephan Bosch [Tue, 16 Oct 2018 23:05:07 +0000 (01:05 +0200)] 
lib-smtp: client: connection: Consolidate capability data into a struct.

Allows clearing it reliably.

6 years agosubmission: Clarify the behavior of command handlers and the requirements for overrid...
Stephan Bosch [Fri, 26 Oct 2018 20:26:53 +0000 (22:26 +0200)] 
submission: Clarify the behavior of command handlers and the requirements for overriding them.

6 years agosubmission: Use the new smtp_server_cmd_noop_reply_success() function.
Stephan Bosch [Thu, 25 Oct 2018 19:02:46 +0000 (21:02 +0200)] 
submission: Use the new smtp_server_cmd_noop_reply_success() function.

6 years agolmtp: local: Use the new smtp_server_cmd_rcpt_reply_success() function.
Stephan Bosch [Mon, 12 Mar 2018 01:59:28 +0000 (02:59 +0100)] 
lmtp: local: Use the new smtp_server_cmd_rcpt_reply_success() function.

6 years agolib-smtp: server: NOOP command: Implement smtp_server_cmd_noop_reply_success() for...
Stephan Bosch [Thu, 25 Oct 2018 18:29:30 +0000 (20:29 +0200)] 
lib-smtp: server: NOOP command: Implement smtp_server_cmd_noop_reply_success() for sending default success reply.

6 years agolib-smtp: server: RSET command: Implement smtp_server_cmd_rset_reply_success() for...
Stephan Bosch [Thu, 25 Oct 2018 18:38:26 +0000 (20:38 +0200)] 
lib-smtp: server: RSET command: Implement smtp_server_cmd_rset_reply_success() for sending default success reply.

6 years agolib-smtp: server: RCPT command: Implement smtp_server_cmd_rcpt_reply_success() for...
Stephan Bosch [Mon, 12 Mar 2018 00:03:24 +0000 (01:03 +0100)] 
lib-smtp: server: RCPT command: Implement smtp_server_cmd_rcpt_reply_success() for sending default success reply.

6 years agolib-smtp: server: MAIL command: Implement smtp_server_cmd_mail_reply_success() for...
Stephan Bosch [Mon, 12 Mar 2018 00:01:46 +0000 (01:01 +0100)] 
lib-smtp: server: MAIL command: Implement smtp_server_cmd_mail_reply_success() for sending default success reply.

6 years agosubmission: relay backend: Always reset the trans_started flag upon trans_free().
Stephan Bosch [Sun, 28 Oct 2018 11:08:50 +0000 (12:08 +0100)] 
submission: relay backend: Always reset the trans_started flag upon trans_free().

6 years agosubmission: backend: Properly reset the trans_started flag upon trans_free().
Stephan Bosch [Sun, 28 Oct 2018 11:08:13 +0000 (12:08 +0100)] 
submission: backend: Properly reset the trans_started flag upon trans_free().

6 years agodoc: example-config: Document the new submission_backend_capabilities setting.
Stephan Bosch [Fri, 19 Oct 2018 15:39:36 +0000 (17:39 +0200)] 
doc: example-config: Document the new submission_backend_capabilities setting.

6 years agosubmission,submission-login: Implicitly enable CHUNKING when submission_backend_capab...
Stephan Bosch [Mon, 29 Oct 2018 16:27:17 +0000 (17:27 +0100)] 
submission,submission-login: Implicitly enable CHUNKING when submission_backend_capabilities setting includes BINARYMIME.

BINARYMIME requires CHUNKING support and we should not expect administrators to
always be aware of that fact.

6 years agosubmission: relay backend: VRFY command: Avoid forwarding 500 and 502 replies back...
Stephan Bosch [Fri, 19 Oct 2018 15:12:10 +0000 (17:12 +0200)] 
submission: relay backend: VRFY command: Avoid forwarding 500 and 502 replies back to client.

These are in fact non-standard for VRFY and indicate that VRFY support is
disabled, which is not allowed by the specification. Instead, we now substitute
the default 252 response.

6 years agolib-smtp: server: VRFY command: Implement smtp_server_cmd_reply_default() for sending...
Stephan Bosch [Fri, 19 Oct 2018 15:02:08 +0000 (17:02 +0200)] 
lib-smtp: server: VRFY command: Implement smtp_server_cmd_reply_default() for sending default reply.

6 years agosubmission,submission-login: Omit listing VRFY capability if the backend provides...
Stephan Bosch [Fri, 19 Oct 2018 14:42:41 +0000 (16:42 +0200)] 
submission,submission-login: Omit listing VRFY capability if the backend provides no explicit support.

6 years agosubmission-login: Use the submission_backend_capabilities setting to compose the...
Stephan Bosch [Fri, 19 Oct 2018 09:15:50 +0000 (11:15 +0200)] 
submission-login: Use the submission_backend_capabilities setting to compose the EHLO reply when configured.

This way, the EHLO response prior to AUTH will better match the EHLO response after AUTH.

6 years agosubmission-login: Add the VRFY capability to the EHLO reply.
Stephan Bosch [Fri, 19 Oct 2018 09:24:35 +0000 (11:24 +0200)] 
submission-login: Add the VRFY capability to the EHLO reply.

The post-login service does it too.

6 years agosubmission: relay backend: Fix non-transaction commands to work when submission_backe...
Stephan Bosch [Thu, 18 Oct 2018 22:35:53 +0000 (00:35 +0200)] 
submission: relay backend: Fix non-transaction commands to work when submission_backend_capabilities is configured.

When submission_backend_capabilities is configured, the backend is not started
until the first transaction is started. But for commands that should work
outside the transaction, the backend should also be started, which was not the
case before this fix.

6 years agosubmission: backends: Set the started flag before calling the backend start vfunc.
Stephan Bosch [Thu, 18 Oct 2018 22:01:40 +0000 (00:01 +0200)] 
submission: backends: Set the started flag before calling the backend start vfunc.

This prevents recursive mishaps.

6 years agolib-fts: test-fts-tokenizer: Verify fts_tokenizer_create() return value
Timo Sirainen [Thu, 18 Oct 2018 10:55:53 +0000 (13:55 +0300)] 
lib-fts: test-fts-tokenizer: Verify fts_tokenizer_create() return value

6 years agosubmission: relay backend: Handle the LMTP per-RCPT DATA reply behavior when enabled.
Stephan Bosch [Fri, 12 Oct 2018 07:45:42 +0000 (09:45 +0200)] 
submission: relay backend: Handle the LMTP per-RCPT DATA reply behavior when enabled.

Without this change, enabling the per-RCPT DATA reply behavior on the server
side will not have the desired effect.

6 years agosubmission: relay backend: Log an error when relayed commands fail with connection...
Stephan Bosch [Wed, 17 Oct 2018 23:39:05 +0000 (01:39 +0200)] 
submission: relay backend: Log an error when relayed commands fail with connection-related errors.

Errors sent by the remote server are handled by the command reply handler and
are logged using i_info() where relevant.

6 years agosubmission: relay backend: Fix comment in RCPT command code.
Stephan Bosch [Fri, 12 Oct 2018 08:34:21 +0000 (10:34 +0200)] 
submission: relay backend: Fix comment in RCPT command code.

6 years agosubmission: recipient: Add field for associating backend context.
Stephan Bosch [Fri, 12 Oct 2018 07:42:29 +0000 (09:42 +0200)] 
submission: recipient: Add field for associating backend context.

6 years agolmtp: DATA command: Assert that the server transaction flags are correct for LMTP.
Stephan Bosch [Fri, 12 Oct 2018 07:34:56 +0000 (09:34 +0200)] 
lmtp: DATA command: Assert that the server transaction flags are correct for LMTP.

6 years agolib-smtp: server: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP...
Stephan Bosch [Sat, 6 Oct 2018 09:21:35 +0000 (11:21 +0200)] 
lib-smtp: server: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions.

This is non-standard.

6 years agosubmission: relay backend: Do not close the client connection for failure in a non...
Stephan Bosch [Fri, 12 Oct 2018 07:23:27 +0000 (09:23 +0200)] 
submission: relay backend: Do not close the client connection for failure in a non-default backend.

Adjusts the backend API to remember the failure until the present transaction is
reset. In the mean time, any commands issued to the backend are failed
immediately. In contrast, failure on the default backend will cause the client
connection to be closed, like before.

6 years agosubmission: relay backend: Use (potentially) modified reply after backend_relay_handl...
Stephan Bosch [Fri, 12 Oct 2018 08:01:12 +0000 (10:01 +0200)] 
submission: relay backend: Use (potentially) modified reply after backend_relay_handle_relay_reply().

Before, it sometimes still referred to the original reply struct from the client
callback.

6 years agosubmission: relay backend: Use smtp_reply_is_success() to evaluate reply form relay.
Stephan Bosch [Fri, 12 Oct 2018 08:07:14 +0000 (10:07 +0200)] 
submission: relay backend: Use smtp_reply_is_success() to evaluate reply form relay.

Before, it evaluated the reply status directly.

6 years agolib-smtp: server: Add smtp_server_command_get_reply_count().
Stephan Bosch [Sun, 14 Oct 2018 12:23:32 +0000 (14:23 +0200)] 
lib-smtp: server: Add smtp_server_command_get_reply_count().

Returns the number of replies expected to the command.

6 years agolib-smtp: client: Make smtp_client_transaction_unref(NULL) a no-op.
Stephan Bosch [Sun, 14 Oct 2018 11:45:56 +0000 (13:45 +0200)] 
lib-smtp: client: Make smtp_client_transaction_unref(NULL) a no-op.

6 years agolib-smtp: client: Make smtp_client_transaction_destroy(NULL) a no-op.
Stephan Bosch [Sun, 14 Oct 2018 11:43:42 +0000 (13:43 +0200)] 
lib-smtp: client: Make smtp_client_transaction_destroy(NULL) a no-op.

6 years agosubmission: Allocate recipients for the client transaction on the server recipient...
Stephan Bosch [Wed, 10 Oct 2018 22:50:26 +0000 (00:50 +0200)] 
submission: Allocate recipients for the client transaction on the server recipient pool.

6 years agolmtp: proxy: Allocate recipients for the client transaction on the server recipient...
Stephan Bosch [Wed, 10 Oct 2018 22:49:44 +0000 (00:49 +0200)] 
lmtp: proxy: Allocate recipients for the client transaction on the server recipient pool.

6 years agolib-smtp: client: transaction: Add alternative function for adding a recipient on...
Stephan Bosch [Wed, 10 Oct 2018 22:49:33 +0000 (00:49 +0200)] 
lib-smtp: client: transaction: Add alternative function for adding a recipient on an application-provided pool.

This allows modifying the recipient object beyond approval. Before, it was
always moved to the transaction pool, thereby invalidating the original returned
pointer. This way, the data_calback and context can be set at a later time,
e.g. when the DATA command is being processed. This makes a choice between
LMTP-style and SMTP-style replies to the DATA command a bit easier to handle.
Also, the recipient is entirely allocated on a single pool between the client
and server side, which should improve memory consumption a little. As a bonus,
this removes the need to have dummy DATA callbacks.

6 years agolib-smtp: client: transaction: Fix and amend a few comments in the header.
Stephan Bosch [Fri, 12 Oct 2018 08:42:55 +0000 (10:42 +0200)] 
lib-smtp: client: transaction: Fix and amend a few comments in the header.

6 years agolib-smtp: client: Remove unused "failed" field from struct smtp_client_transaction_mail.
Stephan Bosch [Fri, 12 Oct 2018 07:24:06 +0000 (09:24 +0200)] 
lib-smtp: client: Remove unused "failed" field from struct smtp_client_transaction_mail.

6 years agosubmission: Fix starting secondary backends created before the server-side transactio...
Stephan Bosch [Sun, 14 Oct 2018 20:34:50 +0000 (22:34 +0200)] 
submission: Fix starting secondary backends created before the server-side transaction is fully created.

Record an array of those backends and start them once the transaction is
created. Before, this was implemented using the array of approved recipients
(which each point to their backend). However, this does not work, since there
can be no approved recipients when there is no server-side transaction yet.

6 years agosubmission: relay backend: Properly manage the trans_started flag.
Stephan Bosch [Sun, 14 Oct 2018 21:00:11 +0000 (23:00 +0200)] 
submission: relay backend: Properly manage the trans_started flag.

Sometimes it was not set at all. This didn't lead to problems in most cases, but
this was at least confusing while debugging. Also, the flag is set before the
client transaction is actually started, making sure (future) recursive problems
will not occur.

6 years agosubmission: relay backend: Set the immediate for the client transaction no matter...
Stephan Bosch [Sun, 14 Oct 2018 20:48:58 +0000 (22:48 +0200)] 
submission: relay backend: Set the immediate for the client transaction no matter where it is created.

Forgot a few instances.

6 years agosubmission: RCPT command: Move starting the backend transaction from submission-comma...
Stephan Bosch [Sun, 14 Oct 2018 20:42:36 +0000 (22:42 +0200)] 
submission: RCPT command: Move starting the backend transaction from submission-commands.c to submission-backend.c.

This way, the transaction is only started from RCPT when the backend needs it at this point.

6 years agosubmission: relay backend: Add support for relaying to a unix socket.
Stephan Bosch [Sun, 23 Sep 2018 17:53:07 +0000 (19:53 +0200)] 
submission: relay backend: Add support for relaying to a unix socket.

6 years agolib-smtp: client: Allow connecting to SMTP/LMTP services offered through unix sockets.
Stephan Bosch [Sun, 23 Sep 2018 17:43:05 +0000 (19:43 +0200)] 
lib-smtp: client: Allow connecting to SMTP/LMTP services offered through unix sockets.

6 years agolib-smtp: client: Move creation of connection object to a separate function.
Stephan Bosch [Sun, 23 Sep 2018 17:32:11 +0000 (19:32 +0200)] 
lib-smtp: client: Move creation of connection object to a separate function.

6 years agolib-smtp: server: Record the associated server command in the recipient object.
Stephan Bosch [Sun, 7 Oct 2018 16:37:48 +0000 (18:37 +0200)] 
lib-smtp: server: Record the associated server command in the recipient object.

This avoids the need to do that in application code.

6 years agosubmission: Use the recipient index in the server recipient object rather than the...
Stephan Bosch [Sun, 7 Oct 2018 19:24:43 +0000 (21:24 +0200)] 
submission: Use the recipient index in the server recipient object rather than the submission recipient.

6 years agolmtp: Use the recipient index in the server recipient object rather than the lmtp...
Stephan Bosch [Sun, 7 Oct 2018 19:23:44 +0000 (21:23 +0200)] 
lmtp: Use the recipient index in the server recipient object rather than the lmtp recipient.

6 years agosubmission: Use the path in the server recipient object rather than the submission...
Stephan Bosch [Sun, 7 Oct 2018 17:44:40 +0000 (19:44 +0200)] 
submission: Use the path in the server recipient object rather than the submission recipient.

It is recorded reliably on a pool from the start now

6 years agolmtp: Use the path in the server recipient object rather than the lmtp recipient.
Stephan Bosch [Sun, 7 Oct 2018 17:47:59 +0000 (19:47 +0200)] 
lmtp: Use the path in the server recipient object rather than the lmtp recipient.

It is recorded reliably on a pool from the start now.

6 years agosubmission: Start using the new lib-smtp/server recipient pool.
Stephan Bosch [Sun, 7 Oct 2018 15:47:29 +0000 (17:47 +0200)] 
submission: Start using the new lib-smtp/server recipient pool.

6 years agolmtp: Start using the new lib-smtp/server recipient pool.
Stephan Bosch [Sun, 7 Oct 2018 20:32:38 +0000 (22:32 +0200)] 
lmtp: Start using the new lib-smtp/server recipient pool.

6 years agolib-smtp: server: Create the definitive recipient object right at the reception of...
Stephan Bosch [Sun, 7 Oct 2018 19:37:00 +0000 (21:37 +0200)] 
lib-smtp: server: Create the definitive recipient object right at the reception of the RCPT command.

Before, it first allocated stuff on the command pool, which gets freed when the RCPT
command finishes. Allocating the recipient data on its own pool from the start
considerably simplifies the code and prevents very nasty bugs.

6 years agolib-smtp: server: Record the index in the list of approved recipients in the recipien...
Stephan Bosch [Sun, 7 Oct 2018 19:13:44 +0000 (21:13 +0200)] 
lib-smtp: server: Record the index in the list of approved recipients in the recipient object.

This avoids the need to do that in application code.

6 years agolib-smtp: server: Add hooks API for recipient.
Stephan Bosch [Sun, 7 Oct 2018 18:42:20 +0000 (20:42 +0200)] 
lib-smtp: server: Add hooks API for recipient.

6 years agolib-smtp: server: Allocate each recipient on its own pool.
Stephan Bosch [Sun, 7 Oct 2018 18:34:12 +0000 (20:34 +0200)] 
lib-smtp: server: Allocate each recipient on its own pool.

This way, the application can associate data with the recipient, which
implicitly goes away either when the transaction is finished or the recipient is
denied.

6 years agosubmission: Rename struct smtp_server_recipient *trcpt variables to *rcpt.
Stephan Bosch [Sun, 7 Oct 2018 23:09:26 +0000 (01:09 +0200)] 
submission: Rename struct smtp_server_recipient *trcpt variables to *rcpt.

6 years agosubmission: Rename struct submission_recipient *rcpt variables to *srcpt.
Stephan Bosch [Sun, 7 Oct 2018 22:44:28 +0000 (00:44 +0200)] 
submission: Rename struct submission_recipient *rcpt variables to *srcpt.

6 years agolmtp: Rename struct smtp_server_recipient *trcpt variables to *rcpt.
Stephan Bosch [Sun, 7 Oct 2018 21:53:11 +0000 (23:53 +0200)] 
lmtp: Rename struct smtp_server_recipient *trcpt variables to *rcpt.

6 years agolmtp: local: Rename struct lmtp_local_recipient *rcpt variables to *llrcpt.
Stephan Bosch [Mon, 12 Mar 2018 00:22:34 +0000 (01:22 +0100)] 
lmtp: local: Rename struct lmtp_local_recipient *rcpt variables to *llrcpt.

6 years agolmtp: proxy: Rename struct lmtp_proxy_recipient *rcpt variables to *lprcpt.
Stephan Bosch [Mon, 12 Mar 2018 00:12:30 +0000 (01:12 +0100)] 
lmtp: proxy: Rename struct lmtp_proxy_recipient *rcpt variables to *lprcpt.

6 years agolmtp: common: Rename struct lmtp_recipient *rcpt variables to *lrcpt.
Stephan Bosch [Sun, 7 Oct 2018 21:08:37 +0000 (23:08 +0200)] 
lmtp: common: Rename struct lmtp_recipient *rcpt variables to *lrcpt.