[dovecot/core | refs/heads/master-2.3] b8cc5abe: lib-smtp: client: Make sending the XCLIENT command(s) always implicit and do it only once.

noreply at dovecot.org noreply at dovecot.org
Wed Feb 13 11:30:18 EET 2019


  Branch: refs/heads/master-2.3
  Home:   https://github.com/dovecot/core
  Commit: b8cc5abe094fb1e9afbb6f5f313b7ad97496fd57
      https://github.com/dovecot/core/commit/b8cc5abe094fb1e9afbb6f5f313b7ad97496fd57
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h
    M src/lib-smtp/smtp-client-private.h
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  lib-smtp: client: Make sending the XCLIENT command(s) always implicit and do it only once.

For most servers, XCLIENT changes the ip:port identity of the client, causing it
to lose privileges to send more XCLIENT commands. For long XCLIENT commands
split in a series of XCLIENT commands, the ip:port parameters were sent last
already, so that did not cause problems even before this change. However, the
old code assumed it could update XCLIENT fields later on, which is often not
possible.

  Commit: 0932c42a7c240a900987d733ebc086b9aefd26b3
      https://github.com/dovecot/core/commit/0932c42a7c240a900987d733ebc086b9aefd26b3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Don't bother updating the protocol in proxy data.

Old SMTP clients cannot use the submission service, since these cannot perform
the required authentication.

  Commit: fdc3046b9186bb09b421091092d55c128963b2bf
      https://github.com/dovecot/core/commit/fdc3046b9186bb09b421091092d55c128963b2bf
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_create_backend_default() after smtp_server_connection_login() in client_create().

This way, the created default backend can use the HELO data provided to smtp_server_connection_login().

  Commit: c02fdbb83483930fd0c48b5cf42463ff1325bfec
      https://github.com/dovecot/core/commit/c02fdbb83483930fd0c48b5cf42463ff1325bfec
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client.h

  Log Message:
  -----------
  lib-smtp: client: Allow deferring sending the XCLIENT command until authentication or first mail transaction.

This allows updating the proxy data until the XCLIENT command actually needs to
be sent. For submission, this means that later EHLO domain changes can still be
accounted for. This change makes the simplifications in subsequent changes
easier.

  Commit: 3a08f5c05c3046097ff6805a281c644ae4c37ec3
      https://github.com/dovecot/core/commit/3a08f5c05c3046097ff6805a281c644ae4c37ec3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Merge smtp_client_connection_init_xclient() into smtp_client_connection_authenticate().

  Commit: 945214b3277f7213ce3b73f1d402ffa2f6743c4b
      https://github.com/dovecot/core/commit/945214b3277f7213ce3b73f1d402ffa2f6743c4b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Move smtp_client_connection_send_xclient() before smtp_client_connection_authenticate().

Keeps ordering of functions logical for next changes.

  Commit: 0d883b2cc6a0d0cecc8909f71719f5b772ffad76
      https://github.com/dovecot/core/commit/0d883b2cc6a0d0cecc8909f71719f5b772ffad76
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Provide data for the HELO and PROTO XCLIENT fields to the relay connection.

  Commit: be6f4099ab67726df38caabaf1a4f46f726c857a
      https://github.com/dovecot/core/commit/be6f4099ab67726df38caabaf1a4f46f726c857a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server-connection.c
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  lib-smtp: server: Use the HELO domain provided to smtp_server_connection_login() immediately.

Before, it was only used when no new HELO/EHLO command was issued before MAIL.

  Commit: da2b4d7d554f475620752b41521c65c5f6d924bd
      https://github.com/dovecot/core/commit/da2b4d7d554f475620752b41521c65c5f6d924bd
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  lib-smtp: client: Remove proxy_data parameter from smtp_client_connection_send_xclient().

Use smtp_client_connection_update_proxy_data() to change fields in the proxy
data recorded in the client.

  Commit: f69d83143233d06cef4ca56b04291fc894880163
      https://github.com/dovecot/core/commit/f69d83143233d06cef4ca56b04291fc894880163
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h

  Log Message:
  -----------
  lib-smtp: client: Add smtp_client_connection_update_proxy_data().

Allows updating the proxy data after creation of the connection.

  Commit: 98679b0035a4ba8a1d2acf413161b7413b05f6d3
      https://github.com/dovecot/core/commit/98679b0035a4ba8a1d2acf413161b7413b05f6d3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  lib-smtp: client: Make smtp_client_connection_send_xclient() return void.

  Commit: d4d719f8a186396ddc4af397aee40ddca57d2278
      https://github.com/dovecot/core/commit/d4d719f8a186396ddc4af397aee40ddca57d2278
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Copy proxy data from settings using the new smtp_proxy_data_merge() functioṅ.

  Commit: 1128d1574cf6b6f854b361550f7fef4e792f7c9c
      https://github.com/dovecot/core/commit/1128d1574cf6b6f854b361550f7fef4e792f7c9c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-common.c
    M src/lib-smtp/smtp-common.h

  Log Message:
  -----------
  lib-smtp: common: Add smtp_proxy_data_merge().

  Commit: 51e1340e3fb0a95730ccc780d0807329308bdf93
      https://github.com/dovecot/core/commit/51e1340e3fb0a95730ccc780d0807329308bdf93
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c
    M src/lib-smtp/smtp-client-command.h

  Log Message:
  -----------
  lib-smtp: client: Drop smtp_client_command_mail_submit_after().

It is not used.

  Commit: f758ca68f03c0aa1531538e81c925c9ffc9f9119
      https://github.com/dovecot/core/commit/f758ca68f03c0aa1531538e81c925c9ffc9f9119
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: connection: Fix copying of PROTO XCLIENT field in proxy data.

  Commit: 11de7fcbe7d2d6f109845b1a2ec3eb48e204e3d2
      https://github.com/dovecot/core/commit/11de7fcbe7d2d6f109845b1a2ec3eb48e204e3d2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-syntax.c

  Log Message:
  -----------
  lib-smtp: syntax: Fix smtp_ehlo_line_parse() to also record the last parameter.

  Commit: 54e41f5cba8ee531c32f26ae3b6db6e606cb2b75
      https://github.com/dovecot/core/commit/54e41f5cba8ee531c32f26ae3b6db6e606cb2b75
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am

  Log Message:
  -----------
  submission: Install header files

This allows creating external submission plugins.

  Commit: 3bef9e55e81d888ac7090075cdee7050145dab9e
      https://github.com/dovecot/core/commit/3bef9e55e81d888ac7090075cdee7050145dab9e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fs/fs-api.c

  Log Message:
  -----------
  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.

  Commit: 88b909cbf7988cbe29bb2aced1503db6d54387b8
      https://github.com/dovecot/core/commit/88b909cbf7988cbe29bb2aced1503db6d54387b8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: 8b60a188f658f36f9de79a7dba4e33b4d7d2e0c8
      https://github.com/dovecot/core/commit/8b60a188f658f36f9de79a7dba4e33b4d7d2e0c8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  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.

  Commit: cb4aae7ddbce7ee99c7e40c0d72d18f55fb33a1f
      https://github.com/dovecot/core/commit/cb4aae7ddbce7ee99c7e40c0d72d18f55fb33a1f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-connection.c

  Log Message:
  -----------
  lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_terminate().

  Commit: c4fd34ba90d1f0471f1cb5ea0110e7e19054590e
      https://github.com/dovecot/core/commit/c4fd34ba90d1f0471f1cb5ea0110e7e19054590e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-connection.c

  Log Message:
  -----------
  lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_disconnect().

Convert it to a single line string.

  Commit: 673327ca7af92a0515b4c3a3a1bec0de976f06a0
      https://github.com/dovecot/core/commit/673327ca7af92a0515b4c3a3a1bec0de976f06a0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-connection.c
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  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.

  Commit: 4a6cdec31b81a537c64832ce16b06832b5004c7d
      https://github.com/dovecot/core/commit/4a6cdec31b81a537c64832ce16b06832b5004c7d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-connection.c

  Log Message:
  -----------
  lib-smtp: server: connection: Add debug messages for protocol elements sent outside the normal reply API.

  Commit: 7b724a02906af8feac6c4fa6c6826006841584e7
      https://github.com/dovecot/core/commit/7b724a02906af8feac6c4fa6c6826006841584e7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-reply.c
    M src/lib-smtp/smtp-reply.h

  Log Message:
  -----------
  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.

  Commit: 064e379ad71ee3d78863e8c32d67a295d4b20a63
      https://github.com/dovecot/core/commit/064e379ad71ee3d78863e8c32d67a295d4b20a63
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-reply-parser.c
    M src/lib-smtp/smtp-reply-parser.h

  Log Message:
  -----------
  lib-smtp: reply: Make parsing enhanced status codes available as a separate function.

  Commit: b8ebcd65071af268f7f5c8bcbc1f2a7dfb97fd1a
      https://github.com/dovecot/core/commit/b8ebcd65071af268f7f5c8bcbc1f2a7dfb97fd1a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib/strfuncs.c
    M src/lib/strfuncs.h
    M src/lib/test-strfuncs.c

  Log Message:
  -----------
  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

  Commit: 03e2a66ad59b9e697e05ddace507e1d10cf0e54f
      https://github.com/dovecot/core/commit/03e2a66ad59b9e697e05ddace507e1d10cf0e54f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  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.

  Commit: 2d16e2ed55630b81f681f4bb56ce7365d057248c
      https://github.com/dovecot/core/commit/2d16e2ed55630b81f681f4bb56ce7365d057248c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-recipient.c

  Log Message:
  -----------
  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).

  Commit: 04c9d141d4dcdf001d3a7c3e415fe132c27adff7
      https://github.com/dovecot/core/commit/04c9d141d4dcdf001d3a7c3e415fe132c27adff7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-recipient.c

  Log Message:
  -----------
  lib-smtp: server: recipient: Prevent reference counting from within destroy hook.

  Commit: ce9373c8dca5b265fb030ff08328f5fb17cda9d9
      https://github.com/dovecot/core/commit/ce9373c8dca5b265fb030ff08328f5fb17cda9d9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-recipient.c

  Log Message:
  -----------
  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.

  Commit: 43fa7cdef93a84541c478e784d431b8c537171c4
      https://github.com/dovecot/core/commit/43fa7cdef93a84541c478e784d431b8c537171c4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server-connection.c
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  lib-smtp: server: Make sure command object is not used after it is destroyed in hook.

  Commit: c76bb01ce23c886fcf6f710b7d3eda00a143a162
      https://github.com/dovecot/core/commit/c76bb01ce23c886fcf6f710b7d3eda00a143a162
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c

  Log Message:
  -----------
  lib-smtp: server: command: Hold connection reference while calling replied hook.

  Commit: f4116a4863b53fb86c2d9c814ee9299a8b20ffff
      https://github.com/dovecot/core/commit/f4116a4863b53fb86c2d9c814ee9299a8b20ffff
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c

  Log Message:
  -----------
  lib-smtp: server: command: Move core of smtp_server_command_submit_reply() into a separate function.

