2022-06-13 13:28:22 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9b53102964)

    NEWS: Add news for 2.3.19.1


M	NEWS

2022-06-13 09:56:13 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a04e1b9abf)

    doveadm deduplicate: Allocate memory properly for keys in hash table

    This caused wrong mails to be deleted somewhat randomly. Broken by
    320844f50cd669b602d30210e2e5216f65d2050f

M	src/doveadm/doveadm-mail-deduplicate.c

2022-05-24 15:52:26 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (38b7195efe)

    lib-compression: istream-decompress - Copy parent stream name

    This is needed, because istream-decompress doesn't actually use the parent 
    stream as the istream parent.

M	src/lib-compression/istream-decompress.c

2022-05-18 11:31:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (8a8380a410)

    auth: Fix assert-crash in iterating multiple userdbs

    Broken by 501e17ba6b448ba3c88338596e0e8f99f0693f79

    Fixes: Panic: file userdb-blocking.c: line 125 (userdb_blocking_iter_next):
    assertion failed: (ctx->conn != NULL)

M	src/auth/auth-master-connection.c

2022-05-04 15:47:03 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (b3ad6004dc)

    NEWS: Update date for 2.3.19 news


M	NEWS

2022-05-03 00:27:47 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f539a7e18c)

    fts: Fix optimizing searches in virtual mailboxes without up-to-date indexes

    This could have caused header searches in virtual mailboxes to not return 
    all results when fts_enforced!=yes

    Broken by 9705b81fb51b5bdeaba12932a390ced2cc9dcad7

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

2022-04-26 09:30:10 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e55db06e1a)

    NEWS: Add news for 2.3.19


M	NEWS

2022-02-01 19:29:46 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (1f1e770332)

    NEWS: Update news for 2.3.18 - final fixups


M	NEWS

2022-01-12 11:34:02 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (4ab62982e3)

    NEWS: Update news for 2.3.18


M	NEWS

2022-04-25 10:43:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f28361b357)

    lib-lua: dlua-dovecot-http - Support more settings with HTTP client


M	src/lib-lua/dlua-dovecot-http.c

2022-04-25 14:27:12 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (c6dd084a6d)

    lib-http: Rename max_auto_retry_delay to max_auto_retry_delay_secs


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

2022-04-26 09:35:15 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f3bfa1d5ab)

    configure: Update version


M	configure.ac

2022-04-19 11:42:05 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (1c6c3c320d)

    auth: auth_worker_call() - Return void instead of the connection

    The return value is no longer necessary, and it most likely would just be 
    used wrong.

M	src/auth/auth-worker-server.c
M	src/auth/auth-worker-server.h

2022-04-19 11:40:52 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (94577c4450)

    auth: Fix crash when user iteration request is queued

    auth_worker_call() returns NULL when the request couldn't be handled 
    immediately, which would result in NULL pointer dereference later on.

M	src/auth/userdb-blocking.c

2022-04-19 11:39:35 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f89c9e587e)

    auth: Add connection parameter to auth_worker_callback_t


M	src/auth/auth-worker-server.c
M	src/auth/auth-worker-server.h
M	src/auth/passdb-blocking.c
M	src/auth/passdb-cache.c
M	src/auth/userdb-blocking.c

2022-04-14 13:46:59 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (865fb4f3c1)

    doveadm: Fix hang when flushing a corked print-ostream

    This could have happened at least with doveadm sync/backup command, i.e.
    causing replication to hang until timeout is reached:

    Error: write(<local>) failed: Timed out after 60 seconds

M	src/doveadm/doveadm-print-server.c

2022-04-08 15:59:59 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (0dd36a73e4)

    lib-index: Always write tail offset the same as head offset

    The mail_index_write() must not be called unless this is safe to do. This
    prevents unnecessarily reading through dovecot.index.log between tail..head
    offsets, which can be expensive due to modseq calculation.

M	src/lib-index/mail-index-write.c

2022-04-08 15:10:53 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (aa7d67e6d6)

    lib-index: Optimize modseq scanning by using the modseq header in index

    View is very commonly set to start reading new changes since dovecot.index 
    was last written. When reading the newer records in dovecot.index.log, the 
    modseq of each change is needed to be known. However, the initial modseq 
    calculation was usually done inefficiently by reading the whole 
    dovecot.index.log from the beginning of the file. This change prevents that
    by using instead the "modseq" header in dovecot.index to get the initial
    modseq.

