2019-04-05 10:35:01 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (38c8f1daf)

    Released v2.3.5.2


M	NEWS
M	configure.ac

2019-04-02 13:09:48 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (973769d74)

    lib: json - Escape invalid UTF-8 as unicode bytes

    This prevents dovecot from crashing if invalid UTF-8 input is given.

M	src/lib/json-parser.c
M	src/lib/test-json-parser.c

2019-03-18 12:54:07 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (7ec6d0ade)

    Released v2.3.5.1


M	NEWS
M	configure.ac

2019-02-04 19:25:13 -0800 Timo Sirainen <timo.sirainen@open-xchange.com> (696320b0f)

    fts: Fix buffer overflow when reading oversized fts header


M	src/plugins/fts/fts-api.c

2019-02-04 19:23:02 -0800 Timo Sirainen <timo.sirainen@open-xchange.com> (578cf77e8)

    lib-storage: Fix buffer overflow when reading oversized hdr-pop3-uidl header


M	src/lib-storage/index/index-pop3-uidl.c

2019-02-25 13:21:31 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (513208660)

    Released v2.3.5.


M	NEWS
M	configure.ac

2019-02-25 20:55:03 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (cb6af3a04)

    fs-posix: fs_read_stream() - Don't close file's fd

    This is especially important with newly created files, because they may 
    still be accessed after reading. The next file access attempt after 
    fs_read_stream() might cause the file to be recreated and crash.

    Fixes: Panic: file fs-posix.c: line 252 (fs_posix_create): assertion failed:
    (file->temp_path == NULL)

M	src/lib-fs/fs-posix.c

2019-02-19 10:49:37 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (8cfb03a1f)

    lib: test-istream-seekable - Add asserts to make sure blocking state changes
    at EOF


M	src/lib/test-istream-seekable.c

2019-02-19 10:22:43 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (ba43795f2)

    lib-storage: mail_get_*stream*() - Assert that returned streams are blocking

    Several callers already rely on them being blocking. Making these asserts 
    explicit makes sure that any bugs are caught early.

M	src/lib-storage/mail.c

2019-02-19 10:17:45 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (c71f089f5)

    lib: istream-seekable - Change stream to be blocking=TRUE after reaching EOF

    After EOF is reached, the stream is now fully read into file or memory. 
    read()s can no longer return 0, so blocking=TRUE can be used.

    Some callers were reusing the seekable stream in places that required 
    blocking=TRUE.

    Fixes at least with imapsieve vnd.dovecot report extension: Panic: file
    ostream.c: line 427 (o_stream_nsend_istream): assertion failed:
    (instream->blocking)

M	src/lib/istream-seekable.c

2019-02-19 11:31:45 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (a57998e76)

    lib-ssl-iostream: iostream-ssl-test - Update the test certificate to have
    very long expiry period.

    The old certificate expired after one year, which causes all kinds of unit
    test failures.

M	src/lib-ssl-iostream/iostream-ssl-test.c

2018-08-30 16:40:16 +0300 Timo Sirainen <timo.sirainen@dovecot.fi> (28caca174)

    lib-http: Add assert to make sure http_client_init_shared(NULL, NULL) isn't
    called

    This should make scan-build happy.

M	src/lib-http/http-client.c

2018-12-27 14:13:15 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (511f513f6)

    lib-smtp: client: Move connection to TRANSACTION state immediately when a
    transaction is started.

    Before, it waited until the actual start handler was called from timeout,
    but that causes a race condition with
    mtp_client_connection_abort_transaction(), which in turn causes an assert
    panic.

    Panic was:

    Panic: file smtp-client-connection.c: line 2153
    (smtp_client_connection_abort_transaction): assertion failed: (conn->state
    != SMTP_CLIENT_CONNECTION_STATE_READY)

M	src/lib-smtp/smtp-client-connection.c