Makes the next changes easier.

  Commit: c45761a4dcca3802e0d6a5a58b31c15a8ff72fe1
      https://github.com/dovecot/core/commit/c45761a4dcca3802e0d6a5a58b31c15a8ff72fe1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  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.

  Commit: 48dba2d135ee195cf2a938d3b58b99066cfbe747
      https://github.com/dovecot/core/commit/48dba2d135ee195cf2a938d3b58b99066cfbe747
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  lib-smtp: server: command: Prevent reference counting from within destroy hook.

  Commit: 35270389103fcfcece45f325dc30a8349ee18a84
      https://github.com/dovecot/core/commit/35270389103fcfcece45f325dc30a8349ee18a84
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-server-private.h

  Log Message:
  -----------
  lib-smtp: Consistently use signed integer for reference counters.

  Commit: 00493144c074e8e9534ea3f0ce0ed2b95aab90d1
      https://github.com/dovecot/core/commit/00493144c074e8e9534ea3f0ce0ed2b95aab90d1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: aeb96b2c1f9cd9ef05152b2a7c4b34da23382b99
      https://github.com/dovecot/core/commit/aeb96b2c1f9cd9ef05152b2a7c4b34da23382b99
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: In backend_relay_handle_relay_reply(): Only determine error detail when it is used.

  Commit: 9bc54d9cd54fde3f3ab08861256156a3ef5c95fa
      https://github.com/dovecot/core/commit/9bc54d9cd54fde3f3ab08861256156a3ef5c95fa
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M dovecot-config.in.in
    M m4/dovecot.m4

  Log Message:
  -----------
  submission: Make include directory available to external plugins.

  Commit: 5c0cc0210ca7275006abc1d239273be1fa7025de
      https://github.com/dovecot/core/commit/5c0cc0210ca7275006abc1d239273be1fa7025de
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h

  Log Message:
  -----------
  submission: relay backend: Allow creating the client transaction with specific flags.

  Commit: 3a9aefff5dfb6eef4dcc6205018737f91104ef92
      https://github.com/dovecot/core/commit/3a9aefff5dfb6eef4dcc6205018737f91104ef92
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h
    M src/lib-smtp/smtp-submit.c
    M src/lib-smtp/test-smtp-client-errors.c
    M src/lib-smtp/test-smtp-payload.c
    M src/lmtp/lmtp-proxy.c
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  lib-smtp: client: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions.

This is non-standard.

  Commit: 0df4aa4e980d641cbbd15ffa098566aedf9649f5
      https://github.com/dovecot/core/commit/0df4aa4e980d641cbbd15ffa098566aedf9649f5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  submission: Add support for module contexts to backend.

  Commit: d538e88c0c836337fd1d8a667de1db0621e42357
      https://github.com/dovecot/core/commit/d538e88c0c836337fd1d8a667de1db0621e42357
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  submission: Allocate each backend on its own pool.

This allows allocating per-backend module data.

  Commit: 9989814e4b3a0969279ee576720ac0aef34c4e5e
      https://github.com/dovecot/core/commit/9989814e4b3a0969279ee576720ac0aef34c4e5e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  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.

  Commit: 7ec923c741164a28c777b8024426421c0f1e78bd
      https://github.com/dovecot/core/commit/7ec923c741164a28c777b8024426421c0f1e78bd
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  submission: Add backend flag indicating whether the backend is ready.

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

  Commit: 88a15ca2f0a49a568598351ff6f2daf75eaf49fc
      https://github.com/dovecot/core/commit/88a15ca2f0a49a568598351ff6f2daf75eaf49fc
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  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).

  Commit: f9eb4572c7f6906981bd41bb59340cddba7726f1
      https://github.com/dovecot/core/commit/f9eb4572c7f6906981bd41bb59340cddba7726f1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-params.h

  Log Message:
  -----------
  lib-smtp: params: Explicitly allow smtp_params_*_add_extra() value parameter to be NULL.

  Commit: c04e36ae1bc37d569cc8b38cf4e311a6f4be88cd
      https://github.com/dovecot/core/commit/c04e36ae1bc37d569cc8b38cf4e311a6f4be88cd
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h

  Log Message:
  -----------
  submission: relay backend: Allow recording extra (non-standard) capabilities.

  Commit: 6b49a299c76cbd542e4e31e76572d17d667c7226
      https://github.com/dovecot/core/commit/6b49a299c76cbd542e4e31e76572d17d667c7226
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: relay backend: Provide access to the client connection and transaction for plugins.

  Commit: e559e8207f587394e97ed90c9a9709bcfa14c326
      https://github.com/dovecot/core/commit/e559e8207f587394e97ed90c9a9709bcfa14c326
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client.c
    M src/lib-smtp/smtp-client.h
    M src/lib-smtp/smtp-common.h

  Log Message:
  -----------
  lib-smtp: client: Add support for recording extra (non-standard) capabilities from server.

  Commit: 7d2ffc6782d7741463d6ede94f67e123617599c7
      https://github.com/dovecot/core/commit/7d2ffc6782d7741463d6ede94f67e123617599c7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-private.h

  Log Message:
  -----------
  lib-smtp: client: connection: Consolidate capability data into a struct.

Allows clearing it reliably.

  Commit: 00640bd83cd663188e7ff15fc1befceba39321c4
      https://github.com/dovecot/core/commit/00640bd83cd663188e7ff15fc1befceba39321c4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.h
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Clarify the behavior of command handlers and the requirements for overriding them.

  Commit: 48dd6d5b32b57b8e39b91fc7e85de896b7fa16c5
      https://github.com/dovecot/core/commit/48dd6d5b32b57b8e39b91fc7e85de896b7fa16c5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: Use the new smtp_server_cmd_noop_reply_success() function.

  Commit: 343d00daa64c861d2a12efe66ca5af2ac39caa77
      https://github.com/dovecot/core/commit/343d00daa64c861d2a12efe66ca5af2ac39caa77
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Use the new smtp_server_cmd_rcpt_reply_success() function.

  Commit: 5acc9d5ddec1b7ce27ba7483d091a7c8bfd7212a
      https://github.com/dovecot/core/commit/5acc9d5ddec1b7ce27ba7483d091a7c8bfd7212a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-noop.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: NOOP command: Implement smtp_server_cmd_noop_reply_success() for sending default success reply.

  Commit: 039673b552bebe8901b42c1addf41f360f009f3c
      https://github.com/dovecot/core/commit/039673b552bebe8901b42c1addf41f360f009f3c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-rset.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: RSET command: Implement smtp_server_cmd_rset_reply_success() for sending default success reply.

  Commit: cc446d240053c012147f06f47fb9e18f9e9cd853
      https://github.com/dovecot/core/commit/cc446d240053c012147f06f47fb9e18f9e9cd853
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: RCPT command: Implement smtp_server_cmd_rcpt_reply_success() for sending default success reply.

  Commit: 8201b5e4b8f326a845f7d9eeee0d80f76ca78230
      https://github.com/dovecot/core/commit/8201b5e4b8f326a845f7d9eeee0d80f76ca78230
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: MAIL command: Implement smtp_server_cmd_mail_reply_success() for sending default success reply.

  Commit: 7770b655a17b991ba421f3cb620bb54c1e58c176
      https://github.com/dovecot/core/commit/7770b655a17b991ba421f3cb620bb54c1e58c176
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Always reset the trans_started flag upon trans_free().

  Commit: fb410a48dd4c527f475a42ec6189ea821cc9b987
      https://github.com/dovecot/core/commit/fb410a48dd4c527f475a42ec6189ea821cc9b987
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c

  Log Message:
  -----------
  submission: backend: Properly reset the trans_started flag upon trans_free().

  Commit: 025c10a955ff599c99d5d0ba155353c5c00de2a7
      https://github.com/dovecot/core/commit/025c10a955ff599c99d5d0ba155353c5c00de2a7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M doc/example-config/conf.d/20-submission.conf

  Log Message:
  -----------
  doc: example-config: Document the new submission_backend_capabilities setting.

  Commit: a76252030bd421532605b2103c4007455ede5297
      https://github.com/dovecot/core/commit/a76252030bd421532605b2103c4007455ede5297
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission-login/client.c
    M src/submission/submission-client.c

  Log Message:
  -----------
  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.

  Commit: f69da23f54c0467ea0baa405bbd84b5aedb8de1d
      https://github.com/dovecot/core/commit/f69da23f54c0467ea0baa405bbd84b5aedb8de1d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: 325c32c7b87d986d8648c71a06602b275389d7c9
      https://github.com/dovecot/core/commit/325c32c7b87d986d8648c71a06602b275389d7c9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-vrfy.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: VRFY command: Implement smtp_server_cmd_reply_default() for sending default reply.

  Commit: eb62300ff7e6e6e8f2a7d5f9ccc321b356541642
      https://github.com/dovecot/core/commit/eb62300ff7e6e6e8f2a7d5f9ccc321b356541642
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission-login/client-authenticate.c
    M src/submission/submission-client.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission,submission-login: Omit listing VRFY capability if the backend provides no explicit support.

  Commit: 37c38c6b7d53bcaf12c59ef4c3be7743a46a06c1
      https://github.com/dovecot/core/commit/37c38c6b7d53bcaf12c59ef4c3be7743a46a06c1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission-login/client-authenticate.c
    M src/submission-login/client.c
    M src/submission-login/client.h
    M src/submission-login/submission-login-settings.c
    M src/submission-login/submission-login-settings.h

  Log Message:
  -----------
  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.

  Commit: 11994647af909750d62246ebbdb8a60d4e174c16
      https://github.com/dovecot/core/commit/11994647af909750d62246ebbdb8a60d4e174c16
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission-login/client-authenticate.c

  Log Message:
  -----------
  submission-login: Add the VRFY capability to the EHLO reply.