M	src/lib-index/mail-index-map-read.c
M	src/lib-index/mail-index-modseq.c
M	src/lib-index/mail-index-modseq.h
M	src/lib-index/mail-index-private.h
M	src/lib-index/mail-transaction-log-modseq.c

2022-04-08 13:42:55 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (40e2a21f83)

    lib-index: Handle 0-sized dovecot.index.log record properly

    The previous behavior was to just silently ignore it and have the next write 
    to the transaction log silently truncate away the trailing garbage.

    Now if the log file isn't locked the issue is still ignored, since it's 
    possible that this is just a race condition. But if the log is locked, it's
    handled as corruption.

M	src/lib-index/mail-transaction-log-file.c

2022-04-12 10:12:11 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (36cbfb8e2b)

    lib: test-event-flatten - Use __FILE__ to get correct expected filename

    Fixes out of tree buids

    Broken in 4f752d381c8e19dd07d1e593996d02294668c8b6

M	src/lib/test-event-flatten.c

2022-03-01 10:01:06 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (5c2f3d0b85)

    auth: db-oauth2 - Fix off by one in oauth2 variable handling

    Broken in 9b670175445a75987a713ff899d1a945255b0b5b

M	src/auth/db-oauth2.c

2022-03-21 11:03:03 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (dc40c6dbcf)

    dsync: Properly terminate escape_chars when escaping mailbox names

    Broken by 596c5a52e7e554571285e90063712cb0d37b34eb

M	src/doveadm/dsync/dsync-brain-mailbox-tree.c

2022-03-02 09:39:30 -0500 Timo Sirainen <timo.sirainen@open-xchange.com> (9e7503d439)

    dsync: Fix hierarchical mailbox name parts individually

    For example with filesystem-based mailbox formats it's not allowed to create
    "box/../child" mailbox. With previous code dsync just gave up and created 
    the mailbox name based on its GUID. This is now improved to instead try to 
    insert '_' character after each hierarchy separator so the newly fixed 
    mailbox name is "box/_../child".

M	src/doveadm/dsync/dsync-brain-mailbox-tree.c

2022-03-01 08:37:57 -0500 Timo Sirainen <timo.sirainen@open-xchange.com> (801aae4bd5)

    dsync: Escape and unescape mailbox names as needed

    This should fix various issues with syncing local and remote mailbox names. 
    It especially avoids changing the escape character to alt_char.

M	src/doveadm/dsync/dsync-brain-mailbox-tree.c
M	src/doveadm/dsync/dsync-mailbox-tree.c
M	src/doveadm/dsync/test-dsync-mailbox-tree-sync.c

2022-03-01 11:51:04 -0500 Timo Sirainen <timo.sirainen@open-xchange.com> (cfd1b0687f)

    dsync: Track whether escape character was added just for dsync

    Will be used by the following commit

M	src/doveadm/doveadm-dsync.c
M	src/doveadm/dsync/dsync-brain.c
M	src/doveadm/dsync/dsync-brain.h

2022-03-01 08:36:55 -0500 Timo Sirainen <timo.sirainen@open-xchange.com> (60ae30dd9e)

    dsync: Add clarifying comment about mailbox_log_record.maibox_guid contents


M	src/doveadm/dsync/dsync-mailbox-tree-fill.c

2022-03-01 08:06:14 -0500 Timo Sirainen <timo.sirainen@open-xchange.com> (3864ecbfc7)

    dsync: Add escape_char to dsync-mailbox-tree

    This will be used by the following changes.

M	src/doveadm/dsync/dsync-brain-mailbox-tree.c
M	src/doveadm/dsync/dsync-brain-private.h
M	src/doveadm/dsync/dsync-ibc-pipe.c
M	src/doveadm/dsync/dsync-ibc-private.h
M	src/doveadm/dsync/dsync-ibc-stream.c
M	src/doveadm/dsync/dsync-ibc.c
M	src/doveadm/dsync/dsync-ibc.h
M	src/doveadm/dsync/dsync-mailbox-tree-private.h
M	src/doveadm/dsync/dsync-mailbox-tree.c
M	src/doveadm/dsync/dsync-mailbox-tree.h
M	src/doveadm/dsync/test-dsync-mailbox-tree-sync.c