2018-11-11 20:41:18 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (cd7ea3c82)

    lib-smtp: client: Properly reset connection state upon reconnect.


M	src/lib-smtp/smtp-client-connection.c

2018-11-11 20:32:09 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (615d91af7)

    lib-smtp: client: connection: Prevent timeout leak for transaction start.

    Perform timeout management in a single place. Also, always start the next 
    transaction only through a timeout.

M	src/lib-smtp/smtp-client-connection.c

2019-01-14 14:37:03 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (808f0731c)

    m4: Fix moduledir behaviour

    This is mainly a fix for plugins that depend on dovecot.m4

M	configure.ac
M	m4/dovecot.m4

2018-06-19 15:30:36 +0300 Phil Carmody <phil@dovecot.fi> (b5a86f084)

    m4/dovecot.m4: rename valgrind output file to hide it from certain tests

    Some lib-http tests use readdir() to create test cases, and sometimes object
    to the contents of test.out.$$. However, as lib-http is also sensitive to
    certain characters in the filenames of the files it uses, we can hide the
    valgrind output by chosing its filename to exclude it from the lib_http
    tests. Non-initial '~' is not known to cause any issues for either the shell
    or any known operating system, so is the safest of lib-http's 'dodgy'
    characters to use as the separator.

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

M	m4/dovecot.m4

2018-08-29 14:57:45 +0300 Phil Carmody <phil@dovecot.fi> (a8d087136)

    m4/dovecot.m4 - Apply DRY principle to test output filename

    Define the name we will use for the file once, then just use that variable 
    instead of using explicit repeatition.

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

M	m4/dovecot.m4

2018-06-04 19:58:23 +0300 Phil Carmody <phil@dovecot.fi> (764ef7e00)

    m4/dovecot.m4: run-test.sh - disable valgrind for individual tests

    OpenSSL doesn't like valgrind on my setup, so permit a local instalation to
    have a list of excluded binaries that won't use valgrind in make check.

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

M	m4/dovecot.m4

2018-06-19 13:29:46 +0300 Phil Carmody <phil@dovecot.fi> (e1e7ff077)

    lib-http: increase pool sizes in tests

    Pool growth messages spam the test output, just dive in with a slightly 
    larger default to shut them up. Only affects these individual tests, not any
    other users of the library.

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

M	src/lib-http/test-http-payload.c
M	src/lib-http/test-http-server-errors.c

2018-06-19 13:28:12 +0300 Phil Carmody <phil@dovecot.fi> (18b8e66b9)

    lib-http: change default client/server pool sizes when using SSL

    SSL carries a lot of state with it, so just start with a bigger pool if we
    know we're using it.

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

M	src/lib-http/http-client.c
M	src/lib-http/http-server.c

2018-06-14 08:51:37 +0300 Phil Carmody <phil@dovecot.fi> (4db5e9398)

    lib-http: harden payload tests against dodgy filenames

    Tests use files from readdir() as input, but do no sanitation of the names,
    and therefore things like editor temp files can cause havoc with the HTTP
    request parser.

    The solution is to trap dodgy characters in the filenames, and ignore those
    files. Initially, trap HTTP's "unsafe" and "reserved" characters.

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

M	src/lib-http/test-http-payload.c

2019-01-07 15:35:07 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (690b2c968)

    lib-mail: ostream-dot - Add unit test for parent stream buffer being almost
    full.


M	src/lib-mail/test-ostream-dot.c

2018-12-15 16:32:22 +0200 Timo Sirainen <timo.sirainen@dovecot.fi> (cc1c3fb1e)

    lib-mail: ostream-dot - Add asserts to make sure max_bytes doesn't underflow


M	src/lib-mail/ostream-dot.c