The post-login service does it too.

  Commit: e2d3eb0a833cf4c57a0ee22f68aa132bb3e7b29a
      https://github.com/dovecot/core/commit/e2d3eb0a833cf4c57a0ee22f68aa132bb3e7b29a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c

  Log Message:
  -----------
  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.

  Commit: 2e2ec7f7cdaf93c1e808babd6a7279775396939c
      https://github.com/dovecot/core/commit/2e2ec7f7cdaf93c1e808babd6a7279775396939c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c

  Log Message:
  -----------
  submission: backends: Set the started flag before calling the backend start vfunc.

This prevents recursive mishaps.

  Commit: c4c5af0f6a563a74be095e496d482011b1cda123
      https://github.com/dovecot/core/commit/c4c5af0f6a563a74be095e496d482011b1cda123
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/test-fts-tokenizer.c

  Log Message:
  -----------
  lib-fts: test-fts-tokenizer: Verify fts_tokenizer_create() return value

  Commit: 8cf4fdbf16ca659642f9c4c9da3eb2fad5f7a03a
      https://github.com/dovecot/core/commit/8cf4fdbf16ca659642f9c4c9da3eb2fad5f7a03a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: fcdd8e67b0c559dd73e550440d6d089ceda5bb5c
      https://github.com/dovecot/core/commit/fcdd8e67b0c559dd73e550440d6d089ceda5bb5c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: 5cca9b095086dfe4378e7393f7d86e3a71bcc6b4
      https://github.com/dovecot/core/commit/5cca9b095086dfe4378e7393f7d86e3a71bcc6b4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Fix comment in RCPT command code.

  Commit: 959f3b23a6155a6913f3b268f5b30caf9ee367c6
      https://github.com/dovecot/core/commit/959f3b23a6155a6913f3b268f5b30caf9ee367c6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: recipient: Add field for associating backend context.

  Commit: 31755e30050efc6f1e4b18b8a757afa5e974380e
      https://github.com/dovecot/core/commit/31755e30050efc6f1e4b18b8a757afa5e974380e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/commands.c

  Log Message:
  -----------
  lmtp: DATA command: Assert that the server transaction flags are correct for LMTP.

  Commit: 26af7752e45d0698bfe327d4f9c0c996cda2b29c
      https://github.com/dovecot/core/commit/26af7752e45d0698bfe327d4f9c0c996cda2b29c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-data.c
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-transaction.c
    M src/lib-smtp/smtp-server.h
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  lib-smtp: server: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions.

This is non-standard.

  Commit: 87f60ed5392e75f6d9f6d1bdc204e0c83aecbc65
      https://github.com/dovecot/core/commit/87f60ed5392e75f6d9f6d1bdc204e0c83aecbc65
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h

  Log Message:
  -----------
  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.

  Commit: 7907039e85999b3d3dfb2eaca074f81b22494b2d
      https://github.com/dovecot/core/commit/7907039e85999b3d3dfb2eaca074f81b22494b2d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: 1204808c8d753c27e269617cdd17795fbc039c68
      https://github.com/dovecot/core/commit/1204808c8d753c27e269617cdd17795fbc039c68
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Use smtp_reply_is_success() to evaluate reply form relay.

Before, it evaluated the reply status directly.

  Commit: 774da489958f70d2983bdc9ba5fe1e3804c519bb
      https://github.com/dovecot/core/commit/774da489958f70d2983bdc9ba5fe1e3804c519bb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: Add smtp_server_command_get_reply_count().

Returns the number of replies expected to the command.

  Commit: ea2e602ee72450cac52952c72e73ed88bf33cdbd
      https://github.com/dovecot/core/commit/ea2e602ee72450cac52952c72e73ed88bf33cdbd
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: Make smtp_client_transaction_unref(NULL) a no-op.

  Commit: 3332e1f4d54cf7c5f0f5e3b98ef907f64e5342f2
      https://github.com/dovecot/core/commit/3332e1f4d54cf7c5f0f5e3b98ef907f64e5342f2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: Make smtp_client_transaction_destroy(NULL) a no-op.

  Commit: e0b70e837c5bc098ed359f74d2ee9dd332b42a81
      https://github.com/dovecot/core/commit/e0b70e837c5bc098ed359f74d2ee9dd332b42a81
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: Allocate recipients for the client transaction on the server recipient pool.

  Commit: 7157254ff22636c8321ab7a8a077b10110673fb6
      https://github.com/dovecot/core/commit/7157254ff22636c8321ab7a8a077b10110673fb6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lmtp: proxy: Allocate recipients for the client transaction on the server recipient pool.

  Commit: 0077720512e6dab2daf2aee870c6cbfb4455551e
      https://github.com/dovecot/core/commit/0077720512e6dab2daf2aee870c6cbfb4455551e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  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.

  Commit: 2517541f0f5cc540ac10e60ac9beb0cb7a6f17c0
      https://github.com/dovecot/core/commit/2517541f0f5cc540ac10e60ac9beb0cb7a6f17c0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Fix and amend a few comments in the header.

  Commit: 2605acd5febbcfa041068114d96ee77bb5a46b8e
      https://github.com/dovecot/core/commit/2605acd5febbcfa041068114d96ee77bb5a46b8e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h

  Log Message:
  -----------
  lib-smtp: client: Remove unused "failed" field from struct smtp_client_transaction_mail.

  Commit: 053d53d0bbb4254a2705a9e8f54965b2cffcac50
      https://github.com/dovecot/core/commit/053d53d0bbb4254a2705a9e8f54965b2cffcac50
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  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.

  Commit: e664443525757ca677cb2b3e873265c4a38bd349
      https://github.com/dovecot/core/commit/e664443525757ca677cb2b3e873265c4a38bd349
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  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.

  Commit: 26f4ccf8bacaa6dc85d04dec56c227812bc6244b
      https://github.com/dovecot/core/commit/26f4ccf8bacaa6dc85d04dec56c227812bc6244b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Set the immediate for the client transaction no matter where it is created.

Forgot a few instances.

  Commit: 4e6966a4f9577147f2b5c2eb6fb49a214458c202
      https://github.com/dovecot/core/commit/4e6966a4f9577147f2b5c2eb6fb49a214458c202
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  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.

  Commit: 599845b684036a34973d880608ae80875846baa8
      https://github.com/dovecot/core/commit/599845b684036a34973d880608ae80875846baa8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h

  Log Message:
  -----------
  submission: relay backend: Add support for relaying to a unix socket.

  Commit: deb8c48b9d360e05dc0165bddef9d02d92b5f639
      https://github.com/dovecot/core/commit/deb8c48b9d360e05dc0165bddef9d02d92b5f639
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-connection.h
    M src/lib-smtp/smtp-client-private.h

  Log Message:
  -----------
  lib-smtp: client: Allow connecting to SMTP/LMTP services offered through unix sockets.

  Commit: 28a96e0e45b3ab9d65a797ee1668cc79d61da1df
      https://github.com/dovecot/core/commit/28a96e0e45b3ab9d65a797ee1668cc79d61da1df
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Move creation of connection object to a separate function.

  Commit: 1504d725ca9327209ec84edb7da774c6d7fec8a9
      https://github.com/dovecot/core/commit/1504d725ca9327209ec84edb7da774c6d7fec8a9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-data.c
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-recipient.c
    M src/lib-smtp/smtp-server-transaction.c
    M src/lib-smtp/smtp-server.h
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lib-smtp: server: Record the associated server command in the recipient object.