2022-03-18 09:41:37 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (f95da1fa2f)

    lib-test: test-subprocess - Free subprocess before forking

    Otherwise it'll leak memory.

    Broken in 34bdfdcbc7e3b374a219732329b6ce6d84a7666e

M	src/lib-test/test-subprocess.c

2021-10-25 12:23:56 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (25ae16cb40)

    lib-lua: Add a minimal interface to lib-http

    Adds the ability to
    - Creating http clients
    - Creating http requests
    - Adding arbitrary headers and payload to the http request
    - Submitting the request to remote server and getting the response

M	src/lib-lua/Makefile.am
A	src/lib-lua/dlua-dovecot-http.c
M	src/lib-lua/dlua-dovecot.c
M	src/lib-lua/dlua-script-private.h

2022-03-14 10:18:58 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (e5ae6b26e9)

    doveadm-who: Do not parse numbers as IP addresses

    Fixes doveadm kick as well.

    Broken in 381daab1e3b56a0bc94d2191cf62beba0df51af9

M	src/doveadm/doveadm-who.c

2022-03-01 12:06:20 +0100 Markus Valentin <markus.valentin@open-xchange.com> (6026905b7a)

    lib: test-seqset-builder - Add missing seqset_builder_deinit()

    Fixes leaking memory when running tests.

M	src/lib/test-seq-set-builder.c

2022-03-01 13:49:39 +0100 Markus Valentin <markus.valentin@open-xchange.com> (4540884c46)

    imapc: imapc_transaction_save_rollback() - Fix NULL-check for ctx->src_mbox

    Assert that unfinished context implies that ctx->src_mbox is non-NULL. Also
    check for ctx->src_mbox being non-NULL before deinitializing it.

M	src/lib-storage/index/imapc/imapc-save.c

2022-02-28 13:15:06 +0100 Markus Valentin <markus.valentin@open-xchange.com> (e5a07bd1c4)

    imapc: imapc_mailbox_msgmap_update() - Set new_message_r

    In case a message has not yet been keep the reply till syncing and do not
    discard it right away.

M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-02-24 15:31:39 +0100 Markus Valentin <markus.valentin@open-xchange.com> (f5fc15b1b1)

    imapc: Delay fetching state after untagged exists reply


M	src/lib-storage/index/imapc/imapc-mailbox.c
M	src/lib-storage/index/imapc/imapc-storage.h
M	src/lib-storage/index/imapc/imapc-sync.c

2021-12-16 09:11:55 +0100 Markus Valentin <markus.valentin@open-xchange.com> (173cc696f8)

    imapc: imapc_copy() - Make sure capabilities are known before copying


M	src/lib-storage/index/imapc/imapc-save.c

2021-11-11 16:17:35 +0100 Markus Valentin <markus.valentin@open-xchange.com> (09bfbb4cb1)

    imapc: Implement rollback for failed copies


M	src/lib-storage/index/imapc/imapc-save.c
M	src/lib-storage/index/imapc/imapc-storage.c
M	src/lib-storage/index/imapc/imapc-storage.h

2021-11-11 18:31:54 +0100 Markus Valentin <markus.valentin@open-xchange.com> (95baaaf454)

    imapc: imapc_save_copyuid() deduplicate code


M	src/lib-storage/index/imapc/imapc-save.c

2021-11-11 16:18:09 +0100 Markus Valentin <markus.valentin@open-xchange.com> (1e888011d0)

    imapc: Enable bulk copying if remote backend has UIDPLUS capability


M	src/lib-storage/index/imapc/imapc-save.c

2021-11-11 14:52:54 +0100 Markus Valentin <markus.valentin@open-xchange.com> (79b5dc6024)

    imapc: Implement bulk copying for imapc


M	src/lib-storage/index/imapc/imapc-save.c
M	src/lib-storage/index/imapc/imapc-storage.c
M	src/lib-storage/index/imapc/imapc-storage.h

2021-11-11 16:10:53 +0100 Markus Valentin <markus.valentin@open-xchange.com> (d8ac772071)

    imapc: Extract imapc_copy_simple() from imapc_copy()

    Keep the old one by one copying functionality as simple call. This will be
    used if the remote backend does not have the UIDPLUS capability.

M	src/lib-storage/index/imapc/imapc-save.c