2018-12-15 16:24:42 +0200 Timo Sirainen <timo.sirainen@dovecot.fi> (3df4e47db)

    lib-mail: ostream-dot - Fix potential assert-crash when parent stream buffer
    gets full

    If max_bytes=1, the (max_bytes-2) calculation brings it to (size_t)-1. This 
    causes too much data to be sent to the parent stream, which then returns a 
    partial write and causes an assert-crash.

    The final chunk calculation doesn't need the -2 check, because additional 
    bytes aren't inserted at that point.

    Fixes: Panic: file ostream-dot.c: line 208 (o_stream_dot_sendv): assertion
    failed: ((size_t)ret == sent + added)

M	src/lib-mail/ostream-dot.c

2018-02-20 12:04:13 +0200 Aki Tuomi <aki.tuomi@dovecot.fi> (848d08733)

    lib: Fix buffer code to satisfy static analyzers


M	src/lib/buffer.c

2018-02-08 11:56:08 +0200 Aki Tuomi <aki.tuomi@dovecot.fi> (c6ec64a05)

    lib: randgen - Init seed to 0

    Satisfies static analyzer, the seed is guaranteed to get filled with random
    data.

M	src/lib/randgen.c

2018-02-08 11:45:20 +0200 Aki Tuomi <aki.tuomi@dovecot.fi> (94dc9b097)

    trash: Use TRASH_USER_CONTEXT_REQUIRE

    Satisfies static analyzer

M	src/plugins/trash/trash-plugin.c

2018-01-30 14:14:42 +0200 Phil Carmody <phil@dovecot.fi> (8463321f5)

    lib/randgen - warn when DOVECOT_SRAND is not able to be used

    As suggested by Jeff, it's friendly to warn if we're unable to act upon the
    request for reproduceable random numbers because we're not built for that.

    Note, this deliberately permits a blank string, so that you can silence the
    warning by prefixing a command with an empty
     DOVECOT_SRAND= which is taken as an explicit attempt to disable use of the
    feature.

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

M	src/lib/randgen.c

2017-12-11 14:03:13 +0200 Phil Carmody <phil@dovecot.fi> (00a398525)

    lib/lib-test: restore DOVECOT_SRAND feature in DEBUG builds

    Add a deterministic PRNG, an ability to force its use, and an ability to
    re-use the same sequence later.

    Since proper random numbers have been forced into use, making reproducable
    tests isn't quite as easy as it used to be, it's 3 steps rather than 2. When
    seeing an intermittent test failure:
    - rerun the tests with environmental variable DOVECOT_SRAND=kiss
    - upon seeing a new failure case, note the seed logged at the failure
    - debug using DOVECOT_SRAND=<that number>

    In non-DEBUG builds, there's no trace of this code, and the randomisation
    that is an inherent part of many tests remains non-reproduceable.

    Works with all of the RNG preferences, getrandom/urandom/arc4.

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

M	src/lib-test/test-common.c
M	src/lib/randgen.c
M	src/lib/randgen.h

2018-12-03 18:45:43 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (b8cc5abe0)

    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.

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

2018-12-03 18:45:43 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (0932c42a7)

    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.

M	src/submission/submission-backend-relay.c

2018-12-03 18:45:42 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (fdc3046b9)

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

M	src/submission/submission-client.c

2018-12-03 18:45:42 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (c02fdbb83)

    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.

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

2018-12-03 18:45:41 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (3a08f5c05)

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


M	src/lib-smtp/smtp-client-connection.c

2018-12-03 18:45:40 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (945214b32)

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

    Keeps ordering of functions logical for next changes.

M	src/lib-smtp/smtp-client-connection.c

2018-12-03 18:45:40 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (0d883b2cc)

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


M	src/submission/submission-backend-relay.c

2018-12-03 18:45:39 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (be6f4099a)

    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.

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

2018-12-03 18:45:39 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (da2b4d7d5)

    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.

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

2018-12-03 18:45:38 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (f69d83143)

    lib-smtp: client: Add smtp_client_connection_update_proxy_data().

    Allows updating the proxy data after creation of the connection.