This avoids the need to do that in application code.

  Commit: 2678b9678de5855f0e1a4070a3e20b296b493924
      https://github.com/dovecot/core/commit/2678b9678de5855f0e1a4070a3e20b296b493924
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Use the recipient index in the server recipient object rather than the submission recipient.

  Commit: 9bd0a3890b9c61515fc48bc1aaaa03d077f41ca0
      https://github.com/dovecot/core/commit/9bd0a3890b9c61515fc48bc1aaaa03d077f41ca0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lmtp: Use the recipient index in the server recipient object rather than the lmtp recipient.

  Commit: afbe1bdc41c46f295b9310400c9e8b387dc49379
      https://github.com/dovecot/core/commit/afbe1bdc41c46f295b9310400c9e8b387dc49379
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  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

  Commit: 5eea7de82856788d06fe17cb388ed29de4d1dbef
      https://github.com/dovecot/core/commit/5eea7de82856788d06fe17cb388ed29de4d1dbef
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  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.

  Commit: 5c39ef5881c9f21d7d303c0ea5dc634c401e1706
      https://github.com/dovecot/core/commit/5c39ef5881c9f21d7d303c0ea5dc634c401e1706
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-commands.h
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Start using the new lib-smtp/server recipient pool.

  Commit: 728dd5a94b43daa9e39f290a96352c5efc531c87
      https://github.com/dovecot/core/commit/728dd5a94b43daa9e39f290a96352c5efc531c87
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lmtp: Start using the new lib-smtp/server recipient pool.

  Commit: de44662ed37294293e17884306b9940909e4c171
      https://github.com/dovecot/core/commit/de44662ed37294293e17884306b9940909e4c171
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server.h
    M src/lib-smtp/test-smtp-payload.c
    M src/lib-smtp/test-smtp-server-errors.c
    M src/lmtp/commands.c
    M src/lmtp/commands.h
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-local.h
    M src/lmtp/lmtp-proxy.c
    M src/lmtp/lmtp-proxy.h
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  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.

  Commit: f8fc07fb0473941635cb265c19af3de9404c0b35
      https://github.com/dovecot/core/commit/f8fc07fb0473941635cb265c19af3de9404c0b35
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-transaction.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  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.

  Commit: 964ab70fa5f9c18834531d0a180068aba3de5859
      https://github.com/dovecot/core/commit/964ab70fa5f9c18834531d0a180068aba3de5859
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-recipient.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: Add hooks API for recipient.

  Commit: 6c939b142ea6d25d3dbabc2f1cb2cc792910d41f
      https://github.com/dovecot/core/commit/6c939b142ea6d25d3dbabc2f1cb2cc792910d41f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/Makefile.am
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-private.h
    A src/lib-smtp/smtp-server-recipient.c
    M src/lib-smtp/smtp-server-transaction.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  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.

  Commit: eca45419685590a9f62e1a0788c6b8724614880d
      https://github.com/dovecot/core/commit/eca45419685590a9f62e1a0788c6b8724614880d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-commands.c
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Rename struct smtp_server_recipient *trcpt variables to *rcpt.

  Commit: 7d88326dc74d6f54e5fcdb4e799466de3bd2fba8
      https://github.com/dovecot/core/commit/7d88326dc74d6f54e5fcdb4e799466de3bd2fba8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-commands.h
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Rename struct submission_recipient *rcpt variables to *srcpt.

  Commit: 201fe17d5d262b53f6f01a21c81a54dcea6c40d4
      https://github.com/dovecot/core/commit/201fe17d5d262b53f6f01a21c81a54dcea6c40d4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lmtp: Rename struct smtp_server_recipient *trcpt variables to *rcpt.

  Commit: 29901fb32ea3c3d2a03097fa0f73b100487077bb
      https://github.com/dovecot/core/commit/29901fb32ea3c3d2a03097fa0f73b100487077bb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Rename struct lmtp_local_recipient *rcpt variables to *llrcpt.

  Commit: d8f8f134234e191f0121235670f1a56075ca0570
      https://github.com/dovecot/core/commit/d8f8f134234e191f0121235670f1a56075ca0570
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-proxy.c

  Log Message:
  -----------
  lmtp: proxy: Rename struct lmtp_proxy_recipient *rcpt variables to *lprcpt.

  Commit: 6e27dce08a65941632468bcb291b090ef1a60670
      https://github.com/dovecot/core/commit/6e27dce08a65941632468bcb291b090ef1a60670
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-common.c
    M src/lmtp/lmtp-common.h

  Log Message:
  -----------
  lmtp: common: Rename struct lmtp_recipient *rcpt variables to *lrcpt.

  Commit: a2abf87cd48ee7251bbdd5ba503ab5d0a0087985
      https://github.com/dovecot/core/commit/a2abf87cd48ee7251bbdd5ba503ab5d0a0087985
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Do not use array_idx() to obtain transaction recipient from lib-smtp.

It is already available in struct lmtp_recipient. Also, this call was very ugly.

  Commit: 0de66ec4ed154c704cb9ae753c688878c55feec6
      https://github.com/dovecot/core/commit/0de66ec4ed154c704cb9ae753c688878c55feec6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lmtp/commands.h

  Log Message:
  -----------
  lmtp: Reformat commands.h.

  Commit: ee006535a7559802b9b65765d1fdfd184825e39c
      https://github.com/dovecot/core/commit/ee006535a7559802b9b65765d1fdfd184825e39c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: client: Add API for adding extra (non-standard) capabilities.

  Commit: 946a45a94ca7f7bd115fe88f2a871a618b760b7d
      https://github.com/dovecot/core/commit/946a45a94ca7f7bd115fe88f2a871a618b760b7d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-syntax.c
    M src/lib-smtp/smtp-syntax.h

  Log Message:
  -----------
  lib-smtp: syntax: Add verification functions for EHLO keywords and parameters.

  Commit: 9be9d73380dd57e497b962f25658f2b4d9748dab
      https://github.com/dovecot/core/commit/9be9d73380dd57e497b962f25658f2b4d9748dab
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Add support for module contexts to recipient.

  Commit: 3672ffa8ed665330caf561745a8a08d5031a5d3d
      https://github.com/dovecot/core/commit/3672ffa8ed665330caf561745a8a08d5031a5d3d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Add support for module contexts to client.

  Commit: b8998f060b98942fde79593a33f220d4b1b28b92
      https://github.com/dovecot/core/commit/b8998f060b98942fde79593a33f220d4b1b28b92
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Implement client vfuncs for transaction start and free.

  Commit: 83d37361d455b22e849aada8be47c2d693bb6972
      https://github.com/dovecot/core/commit/83d37361d455b22e849aada8be47c2d693bb6972
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Implement client vfuncs for all normal SMTP commands.

  Commit: c1e5881c269945086652a8871b5d4c21e4f5e597
      https://github.com/dovecot/core/commit/c1e5881c269945086652a8871b5d4c21e4f5e597
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Implement basic client vfuncs.

Currently, only client_destroy can be overriden.

  Commit: a9116f626d5875792b2fd7c53c5e1e3a76f4c2e1
      https://github.com/dovecot/core/commit/a9116f626d5875792b2fd7c53c5e1e3a76f4c2e1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Allocate each recipient object on its own pool.

This allows allocating per recipient module data.

  Commit: bb708b562c10bb780eaeb7e88ec511b38b519b6f
      https://github.com/dovecot/core/commit/bb708b562c10bb780eaeb7e88ec511b38b519b6f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Provide ephemeral pool for transaction state.

  Commit: ea39afc265eff670c211cba613ff6dc14cf7527d
      https://github.com/dovecot/core/commit/ea39afc265eff670c211cba613ff6dc14cf7527d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Allocate client on alloconly mempool.

  Commit: 53421a654cd3cd24f38b385a4e90a8e3dae39595
      https://github.com/dovecot/core/commit/53421a654cd3cd24f38b385a4e90a8e3dae39595
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-connection.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: Add proper infrastructure for adding custom MAIL/RCPT command parameters.

  Commit: f716c910a8d6a9ed4d6c0fc8fbd5a09c4d92fd2d
      https://github.com/dovecot/core/commit/f716c910a8d6a9ed4d6c0fc8fbd5a09c4d92fd2d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-params.c
    M src/lib-smtp/smtp-params.h

  Log Message:
  -----------
  lib-smtp: params: Add functions for dropping extra MAIL/RCPT parameters.

  Commit: 7fc7f0bc062590c4ccb5682f89ae886f37d52ee6
      https://github.com/dovecot/core/commit/7fc7f0bc062590c4ccb5682f89ae886f37d52ee6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-params.c
    M src/lib-smtp/smtp-params.h

  Log Message:
  -----------
  lib-smtp: params: Add functions for adding extra MAIL/RCPT parameters.

  Commit: d9b1b659d75abfef0dfd7fcd25131ca5f4256434
      https://github.com/dovecot/core/commit/d9b1b659d75abfef0dfd7fcd25131ca5f4256434
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-params.c
    M src/lib-smtp/smtp-params.h
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-connection.c
    M src/lib-smtp/smtp-server.c
    M src/lib-smtp/smtp-server.h
    M src/lib-smtp/test-smtp-params.c

  Log Message:
  -----------
  lib-smtp: params: Allow only specific custom parameter extensions, rather than any parameter.