2022-01-12 15:09:16 +0100 Markus Valentin <markus.valentin@open-xchange.com> (dd9923ed99)

    lib-storage: index_save_context_free() - Add assertion on non-NULL
    ctx->dest_mail


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

2021-12-08 17:17:56 +0100 Markus Valentin <markus.valentin@open-xchange.com> (ed093cb058)

    lib: Add seq-set-builder and tests for it


M	src/lib/Makefile.am
A	src/lib/seq-set-builder.c
A	src/lib/seq-set-builder.h
M	src/lib/test-lib.inc
A	src/lib/test-seq-set-builder.c

2022-02-10 17:37:59 +0100 Marco Bettini <marco.bettini@open-xchange.com> (0b8d22e109)

    lib-storage: imapc_mailbox_close() - Remove unprocessed
    untagged_fetch_contexts


M	src/lib-storage/index/imapc/imapc-storage.c

2022-02-10 16:26:10 +0100 Marco Bettini <marco.bettini@open-xchange.com> (589f8b1eba)

    lib-storage: Remove trainling spaces


M	src/lib-storage/index/imapc/imapc-mailbox.c
M	src/lib-storage/index/imapc/imapc-sync.c

2022-02-02 16:58:24 +0100 Markus Valentin <markus.valentin@open-xchange.com> (6b7a40bd5d)

    imapc: imapc_sync_handle_untagged_fetches() - Commit after adding the
    untagged fetch messages

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

    Broken by 55a8c2d294bb2f764209c7ce455d258b2b7506f5

M	src/lib-storage/index/imapc/imapc-sync.c

2022-01-18 09:46:32 +0100 Markus Valentin <markus.valentin@open-xchange.com> (4b517a91b4)

    imapc: Start to handle new untagged fetch messages in imapc_sync()


M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-01-18 09:22:24 +0100 Markus Valentin <markus.valentin@open-xchange.com> (6d505f1b39)

    imapc: Add imapc_sync_handle_untagged_fetches()


M	src/lib-storage/index/imapc/imapc-mailbox.c
M	src/lib-storage/index/imapc/imapc-storage.c
M	src/lib-storage/index/imapc/imapc-storage.h
M	src/lib-storage/index/imapc/imapc-sync.c

2022-01-17 15:41:25 +0100 Markus Valentin <markus.valentin@open-xchange.com> (aa26f7a231)

    imapc: imapc_untagged_fetch_handle() - Change return type to bool

    When calling imapc_untagged_fetch_handle() also retrieve new_message_r from
    it which allows imapc_mailbox_msgmap_update() to determine if the message
    just handled was already in index or not.

M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-01-27 08:06:16 +0100 Markus Valentin <markus.valentin@open-xchange.com> (235f491ffe)

    imapc: imapc_untagged_fetch_update_flags() - Reduce indentation


M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-01-27 07:56:32 +0100 Markus Valentin <markus.valentin@open-xchange.com> (ea5eb228c7)

    imapc: Split off imapc_untagged_fetch_update_flags() for handling flag
    updates


M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-01-17 15:00:41 +0100 Markus Valentin <markus.valentin@open-xchange.com> (4656356f1e)

    imapc: Introduce imapc_untagged_fetch_ctx


M	src/lib-storage/index/imapc/imapc-mailbox.c
M	src/lib-storage/index/imapc/imapc-storage.h

2022-01-17 13:57:56 +0100 Markus Valentin <markus.valentin@open-xchange.com> (332c4ef1a4)

    imapc: Decouple imapc_untagged_fetch parsing and handling


M	src/lib-storage/index/imapc/imapc-mailbox.c

2022-03-09 02:30:12 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (a987d6b01f)

    submission-login: Add workaround for SMTP backend that is not Dovecot.

    Adds workaround called "exotic-backend".

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

2022-03-02 15:40:16 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (f703acd4a2)

    auth: auth-cache - Always use translated_username as cache key

    This fixes auth cache when passdb/userdb changes the user field.

M	src/auth/auth-cache.c

2022-03-02 14:57:20 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (020f8d5cff)

    auth: Set translated_user to requested_login_user in master login

    Fixes caching issues with master logins.

M	src/auth/auth-request-fields.c

2021-07-06 14:02:41 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2e5b63175d)

    auth: Include cache hit/miss information in passdb/userdb lookup end events