M	src/lib-smtp/smtp-client-connection.c
M	src/lib-smtp/smtp-client-connection.h

2018-12-03 18:45:38 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (98679b003)

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


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

2018-12-03 18:45:37 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (d4d719f8a)

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


M	src/lib-smtp/smtp-client-connection.c

2018-12-03 18:45:36 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (1128d1574)

    lib-smtp: common: Add smtp_proxy_data_merge().


M	src/lib-smtp/smtp-common.c
M	src/lib-smtp/smtp-common.h

2018-12-03 18:45:35 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (51e1340e3)

    lib-smtp: client: Drop smtp_client_command_mail_submit_after().

    It is not used.

M	src/lib-smtp/smtp-client-command.c
M	src/lib-smtp/smtp-client-command.h

2018-12-03 18:45:24 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (f758ca68f)

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


M	src/lib-smtp/smtp-client-connection.c

2018-12-03 18:45:17 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (11de7fcbe)

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


M	src/lib-smtp/smtp-syntax.c

2018-11-09 13:03:43 +0200 Timo Sirainen <timo.sirainen@dovecot.fi> (54e41f5cb)

    submission: Install header files

    This allows creating external submission plugins.

M	src/submission/Makefile.am

2018-10-31 17:19:42 +0200 Timo Sirainen <timo.sirainen@dovecot.fi> (3bef9e55e)

    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.

M	src/lib-fs/fs-api.c

2018-11-02 10:39:17 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (88b909cbf)

    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.

M	src/submission/submission-backend-relay.c

2018-11-02 10:37:22 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (8b60a188f)

    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.

M	src/submission/submission-client.c

2018-11-02 10:26:53 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (cb4aae7dd)

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


M	src/lib-smtp/smtp-server-connection.c

2018-11-02 10:43:11 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (c4fd34ba9)

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

    Convert it to a single line string.

M	src/lib-smtp/smtp-server-connection.c

2018-11-02 10:23:42 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (673327ca7)

    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.

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

2018-11-02 10:17:30 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (4a6cdec31)

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


M	src/lib-smtp/smtp-server-connection.c

2018-11-02 10:14:57 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (7b724a029)

    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.

M	src/lib-smtp/smtp-reply.c
M	src/lib-smtp/smtp-reply.h

2018-11-02 10:11:35 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (064e379ad)

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


M	src/lib-smtp/smtp-reply-parser.c
M	src/lib-smtp/smtp-reply-parser.h

2018-11-02 10:12:20 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (b8ebcd650)

    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

M	src/lib/strfuncs.c
M	src/lib/strfuncs.h
M	src/lib/test-strfuncs.c

2018-11-02 10:08:26 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (03e2a66ad)

    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.

M	src/lib-smtp/smtp-client-transaction.c

2018-11-01 01:14:50 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (2d16e2ed5)

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

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

2018-11-01 00:58:47 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (04c9d141d)

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


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

2018-11-01 01:25:10 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (ce9373c8d)

    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.

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

2018-11-01 00:12:03 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (43fa7cdef)

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


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

2018-11-01 01:40:10 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (c76bb01ce)

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


M	src/lib-smtp/smtp-server-command.c

2018-11-01 00:44:10 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (f4116a486)

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

    Makes the next changes easier.

M	src/lib-smtp/smtp-server-command.c

2018-11-01 00:39:21 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (c45761a4d)

    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.

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

2018-11-01 00:27:50 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (48dba2d13)

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


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

2018-11-01 22:22:34 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (352703891)

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


M	src/lib-smtp/smtp-client-private.h
M	src/lib-smtp/smtp-server-private.h

2018-10-30 09:53:07 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (00493144c)

    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.

M	src/submission/submission-backend-relay.c

2018-10-30 09:57:31 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (aeb96b2c1)

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


M	src/submission/submission-backend-relay.c

2018-10-29 01:36:43 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (9bc54d9cd)

    submission: Make include directory available to external plugins.