Before the choice was between allowing any extension or none.

  Commit: 2038f7938bd09faceed20051a651049871b486b5
      https://github.com/dovecot/core/commit/2038f7938bd09faceed20051a651049871b486b5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-params.c

  Log Message:
  -----------
  lib-smtp: params: Fix segfault occurring in smtp_param_write() when param->value == NULL.

  Commit: acd09d8e6d73b3ab03e8d3eda98870ea60cc1380
      https://github.com/dovecot/core/commit/acd09d8e6d73b3ab03e8d3eda98870ea60cc1380
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Use SMTP client transaction API, rather than relaying individual commands.

  Commit: c61148ebee38e738c643410fad3bc7743ea00b11
      https://github.com/dovecot/core/commit/c61148ebee38e738c643410fad3bc7743ea00b11
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add option to submit commands immediately, rather than queueing them on a zero timeout.

Also, allow interleaving other unrelated (non-transaction) commands. This is
made possible by not locking/plugging the command pipeline.

  Commit: 773ab6e709577de38a99a66bd2a28f20b677da84
      https://github.com/dovecot/core/commit/773ab6e709577de38a99a66bd2a28f20b677da84
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: Fully disconnect the connection upon failure before triggering failure callbacks.

  Commit: 158a938578b9209aeac7008a5c1fdd9b4e952fd4
      https://github.com/dovecot/core/commit/158a938578b9209aeac7008a5c1fdd9b4e952fd4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add support for aborting a pending RCPT command.

  Commit: de456551b62f4ffcd8f32f200e9172101bf0ada1
      https://github.com/dovecot/core/commit/de456551b62f4ffcd8f32f200e9172101bf0ada1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add support for aborting a pending MAIL command.

  Commit: 87ac47c5db2f8e22c75d975a272b5b19aff334ce
      https://github.com/dovecot/core/commit/87ac47c5db2f8e22c75d975a272b5b19aff334ce
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add support for creating an empty transaction (without MAIL FROM data).

  Commit: 29fe17d51108d2fa83ab23f5dc96ebe36afcd637
      https://github.com/dovecot/core/commit/29fe17d51108d2fa83ab23f5dc96ebe36afcd637
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add support for pipelining more than a single MAIL command.

  Commit: e14794f373422c8a23e7e262649fe1e3c75c3c4f
      https://github.com/dovecot/core/commit/e14794f373422c8a23e7e262649fe1e3c75c3c4f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Add infrastructure for pipelining more than a single MAIL command.

  Commit: f103dff5123a4749d1fc7c26df4bb4278fb68c39
      https://github.com/dovecot/core/commit/f103dff5123a4749d1fc7c26df4bb4278fb68c39
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Rename mail_from_callback/mail_from_context to mail_callback/mail_context.

  Commit: 5f9be113a07634d8b57766dbbc97d348b86306d1
      https://github.com/dovecot/core/commit/5f9be113a07634d8b57766dbbc97d348b86306d1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Use linked lists rather than arrays for recipients.

  Commit: f290899b444ef971c93c8f25f323fad895c7abe0
      https://github.com/dovecot/core/commit/f290899b444ef971c93c8f25f323fad895c7abe0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-private.h
    M src/lib-smtp/smtp-client-transaction.c
    M src/lib-smtp/smtp-client-transaction.h

  Log Message:
  -----------
  lib-smtp: client: transaction: Add support for ending the transaction in a graceful RSET command.

Allows running the pending transaction until RSET, without abruptly aborting
it or issuing a DATA command.

  Commit: 4ba57a4b9e4c4bf6deba5cdef4b57b0d1b80f347
      https://github.com/dovecot/core/commit/4ba57a4b9e4c4bf6deba5cdef4b57b0d1b80f347
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Move initiation of command submission to a central position.

  Commit: 2c58103a975b225443100794371d1b41b992aca0
      https://github.com/dovecot/core/commit/2c58103a975b225443100794371d1b41b992aca0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Perform pipeline plug handling just once at top-level in smtp_client_transaction_submit_more().

  Commit: 60ceb9f1c30b47d3ef1d7fcf49b4e88625c4b156
      https://github.com/dovecot/core/commit/60ceb9f1c30b47d3ef1d7fcf49b4e88625c4b156
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Annotate sub-parts of smtp_client_transaction_send_more() with comments.

  Commit: 142cd3710e5d4da092c87fe0fa013403557a5fbf
      https://github.com/dovecot/core/commit/142cd3710e5d4da092c87fe0fa013403557a5fbf
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Move smtp_client_transaction_submit_more().

  Commit: d335022bccbf84736662f0007b64f9f24735000a
      https://github.com/dovecot/core/commit/d335022bccbf84736662f0007b64f9f24735000a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Move initiation of command submission after starting the transaction timeout.

This is a precaution against the emergence of segfaults when command submission
somehow terminates the transaction in a future version (actually, a segfault
did emerge in an earlier version of this set of changes). Also it is a cosmetic
change: putting the most important act at the end of the function makes more
sense in this case.

  Commit: 4cbc847a4b018fa69bc26307184912f04d3fb65c
      https://github.com/dovecot/core/commit/4cbc847a4b018fa69bc26307184912f04d3fb65c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Rename smtp_client_transaction_send_rcpts() to smtp_client_transaction_submit_more().

  Commit: 9dc98bc2478d0d8b9eaa2d521c7806e9e8074370
      https://github.com/dovecot/core/commit/9dc98bc2478d0d8b9eaa2d521c7806e9e8074370
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Move the code executed at the completion of the transaction to a separate shared function.

The transaction is complete when all RCPT replies are received and either a DATA
or a RSET command is submitted.

  Commit: b8e97b6d772814a284aa751340bbcd0262c13a36
      https://github.com/dovecot/core/commit/b8e97b6d772814a284aa751340bbcd0262c13a36
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Don't trigger next transaction unless all RCPT replies are received and DATA is submitted.

Triggering the next transaction when DATA submitted while not all RCPT replies
are received (as it was before) is problematic when commands are submitted
immediately by the transaction (which is added in a later commit).

  Commit: dbbf717ec9f5998a395959fdc5f0a8dc7623b7d7
      https://github.com/dovecot/core/commit/dbbf717ec9f5998a395959fdc5f0a8dc7623b7d7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Prevent calling callbacks after smtp_client_transaction_destroy().

  Commit: c0d517b31cc8daab841136877fd303542dbb3837
      https://github.com/dovecot/core/commit/c0d517b31cc8daab841136877fd303542dbb3837
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Annotate sub-parts of smtp_client_transaction_fail_reply() with comments.

  Commit: 1c2ff59388687e8bcbfb56919fb4b484c35ffa23
      https://github.com/dovecot/core/commit/1c2ff59388687e8bcbfb56919fb4b484c35ffa23
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Add debug message for when smtp_client_transaction_abort() is called during smtp_client_transaction_fail*().

  Commit: 1b81cf3cfedf4c0b377434a5ff3d4703062615f7
      https://github.com/dovecot/core/commit/1b81cf3cfedf4c0b377434a5ff3d4703062615f7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Make sure the transaction is finished/aborted after smtp_client_connection_destroy().

Otherwise, the transaction could be dereferenced several times too often.

  Commit: e8e3cfa757adf8a19224282d54a0dd6502f7cf27
      https://github.com/dovecot/core/commit/e8e3cfa757adf8a19224282d54a0dd6502f7cf27
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: connection: Add debug messages for transaction handling.

  Commit: 98946ec76f9bcd26d49065975883275efb3f717a
      https://github.com/dovecot/core/commit/98946ec76f9bcd26d49065975883275efb3f717a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-rcpt.c

  Log Message:
  -----------
  lib-smtp: server: RCPT command: Improve replacement of (forwarded) specific error reply with generic state error.

Predictable transaction state errors were not always replaced reliably when
commands were pipelined, leading to a mix of proxy and remote errors.

  Commit: 84b4c8b7365da0f1b234d6d8affdccc6ce8562f4
      https://github.com/dovecot/core/commit/84b4c8b7365da0f1b234d6d8affdccc6ce8562f4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c

  Log Message:
  -----------
  lib-smtp: server: MAIL command: Improve replacement of (forwarded) specific error reply with generic state error.

Predictable transaction state errors were not always replaced reliably when
commands were pipelined, leading to a mix of proxy and remote errors.

  Commit: cc8a27bb4dd9df102888f150a420aed7d7ab245b
      https://github.com/dovecot/core/commit/cc8a27bb4dd9df102888f150a420aed7d7ab245b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server-reply.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: Add ability to determine whether command reply was created using smtp_server_reply_create_forward().

  Commit: 31a0528c1084945d6695f941107a5b5b7fb9d4cb
      https://github.com/dovecot/core/commit/31a0528c1084945d6695f941107a5b5b7fb9d4cb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c

  Log Message:
  -----------
  lib-smtp: server: MAIL command: Reliably start the transaction when several MAIL commands are pipelined.

  Commit: bd8ee0b86f2e323e995fc0c9c6140b44c36a3892
      https://github.com/dovecot/core/commit/bd8ee0b86f2e323e995fc0c9c6140b44c36a3892
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Properly manage command timeout during transaction.

  Commit: 56e3227cc62a84f32ea89797827ec72aa0c73430
      https://github.com/dovecot/core/commit/56e3227cc62a84f32ea89797827ec72aa0c73430
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-transaction.c

  Log Message:
  -----------
  lib-smtp: client: transaction: Set the number of expected DATA replies > 1 only for LMTP.