M	src/auth/auth-request.c
M	src/auth/auth-request.h
M	src/auth/passdb-cache.c

2022-02-28 17:12:32 +0100 Marco Bettini <marco.bettini@open-xchange.com> (9a355e8aa7)

    fts: Parse mail header before checking whether to index it

    Fixes an issue where mime parts Content-type wasn't properly set, causing
    binary mime parts to be fed to the indexes.

    Broken in ddb85f3533842aa7c4e943c10bbd3dcb745c2eae

M	src/plugins/fts/fts-build-mail.c

2022-02-18 18:31:43 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (1133504c52)

    dsync: Log reason why mailbox is synced with debug logging


M	src/doveadm/dsync/dsync-brain-mailbox.c
M	src/doveadm/dsync/dsync-brain-mails.c
M	src/doveadm/dsync/dsync-brain-private.h

2022-02-21 23:07:11 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (8bc0825d97)

    dsync: If modseqs aren't permanent, assume HIGHESTMODSEQ=0

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

M	src/doveadm/dsync/dsync-brain-mailbox.c
M	src/doveadm/dsync/dsync-mailbox-import.c

2022-02-12 15:07:39 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (9da4834ad0)

    submission-login: submission-proxy - Do not include initial response in AUTH
    command if it is too long.


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

2022-02-21 21:36:55 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (9a16de7aad)

    submission-login: submission-proxy - Rename local variable in
    proxy_send_login().


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

2022-02-21 21:32:45 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (7a79eba26e)

    lib-smtp: smtp-client - Move SMTP_BASE_LINE_LENGTH_LIMIT definition to
    smtp-common.h.


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

2022-02-21 21:29:23 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (10b0d57967)

    lib-smtp: smtp-client-connection - Rename SMTP_CLIENT_BASE_LINE_LENGTH_LIMIT
    to SMTP_BASE_LINE_LENGTH_LIMIT.


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

2022-02-23 14:21:02 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (84fe9d12fc)

    lib-smtp: smtp-client-connection - Fix typo in comment.


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

2022-02-22 14:14:20 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (d5d8b69aa7)

    director: Fix crashes caused by changing host tag

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

M	src/director/mail-host.c

2022-02-22 14:10:02 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (44b7eda458)

    director: Prevent loops where directors keep changing host tags


M	src/director/director-connection.c

2022-02-21 12:47:29 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (7a64ec1ef8)

    lib: If log prefix update can't be sent to log, exit with FATAL_LOGERROR


M	src/lib/failures.c

2022-02-21 12:39:02 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (1bf3963714)

    lib: Fix losing log prefix or IP change when log process is busy

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

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

    Broken by 9372e48b702a3af5705785e08fbf47b0e37f2047

M	src/lib/failures.c

2022-02-06 14:20:08 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (3e8befe6b5)

    dict: Fix potential timeout leak at deinit

    The deinit code could still trigger proctitle refresh.

M	src/dict/main.c

2022-02-22 11:23:33 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (17118d5970)

    dict: Make sure proctitle refresh timeout goes to the main ioloop

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

M	src/dict/main.c

2021-10-25 15:43:00 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (974e970889)

    lib-storage: Don't use cached message_parts while message is being parsed

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

M	src/lib-storage/index/index-mail.c

2021-10-25 12:22:06 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6b6d61e9d1)

    lib-storage: Reset bodystructure parsing state when reseting message_parts

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

M	src/lib-storage/index/index-mail-headers.c
M	src/lib-storage/index/index-mail.c
M	src/lib-storage/index/index-mail.h
M	src/lib-storage/test-mail.c

2022-02-09 23:12:19 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (d31af56e9a)

    dict-sql: Fix assert-crash if trying to rollback an open set/inc transaction

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

M	src/lib-dict-backend/dict-sql.c

2022-02-04 04:30:48 +0200 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (b743c13533)

    anvil: connect_limit_deinit() - Free ident_pid_hash elements


M	src/anvil/connect-limit.c

2022-02-11 09:17:58 +0100 Marco Bettini <marco.bettini@open-xchange.com> (feebfa572a)

    indexer: indexer_client_status_callback() - Fix accessing freed memory

    Broken by a9683d7b3

M	src/indexer/indexer-client.c