M	dovecot-config.in.in
M	m4/dovecot.m4

2018-10-25 23:50:55 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (5c0cc0210)

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


M	src/submission/submission-backend-relay.c
M	src/submission/submission-backend-relay.h

2018-10-18 02:15:07 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (3a9aefff5)

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

    This is non-standard.

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

2018-10-27 12:20:01 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (0df4aa4e9)

    submission: Add support for module contexts to backend.


M	src/submission/submission-backend.c
M	src/submission/submission-backend.h

2018-10-27 11:56:59 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (d538e88c0)

    submission: Allocate each backend on its own pool.

    This allows allocating per-backend module data.

M	src/submission/submission-backend-relay.c
M	src/submission/submission-backend.c
M	src/submission/submission-backend.h

2018-10-26 21:00:00 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (9989814e4)

    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.

M	src/submission/submission-backend-relay.c
M	src/submission/submission-backend.c
M	src/submission/submission-backend.h

2018-10-26 17:00:32 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (7ec923c74)

    submission: Add backend flag indicating whether the backend is ready.

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

M	src/submission/submission-backend.c
M	src/submission/submission-backend.h

2018-10-18 23:35:05 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (88a15ca2f)

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

M	src/submission/submission-backend.c
M	src/submission/submission-backend.h

2018-10-25 23:50:22 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (f9eb4572c)

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


M	src/lib-smtp/smtp-params.h

2018-10-17 01:34:54 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (c04e36ae1)

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


M	src/submission/submission-backend-relay.c
M	src/submission/submission-backend-relay.h

2018-10-16 23:58:23 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (6b49a299c)

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


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

2018-10-17 00:59:02 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (e559e8207)

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


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

2018-10-17 01:05:07 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (7d2ffc678)

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

    Allows clearing it reliably.

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

2018-10-26 22:26:53 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (00640bd83)

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


M	src/submission/submission-backend.h
M	src/submission/submission-client.h

2018-10-25 21:02:46 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (48dd6d5b3)

    submission: Use the new smtp_server_cmd_noop_reply_success() function.


M	src/submission/submission-backend-relay.c

2018-03-12 02:59:28 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (343d00daa)

    lmtp: local: Use the new smtp_server_cmd_rcpt_reply_success() function.


M	src/lmtp/lmtp-local.c

2018-10-25 20:29:30 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (5acc9d5dd)

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


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

2018-10-25 20:38:26 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (039673b55)

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


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

2018-03-12 01:03:24 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (cc446d240)

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


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

2018-03-12 01:01:46 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (8201b5e4b)

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


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

2018-10-28 12:08:50 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (7770b655a)

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


M	src/submission/submission-backend-relay.c

2018-10-28 12:08:13 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (fb410a48d)

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


M	src/submission/submission-backend.c

2018-10-19 17:39:36 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (025c10a95)

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


M	doc/example-config/conf.d/20-submission.conf

2018-10-29 17:27:17 +0100 Stephan Bosch <stephan.bosch@dovecot.fi> (a76252030)

    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.

M	src/submission-login/client.c
M	src/submission/submission-client.c

2018-10-19 17:12:10 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (f69da23f5)

    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.

M	src/submission/submission-backend-relay.c

2018-10-19 17:02:08 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (325c32c7b)

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


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

2018-10-19 16:42:41 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (eb62300ff)

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


M	src/submission-login/client-authenticate.c
M	src/submission/submission-client.c
M	src/submission/submission-commands.c

2018-10-19 11:15:50 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (37c38c6b7)

    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.

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

2018-10-19 11:24:35 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (11994647a)

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

    The post-login service does it too.

M	src/submission-login/client-authenticate.c

2018-10-19 00:35:53 +0200 Stephan Bosch <stephan.bosch@dovecot.fi> (e2d3eb0a8)

    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.

M	src/submission/submission-backend.c