This was already OK for when all recipients were added at the time the data
command was to be sent. However, for more dynamic transactions involving
pipelining, this was not handled correctly.

  Commit: 2858e16dda88271d22c059f4862aa6c4910947b0
      https://github.com/dovecot/core/commit/2858e16dda88271d22c059f4862aa6c4910947b0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c

  Log Message:
  -----------
  lib-smtp: client: Clear command callback early to prevent mishaps.

  Commit: 639692a9819a1db3217dd8becf5e328fb6a6a500
      https://github.com/dovecot/core/commit/639692a9819a1db3217dd8becf5e328fb6a6a500
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-command.c
    M src/lib-smtp/smtp-client-private.h

  Log Message:
  -----------
  lib-smtp: client: Add smtp_client_command_drop_callback().

  Commit: 025f752859ce72f6bb7d5acb6f50bb367cfaa8d2
      https://github.com/dovecot/core/commit/025f752859ce72f6bb7d5acb6f50bb367cfaa8d2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c
    M src/lib/connection.c

  Log Message:
  -----------
  lib-smtp: client: Fix memory issue caused when reconnecting.

  Commit: 2687917d58348649fead81b7bee2998bf2918c05
      https://github.com/dovecot/core/commit/2687917d58348649fead81b7bee2998bf2918c05
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/test-fts-tokenizer.c

  Log Message:
  -----------
  lib-fts: replace repeated explicit hex utf8 with cleaner macro in tokeniser test

utf8 is too line-noisy, this improves readability.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: a0fc10ba32324f9801a9c2e58613c37ff08fc50e
      https://github.com/dovecot/core/commit/a0fc10ba32324f9801a9c2e58613c37ff08fc50e
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c
    M src/lib-fts/test-fts-tokenizer.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - tr29 explicit-prefix parsing

Similar logic to before - any wordlike sequence that ends with a * is
considered a prefix search, and immediately begins a new token.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 4ae7e343d11c126b3289a423c4a6432e0a520da2
      https://github.com/dovecot/core/commit/4ae7e343d11c126b3289a423c4a6432e0a520da2
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/test-fts-tokenizer.c

  Log Message:
  -----------
  lib-fts: test-fts-tokenizer - explicit-prefix tests

Note that the special handling of '*' only kicks in when in
"search" and "explicitprefix" mode (as passed in through the
settings), and currently, only for the simple mode, not tr29.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 6e545c50107524f15c5233339c1a70cd79467c70
      https://github.com/dovecot/core/commit/6e545c50107524f15c5233339c1a70cd79467c70
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-common.h
    M src/lib-fts/fts-tokenizer-generic-private.h
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - simple explicit prefix search logic

Logic is that words followed by a '*' create a prefix search token.
A new token is begun immediately after that. So "foo*bar" is 2 tokens
"foo*" and "bar", when in explicit prefix search tokenisation mode.

Only active in 'simple', not 'tr29'.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 64baaac5543530869d88611f62c0479bb1e9b60f
      https://github.com/dovecot/core/commit/64baaac5543530869d88611f62c0479bb1e9b60f
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - add more history to break detection

For example, going from non-word to non-word is a different type
of break (not really a break) from the transition from a word to
a non-word. Presently, that distinction isn't needed, but it will
be for explicit prefix searches.

Make the tok parameter const too, whilst there.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 1bc83feaf8a9b9d2a40b8bff65afb71a2d0add81
      https://github.com/dovecot/core/commit/1bc83feaf8a9b9d2a40b8bff65afb71a2d0add81
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic-private.h
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - recognise request for explicit prefix searching

Just store a flag in the tokenizer when the setting is seen, nothing more.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 3a35b9c672bbaceff2c3beab3f8af9dd22d3c039
      https://github.com/dovecot/core/commit/3a35b9c672bbaceff2c3beab3f8af9dd22d3c039
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/test-fts-tokenizer.c

  Log Message:
  -----------
  lib-fts/test-fts-tokenizer - have different possible test inputs

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 6d292e2a1ce14195f7dc2045a5a8c3ef9d2d161a
      https://github.com/dovecot/core/commit/6d292e2a1ce14195f7dc2045a5a8c3ef9d2d161a
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: generic simple tokeniser - distinguish "letters" from non-"letters"

prev_type is only compared against SINGLE_QUOTE, so there will be no
behavioural differences. However, maintaining the state that we've just
seen something we are prepared to search for (very loosely, a "letter")
rather than something that we threw away (word breaks) will be important
when it comes to explicit prefix query parsing.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 07574628886862c587c715bed6adf8480bd13b8e
      https://github.com/dovecot/core/commit/07574628886862c587c715bed6adf8480bd13b8e
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - move related helpers together in file

They're logically related, and not specifically simple or tr29 related,
so keep them together, so either tokeniser can use them. Cosmetic only,
no functional changes.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: 2449c3311f13cef29af3d57c07155c95104f21a9
      https://github.com/dovecot/core/commit/2449c3311f13cef29af3d57c07155c95104f21a9
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts: tokenizer-generic - move state history setting into helper

We can read the value directly, but for encapsulation it's best to do
the shifting of the token type history into a helper in a similar way
as how it is done for tr29 tokenising.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: f87e656ba14322bbc18a18679e1ab02d2248c673
      https://github.com/dovecot/core/commit/f87e656ba14322bbc18a18679e1ab02d2248c673
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic-private.h
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts/fts-tokenizer-generic - rename more state variables - cosmetic

No need for a suffix now we've renamed the type variables.
Patch best viewed with: git show --color-words='[[:alnum:]_]+'

Unfortunately this is very churny, but there are no functional changes.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: fcfc2adf2be9398cc76c8f8e1deb333d521f81f2
      https://github.com/dovecot/core/commit/fcfc2adf2be9398cc76c8f8e1deb333d521f81f2
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic-private.h
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts/fts-tokenizer-generic - rename state variables - cosmetic

These contain types, not letters, no functional changes.

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: a12124c1211916cb199417de7c70038b8ad39b52
      https://github.com/dovecot/core/commit/a12124c1211916cb199417de7c70038b8ad39b52
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-fts/fts-tokenizer-generic.c

  Log Message:
  -----------
  lib-fts/fts-tokeniser-generic: move to container_of() for type-safety

Signed-off-by: Phil Carmody <phil at dovecot.fi>

  Commit: afe275f02e01f0e8d029b29c94ac85282d08de3e
      https://github.com/dovecot/core/commit/afe275f02e01f0e8d029b29c94ac85282d08de3e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-client.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: backends: Add trans_start() and trans_free() vfuncs.

These are called when the SMTP transaction is started and freed respectively.

  Commit: d61d016154fe2536e02dd9bd131dbc5c1c7181eb
      https://github.com/dovecot/core/commit/d61d016154fe2536e02dd9bd131dbc5c1c7181eb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-recipient.c
    M src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Record backend used for each recipient.

This is a preparation for plugins overriding the default backend for a recipient.

  Commit: 1e42c123e3eb7a35fe74ab6674f7ca39b0b548b9
      https://github.com/dovecot/core/commit/1e42c123e3eb7a35fe74ab6674f7ca39b0b548b9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Record main backend for the transaction.

This is a preparation for plugins overriding the default backend for a transaction.

  Commit: d6299811ee45f675c3300c20ac541012f315dab3
      https://github.com/dovecot/core/commit/d6299811ee45f675c3300c20ac541012f315dab3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: DATA command: Pass the total size of the data stream to the backend.

  Commit: b8297f4e94e580bde6b6682959c2120f1ec0db8f
      https://github.com/dovecot/core/commit/b8297f4e94e580bde6b6682959c2120f1ec0db8f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: DATA command: Obtain the size of the buffered data from the stream position rather than using i_stream_get_size().

  Commit: 9c18f8f35b9c3cb204eb908a26f5494518e3dfd0
      https://github.com/dovecot/core/commit/9c18f8f35b9c3cb204eb908a26f5494518e3dfd0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: relay backend: Use backend-specific settings rather than the generic submission service settings.

This way, several relay backends can be operated together with different
settings.

  Commit: 0f6823a9323f1540f782bd93981b9aef759a7c22
      https://github.com/dovecot/core/commit/0f6823a9323f1540f782bd93981b9aef759a7c22
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h

  Log Message:
  -----------
  submission: relay backend: Make struct submission_backend_relay private.

  Commit: 59fcfb6daf19ac3eb9655e62bfc5790fda0f7d3f
      https://github.com/dovecot/core/commit/59fcfb6daf19ac3eb9655e62bfc5790fda0f7d3f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: relay backend: Turn client_proxy_create() into a proper backend constructor.

  Commit: 17673c8bade3d074d491cfc0147d71c0f7f3e8ff
      https://github.com/dovecot/core/commit/17673c8bade3d074d491cfc0147d71c0f7f3e8ff
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: relay backend: Turn client_get_max_mail_size() into a relay backend vfunc.

  Commit: 0e9ae1d77f399a19089e203a112659c76c2b4dd6
      https://github.com/dovecot/core/commit/0e9ae1d77f399a19089e203a112659c76c2b4dd6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: relay backend: Turn client_proxy_input_pre/post() into relay backend vfuncs.

  Commit: 9f0ecc5db820034ff074b0bed640726040af0738
      https://github.com/dovecot/core/commit/9f0ecc5db820034ff074b0bed640726040af0738
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: relay backend: Turn client_proxy_start() into a relay backend vfunc.

  Commit: 554ef3864b27a06e63251138f86c84002d25125b
      https://github.com/dovecot/core/commit/554ef3864b27a06e63251138f86c84002d25125b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: relay backend: Turn client_proxy_destroy() into a relay backend vfunc.

  Commit: 877917d9046ae5a6bbe617133b4b0993e7515d3b
      https://github.com/dovecot/core/commit/877917d9046ae5a6bbe617133b4b0993e7515d3b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: relay backend: Turn SMTP command functions into relay backend vfuncs.

  Commit: 4eb24edcce94dc1b1e2eeb1e8d1c2f4f43eddc53
      https://github.com/dovecot/core/commit/4eb24edcce94dc1b1e2eeb1e8d1c2f4f43eddc53
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend.c
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: client: Create default backend in a separate function.

  Commit: 543b5df06e8c02702316e80020e30f0683def6b6
      https://github.com/dovecot/core/commit/543b5df06e8c02702316e80020e30f0683def6b6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    A src/submission/submission-backend.c
    M src/submission/submission-backend.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Define generic backend API.

  Commit: 7d913558753a6e2398c45ea7749f823069bdf76a
      https://github.com/dovecot/core/commit/7d913558753a6e2398c45ea7749f823069bdf76a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    M src/submission/submission-settings.c
    M src/submission/submission-settings.h

  Log Message:
  -----------
  submission: Add submission_backend_capabilities setting.