2022-02-07 16:04:41 +0100 Marco Bettini <marco.bettini@open-xchange.com> (e65b925b86)

    indexer: Fix memory leak on indexer timeout


M	src/indexer/indexer-client.c

2022-02-04 01:28:45 +0200 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (ff258ecea5)

    stats: stats_metrics_remove_dynamic() - Free the removed metric


M	src/stats/stats-metrics.c

2022-02-04 01:32:18 +0200 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (8437a9224f)

    stats: stats_metric_alloc() - Fix indentation on p_new() call


M	src/stats/stats-metrics.c

2022-01-31 12:42:46 +0200 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (c5ef0ce4b7)

    replication: aggregator - Free replicator_connection content


M	src/replication/aggregator/replicator-connection.c

2022-02-01 14:22:31 +0100 Marco Bettini <marco.bettini@open-xchange.com> (12a751615b)

    mail-crypt: Fix for mail being wrongly storing encrypted via LMTP

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

    Same happens if 2nd recipient has mail_crypt disabled

M	src/plugins/mail-crypt/mail-crypt-plugin.c

2020-03-31 13:51:09 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a707e6907c)

    mail-crypt: Remove "plugin disabled" texts from errors

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

M	src/plugins/mail-crypt/mail-crypt-plugin.c

2020-03-31 13:49:28 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (4514e72dd7)

    mail-crypt: Fix crash when plugin is already initialized, but not used for
    another user

    Fixes: Panic: Module context mail_crypt_user_module missing

M	src/plugins/mail-crypt/mail-crypt-plugin.c

2021-04-29 21:09:01 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (41e439f993)

    doveadm deduplicate: Simplify code by using doveadm_mail_iter_deinit_sync()


M	src/doveadm/doveadm-mail-deduplicate.c

2021-04-29 21:05:40 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (d60ca6eaac)

    doveadm deduplicate: Optimize by deduplicating in a single transaction


M	src/doveadm/doveadm-mail-deduplicate.c

2022-02-14 13:50:02 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (70a924bd84)

    pop3: Fix empty command handling

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

M	src/pop3/pop3-client.c

2022-02-02 17:01:49 +0200 sergey.kitov <sergey.kitov@open-xchange.com> (6b66c7694e)

    lib-master: Fix deinit memory leak with process_shutdown_filter


M	src/lib-master/master-service.c

2021-12-17 09:27:07 +0100 Marco Bettini <marco.bettini@open-xchange.com> (3b05ece496)

    plugins/fts: Allow plugins to carry state across calls during search session


M	src/plugins/fts/fts-api.h
M	src/plugins/fts/fts-search.c
M	src/plugins/fts/fts-storage.h

2022-01-26 16:09:29 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (d6f90fc69e)

    auth: ldap: Drop partially saved results before retrying request

    Fixes "LDAP search returned multiple entries" happening after reconnects.

M	src/auth/db-ldap.c

2022-01-26 16:03:27 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (c870c58f3f)

    auth: ldap: If any requests were lost, reconnect to LDAP server


M	src/auth/db-ldap.c

2022-01-26 16:00:45 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (30325b92b7)

    auth: ldap: If LDAP connection appears to be hanging, abort all old requests

    Retrying the reconnect might fix them, but since this situation isn't 
    supposed to happen in the first place, it's safer to just remove them 
    entirely to guarantee that it's not trying to keep retrying them for a long
    time.

M	src/auth/db-ldap.c

2022-01-26 14:46:55 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (6360d26c8a)

    auth: ldap: Reconnect to server if receiving unknown msgid

    It's unclear why this happens. Is it a bug on server or client side? Either
    way, this situation doesn't now fix itself automatically, so reconnecting
    should help.

M	src/auth/db-ldap.c

2022-01-26 14:43:01 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (88d55b93ba)

    auth: ldap: Stop re-sending request after 3 disconnect+reconnects

    This prevents retrying the same LDAP request forever in situations where the 
    request causes LDAP server to become disconnected. This might fix some real 
    issues, but it was mainly implemented because testing the following commit 
    caused infinite looping.

M	src/auth/db-ldap.c
M	src/auth/db-ldap.h

2022-02-01 14:57:16 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (342c872791)

    lmtp: proxy - Add per-connection counter to session_id

    This way connections to two different backends don't try to use the same 
    session_id. Add 'P' letter before the counter to clarify that it's the proxy
    connection counter.