This can be used to specify which capabilities the (relay) backend supports,
avoiding the need to query the backend explicitly before the EHLO reply is sent
to the client.

  Commit: 5404598cdcb98e9e6c23d78b8d7e1945ca26f270
      https://github.com/dovecot/core/commit/5404598cdcb98e9e6c23d78b8d7e1945ca26f270
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: commands: Expect connection setup errors from relaying commands.

Subsequent changes remove the guarantee that the connection is setup successfuly
(to gain EHLO capabilities) before commands are submitted. This means that the
callbacks from commands can thereafter return connection setup errors as well.

  Commit: 0bf65f74a3eebc604db917f3f3f46a76ccb1f571
      https://github.com/dovecot/core/commit/0bf65f74a3eebc604db917f3f3f46a76ccb1f571
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.c

  Log Message:
  -----------
  lib-smtp: client: Use the new smtp_capability_find_by_name() function.

  Commit: f01f739ba211b67dad6a9e59389f6b5d3a813208
      https://github.com/dovecot/core/commit/f01f739ba211b67dad6a9e59389f6b5d3a813208
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client.h

  Log Message:
  -----------
  lib-smtp: client: Document the forced_capabilities setting.

  Commit: 9841931198e49e1a86ca1333d4c4b5eb9f3b8c2d
      https://github.com/dovecot/core/commit/9841931198e49e1a86ca1333d4c4b5eb9f3b8c2d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-common.c
    M src/lib-smtp/smtp-common.h

  Log Message:
  -----------
  lib-smtp: Add utility function for finding capabilities by name.

  Commit: 61dc9570eb27d490392aa173788cbf0f1d517140
      https://github.com/dovecot/core/commit/61dc9570eb27d490392aa173788cbf0f1d517140
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: client: Simplifly calculation of max mail size.

  Commit: 3bf48cb7cb72326817ffe568c1b062e4f289bcea
      https://github.com/dovecot/core/commit/3bf48cb7cb72326817ffe568c1b062e4f289bcea
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    M src/submission/submission-client.c
    M src/submission/submission-client.h
    M src/submission/submission-commands.c
    A src/submission/submission-recipient.c
    A src/submission/submission-recipient.h

  Log Message:
  -----------
  submission: Record accepted recipients in the client object.

Allows associating context with recipients in future changes.

  Commit: 640d87e055920d68fb18d8002ea28ec8205690c1
      https://github.com/dovecot/core/commit/640d87e055920d68fb18d8002ea28ec8205690c1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: Reformat submission-backend-relay.c.

  Commit: 0532a68b1cafac90ef04b5e7bd4d77d180261011
      https://github.com/dovecot/core/commit/0532a68b1cafac90ef04b5e7bd4d77d180261011
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Change almost all occurrences of 'proxy' to 'relay'.

This makes the naming consistent with the name of the backend. Only the lib-smtp
proxy_data is not renamed.

  Commit: 161979d777fe779b68f0feb74ab4a6456d25486f
      https://github.com/dovecot/core/commit/161979d777fe779b68f0feb74ab4a6456d25486f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: relay backend: Rename client_command_handle_proxy_reply() to backend_relay_handle_relay_reply().

Also make it accept the backend rather than the client struct.

  Commit: 195b1df4a70a72be1506752a50aeb22d9441ede1
      https://github.com/dovecot/core/commit/195b1df4a70a72be1506752a50aeb22d9441ede1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Rename *_proxy_cb() to *_callback().

  Commit: 28e2f24013ef8759e89780ba9481fc43a5c5743e
      https://github.com/dovecot/core/commit/28e2f24013ef8759e89780ba9481fc43a5c5743e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Add 'relay_' prefix to command functions and structs.

  Commit: a8a4903e06e561ea716553577e72321b9790e867
      https://github.com/dovecot/core/commit/a8a4903e06e561ea716553577e72321b9790e867
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c

  Log Message:
  -----------
  submission: relay backend: Use pointer to backend rather than client in command contexts.

  Commit: 6c5a5e82cb04e6458b5ef05037975fe152acee15
      https://github.com/dovecot/core/commit/6c5a5e82cb04e6458b5ef05037975fe152acee15
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    A src/submission/submission-backend.h
    M src/submission/submission-client.h
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move relay-related client fields to separate backend struct.

  Commit: 275b6a786342f5e1fb3ed5dcf017d841d1b2bf9f
      https://github.com/dovecot/core/commit/275b6a786342f5e1fb3ed5dcf017d841d1b2bf9f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_proxy_get_max_mail_size() to submission-backend-relay.c.

  Commit: 7d11f89039ebe2a87c94dca900a5590a59ab7a55
      https://github.com/dovecot/core/commit/7d11f89039ebe2a87c94dca900a5590a59ab7a55
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_proxy_input_pre/post() to submission-backend-relay.c.

  Commit: 646f09315fa655745165926d49c3b53a66a9f0fd
      https://github.com/dovecot/core/commit/646f09315fa655745165926d49c3b53a66a9f0fd
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_proxy_destroy() to submission-backend-relay.c.

  Commit: 4b54307fb3554004db27c975add2ce6267735d58
      https://github.com/dovecot/core/commit/4b54307fb3554004db27c975add2ce6267735d58
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_proxy_create() to submission-backend-relay.c.

  Commit: 453b47c5987c7bd19ae3c272e99702764e2cdbc2
      https://github.com/dovecot/core/commit/453b47c5987c7bd19ae3c272e99702764e2cdbc2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Move client_proxy_start() to submission-backend-relay.c.

  Commit: 46d8457c6fc8770b38fd9250ff87874d17e778b4
      https://github.com/dovecot/core/commit/46d8457c6fc8770b38fd9250ff87874d17e778b4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Split off obtaining the relay connection capabilities into a separate function.

  Commit: 8c319c7a45e19aa553f72d0e355cd3d8b4f2c051
      https://github.com/dovecot/core/commit/8c319c7a45e19aa553f72d0e355cd3d8b4f2c051
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Split off corking and uncorking the relay connection in a separate function.

  Commit: e7617d8ff42c08ec65f82dfedc63c8791245540e
      https://github.com/dovecot/core/commit/e7617d8ff42c08ec65f82dfedc63c8791245540e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Split off closing the relay connection in a separate function.

  Commit: 8d872593774592f1dfcd8b394729620fe2dbcce0
      https://github.com/dovecot/core/commit/8d872593774592f1dfcd8b394729620fe2dbcce0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c

  Log Message:
  -----------
  submission: Split off starting the relay connection in a separate function.

  Commit: 84191f49186af1924ec9bfa265ce6e9f9918bd1f
      https://github.com/dovecot/core/commit/84191f49186af1924ec9bfa265ce6e9f9918bd1f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Remove client_proxy_is_disconnected().

It is not used anywhere.

  Commit: a47cf1f11bdd98b3d3fc2a187b1e20160cd3bdf2
      https://github.com/dovecot/core/commit/a47cf1f11bdd98b3d3fc2a187b1e20160cd3bdf2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: Remove client_proxy_is_ready().