M	src/lmtp/lmtp-proxy.c

2022-02-01 14:40:48 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (84ebee8902)

    lmtp: Simplify/clarify per-recipient session ID

    The session ID is the transaction ID followed by an increasing recipient 
    count (number of RCPT commands) in the SMTP transaction. Clarify this by 
    adding 'R' letter before the counter. Also don't add the counter suffix at 
    all for the first recipient, since most transactions only have a single 
    recipient.

M	src/lmtp/lmtp-recipient.c

2022-02-01 14:35:05 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (edf91ac779)

    lib-smtp: server-transaction - Simplify/clarify transaction ID

    The transaction ID is the session ID followed by an increasing transaction 
    count (number of MAIL commands) in the SMTP server connection. Clarify this
    by adding 'T' letter before the counter. Also don't add the counter suffix
    at all for the first session, since most sessions only have a single
    transaction.

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

2022-02-01 14:29:43 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (f26b7d3c13)

    lib-smtp, lmtp: Add brackets to <session-id> in logging

    This makes it clearer where the session-id stops. It's also similar to how
    it is in mail_log_prefix.

M	src/lib-smtp/smtp-server-transaction.c
M	src/lmtp/lmtp-proxy.c

2022-02-01 15:03:15 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (7a168bb5b5)

    lmtp: proxy - Use recipient-specific session-id when logging the result

    Instead of transaction ID, which is shared between recipients.

M	src/lmtp/lmtp-proxy.c

2022-02-01 16:00:36 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (d107539524)

    lmtp: struct lmtp_recipient - Change all strings to const


M	src/lmtp/lmtp-recipient.h

2022-01-27 21:40:25 +0100 Markus Valentin <markus.valentin@open-xchange.com> (9e151e0fd9)

    lib-storage: LAYOUT=index: Fix accessing freed memory when deleting
    \Noselect parents

    Broken by f5328d6f7e4a8e460c736fa0336f5766aa58abda

M	src/lib-storage/list/mailbox-list-index-backend.c

2022-01-28 10:54:53 +0100 Markus Valentin <markus.valentin@open-xchange.com> (dc5e01c2b2)

    lib-http: http_server_resource_create() - Remove unnecessary pool allocation

    Fixes leaking the memory pool created in stats_http_resource_add()

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

2022-01-26 04:00:32 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (4a4a4cf02b)

    lib-smtp: test-smtp-client-errors - Add test for succesful authentication
    with large initial response.


M	src/lib-smtp/test-smtp-client-errors.c

2022-01-26 03:58:49 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (3de3cd5987)

    lib-smtp: smtp-client-connection - Fix authentication with multi-roundtrip
    SASL mechanisms.

    Before, it would fail with an unexpected reply error.

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

2022-01-24 01:39:19 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (1a09d82bee)

    lib-smtp: test-smtp-client-errors - Add test for successful authentication.


M	src/lib-smtp/test-smtp-client-errors.c

2022-01-24 01:41:15 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (20d406b91c)

    lib-smtp: test-smtp-client-errors - Rename "authentication failed" test to
    "authentication".


M	src/lib-smtp/test-smtp-client-errors.c

2022-01-28 03:14:16 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (5ad9c03dc4)

    lib-smtp: smtp-client - Fix maximum line length to include CRLF.


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

2022-01-21 01:08:31 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (c8671f74ee)

    lib-smtp: smtp-client-connection - Do not include initial response in AUTH
    command if it is too long.


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

2022-01-21 02:26:18 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (02e43414e0)

    lib-smtp: smtp-client-connection - Move auth cleanup to separate function.


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

2022-01-28 03:17:59 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (76810027a5)

    lib-sasl: dsasl-client - Make dsasl_client_free(&NULL) a no-op.


M	src/lib-sasl/dsasl-client.c
M	src/lib-smtp/smtp-client-connection.c
M	src/login-common/client-common-auth.c
M	src/login-common/client-common.c

2022-01-21 02:28:23 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (94c8febccc)

    lib-smtp: smtp-client-connection - Reformat comment.


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

2022-01-26 19:28:33 +0100 Timo Sirainen <timo.sirainen@open-xchange.com> (3e0a147292)

    indexer: Fix memory leak - worker_requests were never freed