It is not used anywhere.

  Commit: 85f0f33c5213d572456634e11b8f1e56c305702d
      https://github.com/dovecot/core/commit/85f0f33c5213d572456634e11b8f1e56c305702d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-quit.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of QUIT command to submission-backend-relay.c.

  Commit: 310f56832ba8e7ded2525d92473848921978f6fe
      https://github.com/dovecot/core/commit/310f56832ba8e7ded2525d92473848921978f6fe
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-quit.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of QUIT command to submission-commands.c.

  Commit: a9a0f6ace5540c86aa68028ac86259954d6af0b8
      https://github.com/dovecot/core/commit/a9a0f6ace5540c86aa68028ac86259954d6af0b8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-noop.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of NOOP command to submission-backend-relay.c.

  Commit: 726c883539957fd8a4c7517d494f535f52245cbe
      https://github.com/dovecot/core/commit/726c883539957fd8a4c7517d494f535f52245cbe
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-noop.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of NOOP command to submission-commands.c.

  Commit: f53bb2ac1cccc893d6cf07b59873b9df9a13a1e1
      https://github.com/dovecot/core/commit/f53bb2ac1cccc893d6cf07b59873b9df9a13a1e1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-vrfy.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of VRFY command to submission-backend-relay.c.

  Commit: 47bb64135ede12f6790b406bbe025a312c08b4a4
      https://github.com/dovecot/core/commit/47bb64135ede12f6790b406bbe025a312c08b4a4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-vrfy.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of VRFY command to submission-commands.c.

  Commit: 5168a6838e334f930d25d34bb55248190365d565
      https://github.com/dovecot/core/commit/5168a6838e334f930d25d34bb55248190365d565
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-data.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move BURL command implementation to submission-commands.c.

  Commit: 2dbb36ce557c2b7540d3fb8f1d88983cfedb3314
      https://github.com/dovecot/core/commit/2dbb36ce557c2b7540d3fb8f1d88983cfedb3314
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-data.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of DATA command to submission-backend-relay.c.

  Commit: d616e0edb59e7e4283ff042161ccfa0aad1bdb6d
      https://github.com/dovecot/core/commit/d616e0edb59e7e4283ff042161ccfa0aad1bdb6d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-data.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of DATA command to submission-commands.c.

  Commit: 353f551ebea18f079bdee5c025ac4c7fe59101c7
      https://github.com/dovecot/core/commit/353f551ebea18f079bdee5c025ac4c7fe59101c7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-rset.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of RSET command to submission-backend-relay.c.

  Commit: 85ad60b78b59d9fb4d64584c5ce016cabc6b6854
      https://github.com/dovecot/core/commit/85ad60b78b59d9fb4d64584c5ce016cabc6b6854
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-rset.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of RSET command to submission-commands.c.

  Commit: 52da00861ed90fdc50621aef2080b5bf12269098
      https://github.com/dovecot/core/commit/52da00861ed90fdc50621aef2080b5bf12269098
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-rcpt.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of RCPT command to submission-backend-relay.c.

  Commit: 76f7ac4d5903809c30c0758db7ebfe264b7f0a49
      https://github.com/dovecot/core/commit/76f7ac4d5903809c30c0758db7ebfe264b7f0a49
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-rcpt.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of RCPT command to submission-commands.c.

  Commit: aaedb98d65fe490689b35161e48c9f512df02e4d
      https://github.com/dovecot/core/commit/aaedb98d65fe490689b35161e48c9f512df02e4d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-mail.c
    M src/submission/submission-backend-relay.c
    M src/submission/submission-backend-relay.h
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of MAIL command to submission-backend-relay.c.

  Commit: f65b6d84a727af1d8386b1e8887a670e6af4c24b
      https://github.com/dovecot/core/commit/f65b6d84a727af1d8386b1e8887a670e6af4c24b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-mail.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of MAIL command to submission-commands.c.

  Commit: baa1ecb27e31864ddfd1b3572d9a7b7c7208431b
      https://github.com/dovecot/core/commit/baa1ecb27e31864ddfd1b3572d9a7b7c7208431b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    D src/submission/cmd-helo.c
    M src/submission/submission-backend-relay.c
    A src/submission/submission-backend-relay.h
    M src/submission/submission-commands.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Move relay part of HELO/EHLO command to submission-backend-relay.c.

  Commit: 61eaa9823ecd76f89eaf3a184ce8a74175ed6155
      https://github.com/dovecot/core/commit/61eaa9823ecd76f89eaf3a184ce8a74175ed6155
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-helo.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move generic part of HELO/EHLO command to submission-commands.c.

  Commit: 0a408b1e4b47ee4cd10ab21e26bb247b03da6cd6
      https://github.com/dovecot/core/commit/0a408b1e4b47ee4cd10ab21e26bb247b03da6cd6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-quit.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the QUIT command into a generic part and a part related to relaying to an MTA.

  Commit: c6efca708c74659e93d2b555855171d1e58ec480
      https://github.com/dovecot/core/commit/c6efca708c74659e93d2b555855171d1e58ec480
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-noop.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the NOOP command into a generic part and a part related to relaying to an MTA.

  Commit: 743c5e7167e3a8358faa37dfd885120ec5ba0ab3
      https://github.com/dovecot/core/commit/743c5e7167e3a8358faa37dfd885120ec5ba0ab3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-vrfy.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the VRFY command into a generic part and a part related to relaying to an MTA.

  Commit: d574b79d23956906806a69b20ec25e46268f10a4
      https://github.com/dovecot/core/commit/d574b79d23956906806a69b20ec25e46268f10a4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-data.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the DATA command into a generic part and a part related to relaying to an MTA.

  Commit: 60f68f6db840e8e5ab2d2e363fd7077da9d295a5
      https://github.com/dovecot/core/commit/60f68f6db840e8e5ab2d2e363fd7077da9d295a5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-rset.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the RSET command into a generic part and a part related to relaying to an MTA.

  Commit: 20f1717ae646146d4d504630b7ac032a903ff5c9
      https://github.com/dovecot/core/commit/20f1717ae646146d4d504630b7ac032a903ff5c9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-rcpt.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the RCPT command into a generic part and a part related to relaying to an MTA.

  Commit: 62edb8ef8230dcf8567a0bc9f55f3f9fd274cfb8
      https://github.com/dovecot/core/commit/62edb8ef8230dcf8567a0bc9f55f3f9fd274cfb8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-mail.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the MAIL command into a generic part and a part related to relaying to an MTA.

  Commit: f6a03d19643a873120c2cb6a779010d2144df794
      https://github.com/dovecot/core/commit/f6a03d19643a873120c2cb6a779010d2144df794
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-helo.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Split the EHLO command into a generic part and a part related to relaying to an MTA.

  Commit: 2e3ba497e4772444fb2ac8bc7d6cd63e28ba6332
      https://github.com/dovecot/core/commit/2e3ba497e4772444fb2ac8bc7d6cd63e28ba6332
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-helo.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move submission_helo_reply_submit() from cmd-helo.c to submission-commands.c.

  Commit: 54ebd8cf5e21cdb9e1de6e7b03dc0339e0f4407a
      https://github.com/dovecot/core/commit/54ebd8cf5e21cdb9e1de6e7b03dc0339e0f4407a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/cmd-helo.c
    M src/submission/submission-commands.h

  Log Message:
  -----------
  submission: Make HELO/EHLO reply submission a separate public function.

  Commit: 186c8b0c73916bd60d82a884fca1a54b178c2365
      https://github.com/dovecot/core/commit/186c8b0c73916bd60d82a884fca1a54b178c2365
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/Makefile.am
    A src/submission/submission-backend-relay.c
    M src/submission/submission-commands.c

  Log Message:
  -----------
  submission: Move client_command_handle_proxy_reply() to submission-backend-relay.c.

  Commit: abb0ef1f53952210051776d61fad177a81a0b141
      https://github.com/dovecot/core/commit/abb0ef1f53952210051776d61fad177a81a0b141
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/submission/submission-client.h

  Log Message:
  -----------
  submission: client: Remove spurious forward declaration of "struct client_command_context".

  Commit: 56117870f9292e613e9739e6ee9a582e22984d2e
      https://github.com/dovecot/core/commit/56117870f9292e613e9739e6ee9a582e22984d2e
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-client-connection.h

  Log Message:
  -----------
  lib-smtp: client: Add forward declaration for struct smtp_client_settings in smtp-client-connection.h.

  Commit: 88f0f045d85e9876b53c21f2edde6b129f43d0b7
      https://github.com/dovecot/core/commit/88f0f045d85e9876b53c21f2edde6b129f43d0b7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-connection.c

  Log Message:
  -----------
  lib-smtp: server: Drop pending commands and transaction at disconnect rather than destroy.

This makes sure the conn_trans_free() connection callback is called before
th conn_disconnect() callback. This makes more sense than the other way around,
which instead would be a likely cause for mishaps causing segfaults and the
like.

  Commit: 8195dee0a338aed07c04ddf3baa96d24701e14ae
      https://github.com/dovecot/core/commit/8195dee0a338aed07c04ddf3baa96d24701e14ae
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server.h

  Log Message:
  -----------
  lib-smtp: server: Add callback for transaction start.

  Commit: a877a6897fb8aebb60c7e0c76a9ec64dafdddff2
      https://github.com/dovecot/core/commit/a877a6897fb8aebb60c7e0c76a9ec64dafdddff2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M src/lib-smtp/smtp-server-cmd-auth.c
    M src/lib-smtp/smtp-server-cmd-data.c
    M src/lib-smtp/smtp-server-cmd-helo.c
    M src/lib-smtp/smtp-server-cmd-mail.c
    M src/lib-smtp/smtp-server-cmd-rcpt.c
    M src/lib-smtp/smtp-server-cmd-rset.c
    M src/lib-smtp/smtp-server-cmd-starttls.c
    M src/lib-smtp/smtp-server-cmd-xclient.c
    M src/lib-smtp/smtp-server-command.c
    M src/lib-smtp/smtp-server-private.h
    M src/lib-smtp/smtp-server.h
    M src/lib-smtp/test-smtp-server-errors.c
    M src/lmtp/commands.c
    M src/lmtp/lmtp-local.c
    M src/lmtp/lmtp-proxy.c
    M src/submission-login/submission-proxy.c
    M src/submission/cmd-data.c
    M src/submission/cmd-helo.c
    M src/submission/cmd-mail.c
    M src/submission/cmd-noop.c
    M src/submission/cmd-quit.c
    M src/submission/cmd-rcpt.c
    M src/submission/cmd-rset.c
    M src/submission/cmd-vrfy.c

  Log Message:
  -----------
  lib-smtp: server: Change command hooks API to allow many parallel hooks with individual context.

This e.g. allows many server plugins to hook into command execution without
interfering with eachother.

  Patch: https://github.com/dovecot/core/compare/f53edc22ea0f...b8cc5abe094f.patch


More information about the dovecot-cvs mailing list