2021-06-14 12:47:15 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (0503334ab1)

    NEWS: Updates for v2.3.15


M	NEWS

2021-06-08 09:13:25 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3afb002620)

    lib-dict-extra: dict-fs - Escape unsafe paths

    Change any path components that are `.` or `..` to `...` and `....`. 
    Prevents path traversal attacks.

M	src/lib-dict-extra/Makefile.am
M	src/lib-dict-extra/dict-fs.c
A	src/lib-dict-extra/test-dict-fs.c

2021-06-08 09:04:21 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (7ae323aedc)

    lib-oauth2: Do not escape '.'

    This is not really needed and just makes things difficult.

M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2021-06-02 12:39:39 +0200 Markus Valentin <markus.valentin@open-xchange.com> (42de19f2cf)

    acl: Ignore acls in acl_mailbox_right_lookup if ignore_acls is set

    In case an namespace has been configured to ignore ACLs make sure that also
    happens for acl_mailbox_right_lookup.

M	src/plugins/acl/acl-mailbox.c

2021-06-01 13:10:23 +0200 Markus Valentin <markus.valentin@open-xchange.com> (84c6770d43)

    acl: If acl_ignore_namespace is set acl_backend can be NULL

    Allow an uninitialized acl backend when ignore_acls is set.

M	src/plugins/acl/acl-mailbox.c

2021-05-21 13:53:02 +0200 Markus Valentin <markus.valentin@open-xchange.com> (dffee5804c)

    imap-acl: In case mailbox name is "" set it to INBOX for shared namespaces

    To prevent proxying ACL commands with mailbox "" replace it with "INBOX" 
    when used with shared namespaces.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 16:09:25 +0200 Markus Valentin <markus.valentin@open-xchange.com> (369daa833d)

    imapc: Extract imapc_mailbox_name_equals from imapc_untagged_status


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

2021-05-20 16:03:12 +0200 Markus Valentin <markus.valentin@open-xchange.com> (71b38caeb5)

    imap-acl: Replace mailbox_open_as_admin with mailbox_open_allocated_as_admin


M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-20 14:27:46 +0200 Markus Valentin <markus.valentin@open-xchange.com> (289ce61acf)

    imap-acl: Allow LISTRIGHT replies without opening as admin

    As the reply is hardcoded there is no need to proxy the ACL command to a
    remote backend in case imapc_feature "acl" is enabled.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-19 15:12:35 +0200 Markus Valentin <markus.valentin@open-xchange.com> (815d177551)

    imap-acl: Implement proxying commands to an imapc location for DELETEACL

    Before calling imap_acl_cmd_deleteacl in cmd_deleteacl the new code checks
    if the command should be proxied and if so, does the proxying.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-19 15:11:40 +0200 Markus Valentin <markus.valentin@open-xchange.com> (8c69929d70)

    imap-acl: Implement proxying commands to an imapc location for SETACL

    Before calling imap_acl_cmd_setacl in cmd_setacl the new code checks if the
    command should be proxied and if so, does the proxying.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-19 15:09:24 +0200 Markus Valentin <markus.valentin@open-xchange.com> (7825e59bb8)

    imap-acl: Implement proxying commands to an imapc location for GETACL

    Before calling imap_acl_cmd_getacl in cmd_getacl the new code checks if the 
    command should be proxied and if so, does the proxying.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 16:59:31 +0200 Markus Valentin <markus.valentin@open-xchange.com> (7a860cf892)

    imap-acl: Extract imap_acl_cmd_deleteacl from cmd_deletacl

    This change makes acl_mailbox_open_allocated_as_admin called later which is
    necessary for the following proxying IMAP ACL changes.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 16:45:13 +0200 Markus Valentin <markus.valentin@open-xchange.com> (2c9636ea31)

    imap-acl: Extract imap_acl_cmd_setacl from cmd_setacl

    This change makes acl_mailbox_open_allocated_as_admin called later which is
    necessary for the following proxying IMAP ACL changes.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 16:29:10 +0200 Markus Valentin <markus.valentin@open-xchange.com> (f946fad39d)

    imap-acl: Extract imap_acl_cmd_getacl from cmd_getacl

    This change makes acl_mailbox_open_allocated_as_admin called later which is
    necessary for the following proxying IMAP ACL changes.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-19 14:52:36 +0200 Markus Valentin <markus.valentin@open-xchange.com> (4b34178eb9)

    imap-acl: Implement proxying commands to an imapc location for MYRIGHTS

    Introduce the needed changes to proxy imap-acl commands to a remote backend
    using imap-client.

    Before calling imap_acl_cmd_myrights in cmd_myrights the new code checks if 
    the command should be proxied and if so, does the proxying.

M	src/plugins/imap-acl/Makefile.am
M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 12:40:55 +0200 Markus Valentin <markus.valentin@open-xchange.com> (c90005e2fd)

    imap-acl: Add imapc_acl_get_mailbox_error

    Allows to retrieve full mailbox error.

M	src/plugins/imap-acl/Makefile.am
M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-25 11:19:47 +0200 Markus Valentin <markus.valentin@open-xchange.com> (90f666103e)

    imap-acl: Split off imap_acl_cmd_myrights from cmd_myrights


M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-20 13:47:55 +0200 Markus Valentin <markus.valentin@open-xchange.com> (b20aa82824)

    imap-acl: Split acl_mailbox_open_as_admin

    This allows easier implementation of the imap-acl proxying.

M	src/plugins/imap-acl/imap-acl-plugin.c

2021-05-20 23:21:10 +0200 Markus Valentin <markus.valentin@open-xchange.com> (0e19b05118)

    imap-acl: Add imap_acl_storage with module context


M	src/plugins/imap-acl/imap-acl-plugin.c
M	src/plugins/imap-acl/imap-acl-plugin.h

2021-05-25 12:38:50 +0200 Markus Valentin <markus.valentin@open-xchange.com> (19709cfc92)

    imapc: Add imapc_mail_error_to_resp_text_code to access error msg by enum


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

2021-05-26 10:31:26 +0200 Markus Valentin <markus.valentin@open-xchange.com> (f284a78c5b)

    imapc: Change function signature prefix to imapc_resp_text_code_parse


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

2021-05-20 23:18:30 +0200 Markus Valentin <markus.valentin@open-xchange.com> (1608d63ee1)

    imapc: Add imapc_storage_client_unregister_untagged function


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

2021-05-18 16:26:46 +0200 Markus Valentin <markus.valentin@open-xchange.com> (eedec43a7c)

    imapc: Add imapc_features=acl

    In order to allow proxying IMAP ACL commands to a remote backend

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

2021-05-22 00:16:38 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (321c339756)

    lib-smtp: smtp-server-connection - Fix STARTTLS command injection
    vulnerability.

    The input handler kept reading more commands even though the input was
    locked by the STARTTLS command, thereby causing it to read the command
    pipelined beyond STARTTLS. This causes a STARTTLS command injection
    vulerability.

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

2021-05-21 14:42:07 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (708ab90229)

    imap: copy/move: Fix memory leak when no messages were found


M	src/imap/cmd-copy.c

2021-05-14 15:57:20 +0200 Markus Valentin <markus.valentin@open-xchange.com> (12a213aab6)

    acl: Fix broken LIST for shared namespaces

    Due to the recent changes in the usage of the acl_ignore_namespace setting
    shared namespaces where trying to use fast listing too. This resulted in
    wrong LIST IMAP command outputs when using acl plugin.

    Broken by af18bb0c8c4ffbd3a8008ce9fc7a58db5937b0a6

M	src/plugins/acl/acl-mailbox-list.c

2021-04-30 11:34:51 +0200 Markus Valentin <markus.valentin@open-xchange.com> (af18bb0c8c)

    acl: Prevent crashes with acl_ignore_namespace

    In case a namespace was ignored for ACLs an crash could occur because of
    "Module context acl_storage_module missing". This panic is prevented by this 
    change.

M	src/plugins/acl/acl-mailbox-list.c
M	src/plugins/acl/acl-mailbox.c
M	src/plugins/acl/acl-plugin.h

2021-05-06 10:18:10 +0200 Markus Valentin <markus.valentin@open-xchange.com> (c0ea758cc7)

    acl: Move static acl_namespace_is_ignored


M	src/plugins/acl/acl-mailbox-list.c

2021-05-03 14:07:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a88734f71d)

    login-common: Add client.list_type to better track which linked list client
    belongs to

    Add asserts to make sure the client is always in the expected list.

M	src/login-common/client-common.c
M	src/login-common/client-common.h

2021-04-23 16:43:36 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (c7360f7964)

    login-common: Fix handling destroyed_clients linked list

    The client needs to be removed from destroyed_clients linked list before 
    it's added to client_fd_proxies linked list.

    Broken by 1c622cdbe08df2f642e28923c39894516143ae2a

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

2021-05-06 21:25:54 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (eb452bbb6a)

    lib-dict: dict-lua - Don't yield again until previous one has completed


M	src/lib-dict/dict-iter-lua.c

2021-05-04 12:15:55 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (62f842ec77)

    lib-dict: dict-lua - Use absolute stack positions for arguments


M	src/lib-dict/dict-iter-lua.c
M	src/lib-dict/dict-lua.c
M	src/lib-dict/dict-txn-lua.c

2021-05-04 14:12:20 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a959c603be)

    imap: copy/move: Refresh source mailbox before copying/moving

    This way if another session had just expunged mails, the expunges will be 
    noticed and the copy/move will abort early.

M	src/imap/cmd-copy.c

2021-04-29 15:49:00 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f1a24362ca)

    imap: move: Sync source mailbox between commits

    This way the messages are actually expunged from storage after the commit, 
    not just requested to be expunged. Most importantly this means that if 
    another session attempts to start moving the same messages it can be noticed 
    earlier and one of the moves aborted.

M	src/imap/cmd-copy.c

2021-04-29 15:45:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a231727668)

    imap: Add imap_search_anyset_to_uidset()


M	src/imap/imap-search-args.c
M	src/imap/imap-search-args.h

2021-04-29 15:46:48 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (35019c95c5)

    imap: Allow imap_search_seqset_iter_init() to iterate over uidset also


M	src/imap/imap-search-args.c
M	src/imap/imap-search-args.h

2021-04-29 15:43:10 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (7a73f8447e)

    lib-storage: Fix mailbox_get_uid_range() to handle "*" correctly

    Previously attempting to convert e.g. 1:* range would just assert-crash. 
    There were no such callers currently though.

M	src/lib-storage/mailbox-get.c
M	src/lib-storage/test-mailbox-get.c

2021-04-29 15:39:29 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (d0492b7834)

    lib-storage: Always set struct mail.expunged

    Previously it was set only when some error noticed that there was a problem 
    accessing the mail. Now this is set immediately in mail_set_seq(). This 
    allows e.g. IMAP COPY/MOVE to abort when it encounters expunged mails.

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

2021-05-03 13:15:17 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6f5fd8c945)

    imap: Fix using SETMETADATA NIL to unset value

    Broken by 923362d27d9b2428e301614673cb0efba3bf928f

M	src/imap/cmd-setmetadata.c

2021-05-03 09:58:29 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e6a42c5824)

    lib-oauth2: Add missing test_begin/test_end to token escape


M	src/lib-oauth2/test-oauth2-jwt.c

2021-04-26 15:39:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (289bbb9735)

    m4: Include local copy of pkg.m4

    We need features not present in early versions. The variable=name support
    has been there since 1.7.4 of pkg-config.

M	configure.ac
A	m4/pkg.m4

2021-04-21 19:18:07 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (0b24b0c1fc)

    lib-storage: Avoid logging the same mail istream read error multiple times


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

2021-04-26 12:02:58 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (48a19716be)

    master: Notify systemd after we are really stopped


M	src/master/main.c

2021-04-26 08:39:50 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9b47f23ca4)

    Makefile.am: Fix systemd detection mess in automake


M	Makefile.am
M	configure.ac
A	m4/want_systemd.m4

2021-04-26 08:29:02 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (677936675e)

    dovecot.service: Set type to notify only when compiling with systemd


M	Makefile.am
M	configure.ac
M	dovecot.service.in

2021-04-26 08:38:14 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (95562b3e14)

    Makefile.am: Make systemd service file generation more readable


M	Makefile.am

2021-04-26 09:38:44 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e03d08650d)

    configure.ac: Move CFLAGS to right place

    Now it's in middle of passdb displaying

M	configure.ac

2021-03-24 16:09:51 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (f7ddc1501d)

    lib-storage: Fix detecting duplicate nodes in mailbox list index

    The duplicates were checked only for root nodes, not for child nodes.

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

2021-04-22 15:21:04 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0097b34eea)

    configure: Bump version to 2.3.15


M	configure.ac

2021-04-21 10:46:20 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f68e0918f7)

    NEWS: Add news for 2.3.15


M	NEWS

2021-04-21 10:01:46 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (23aa7a3049)

    NEWS: fix 2.3.14 version


M	NEWS

2021-03-04 09:52:40 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (dc58811116)

    NEWS: Mention XZ/LZMA removal.


M	NEWS

2021-03-02 10:55:53 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (0190aeb1d4)

    NEWS: Update news for 2.3.14


M	NEWS

2021-04-01 20:39:27 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (2cd90ef78a)

    lib-imap: imap_bodystructure_write() - Return error on corruption instead of
    assert-crash

    This could happen if broken message_parts came from cache and 
    message_part->data was newly read from the mail input.

M	src/lib-imap-storage/imap-msgpart.c
M	src/lib-imap/fuzz-imap-bodystructure.c
M	src/lib-imap/imap-bodystructure.c
M	src/lib-imap/imap-bodystructure.h
M	src/lib-imap/test-imap-bodystructure.c
M	src/lib-storage/index/imapc/imapc-mail-fetch.c
M	src/lib-storage/index/index-mail.c

2021-04-08 15:04:42 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f09b1184b3)

    lib-storage: Split off index_mail_parse_bodystructure_full()


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

2021-04-09 14:09:17 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (826f06cc43)

    lib-imap: fuzz-imap-bodystructure - Change failures to i_panic() instead of
    i_fatal()


M	src/lib-imap/fuzz-imap-bodystructure.c

2021-03-30 21:12:41 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (32961a5fe3)

    lib-smtp: smtp-params - Make explicit which extra parameters can be written
    by smtp_params_*_write().

    This can be used to prevent sending unsupported parameters to the remote
    server, even when these are listed in extra_parameters. Before, blindly
    proxying parameters would cause MAIL/RCPT error replies from the remote
    server.

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

2021-03-30 21:06:58 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (4653e92e1f)

    lib-smtp: smtp-client-connection - Explicitly specify which MAIL/RCPT
    parameters are added by extra capabilities.

    This is used in later commit to limit which custom parameters are actually
    sent to the server based on the capabilities supported by said server.

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

2021-03-30 21:48:24 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (e687bb3af6)

    lib-smtp: smtp-client-connection - Prevent recording extra capabilities from
    server more than once.


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

2021-03-30 21:45:33 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (31fc079aa9)

    lib-smtp: smtp-client-connection - Prevent duplicate registrations for extra
    capabilities.


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

2021-03-31 12:33:38 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (c007aac131)

    lib-smtp: smtp-client-connection - Move
    smtp_client_connection_find_extra_capability().


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

2021-03-30 21:33:17 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (90d3a8714c)

    lib-smtp: smtp-client-connection - Change extra capability registration to
    use a struct.

    This is needed for adding additional features in later commit.

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.h
M	src/lmtp/lmtp-proxy.c

2021-03-30 21:41:48 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (feeb95e111)

    lib-smtp: smtp-client-connection - Fix typo in function name.


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

2021-03-31 00:06:29 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (899d11722e)

    lmtp: lmtp-commands - Drop XRCPTFORWARD parameter once processed.

    This prevents it from popping up elsewhere. This for example crudely fixes a 
    problem in the proxy where XRCPTFORWARD was sent even without backend server
    support.

M	src/lmtp/lmtp-commands.c

2021-04-19 12:46:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (0a239a5ec9)

    imap: NOTIFY - Fix crash if client disconnects while sending FETCH
    notification (try #2)

    Continues the incomplete fix for c4f4058d16096f23eea0b3182205d6653f5954dd

    Fixes: Panic: Trying to close mailbox INBOX with open transactions

M	src/imap/imap-client.c

2021-04-14 19:17:30 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (dac16f8eda)

    lib-oauth2: test-oauth2-jwt - Fix linkage for openssl

    Without whole archive option ssl_iostream_unref isn't included in linkage,
    which will prevent libdcrypt from loading openssl backend.

M	src/lib-oauth2/Makefile.am

2020-11-19 19:55:42 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (a7da935e53)

    lib-oauth2: Ensure azp is escaped too


M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2021-04-14 13:47:16 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (35a4e4dfc6)

    lib-oauth2: Add test for token escape


M	src/lib-oauth2/test-oauth2-jwt.c

2021-04-14 14:12:16 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f5175d8786)

    lib-oauth2: Improve identifier escaping function


M	src/lib-oauth2/oauth2-jwt.c

2021-04-10 17:54:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (bffcabda0a)

    lib-oauth2: Move identifier escaping to own function


M	src/lib-oauth2/oauth2-jwt.c

2021-04-16 16:13:39 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (8c377525cd)

    login-common: Fix memory leak if anvil query is aborted


M	src/login-common/client-common.h
M	src/login-common/sasl-server.c

2021-04-16 11:18:15 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (50b5ee12db)

    virtual: virtual-mail - Use index_mail_set_seq to ensure cleanup

    Forgotten in 67ab2070cf513179382b564871f2a0f177987cc9

M	src/plugins/virtual/virtual-mail.c

2021-04-16 11:16:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0cd683c086)

    virtual: virtual-mail - Pass wanted_headers and wanted_fields to backend
    mails only

    Broken in 67ab2070cf513179382b564871f2a0f177987cc9

M	src/plugins/virtual/virtual-mail.c

2021-04-16 10:01:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e5098ff2b0)

    virtual: virtual-mail - Use index_mail_free

    Since we are using index_mail_init, we need to use index_mail_free to free
    up the virtual mail.

M	src/plugins/virtual/virtual-mail.c

2021-04-16 10:24:22 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (df46da1ace)

    virtual: virtual-mail - Free wanted headers in close if we are freeing

    Simplifies next change

M	src/plugins/virtual/virtual-mail.c

2021-04-16 10:03:33 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (448330c320)

    virtual: virtual-mail - Free up mails in virtual_mail_close if we are
    freeing up

    Makes next change easier

M	src/plugins/virtual/virtual-mail.c

2021-04-14 18:08:03 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (829b04676c)

    lib: Add comment to CALLBACK_TYPECHECK() macro


M	src/lib/macros.h

2021-03-31 03:08:26 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (0d252dccb3)

    lib-index: Add "mail_cache_lookup" event

    Adds new event for cache lookups with lookup name as "field" event field.

M	src/lib-index/mail-cache-lookup.c

2021-03-31 17:28:46 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (fa7a490bc3)

    lib-index: Small refactor in mail_cache_lookup_field()

    Makes it easier to emit event in next commit regardless of code path.

M	src/lib-index/mail-cache-lookup.c

2021-03-30 00:37:59 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (d6ceec7f3a)

    lib-storage: Add "mail_expunged" event

    Emitted when a message is actually expunged. Has UID as a field.

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

2021-03-29 13:41:55 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (d5fe1b3c75)

    lib-storage, plugins/virtual: Use mail_sync_notify()

    Instead of calling sync_notify vfunc directly.

M	src/lib-storage/index/dbox-multi/mdbox-sync.c
M	src/lib-storage/index/dbox-single/sdbox-sync.c
M	src/lib-storage/index/imapc/imapc-sync.c
M	src/lib-storage/index/maildir/maildir-sync-index.c
M	src/lib-storage/index/mbox/mbox-sync.c
M	src/plugins/virtual/virtual-sync.c

2021-03-29 13:41:32 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (8f9b9731e6)

    lib-storage: Add mailbox_sync_notify()

    Instead of calling sync_notify vfunc directly everywhere.

M	src/lib-storage/mail-storage-private.h
M	src/lib-storage/mail-storage.c

2021-03-29 13:01:40 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (0972d42cdb)

    lib-storage: Emit "mail_expunge_requested" event

    Adds a new event, "mail_expunge_requested" which is emitted when a message
    is marked to being expunged.

M	src/lib-storage/mail-storage-private.h
M	src/lib-storage/mail.c

2021-02-10 13:57:08 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (c8fa10672b)

    lib-storage: Emit "mail_opened" event when mails opened

    Adds a new event, "mail_opened" with "reason" as field. Also drop duplicate 
    event in index_mail_init_stream().

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

2021-04-06 00:38:06 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (9a8449d815)

    lib-storage: Include "age_days" field in mail.event

    Goes back one week, if mail age information is known, an integer field is
    added with value of mail age in number of days.

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

2021-03-31 16:08:06 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (67ab2070cf)

    plugins/virtual: Use index_mail_init() to initialize the mail

    Cleans up duplicated code. Also, index_mail_init initializes mail.event as
    well. Something that was missing previously.

M	src/plugins/virtual/virtual-mail.c

2021-03-31 16:01:02 +0100 Siavash Tavakoli <siavash.tavakoli@open-xchange.com> (3fe38329a9)

    lib-storage: Refactor index_mail_init() to make it more reusable

    Adds arguments for two memory pools, to be set for mail.pool and 
    mail.data_pool. If data_pool is NULL, a pool is allocated but mail_pool is
    required.

M	src/lib-storage/index/dbox-common/dbox-mail.c
M	src/lib-storage/index/imapc/imapc-mail.c
M	src/lib-storage/index/index-mail.c
M	src/lib-storage/index/index-mail.h
M	src/lib-storage/index/pop3c/pop3c-mail.c

2021-03-11 14:14:53 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (5dd81f98a9)

    lib-storage: Recreate mail.event when active mail is changed

    This makes sure that the two mails' events are treated completely 
    independently without any accidental spilling. It also prevents wasting 
    memory if each mail changes the event and grows the memory pool.

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

2021-04-12 21:18:05 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (4d76fa500b)

    lib-smtp: fuzz-smtp-server - Implement all callbacks required for full
    transaction.

    Before required RCPT and DATA callbacks were omitted, causing assertion
    failures when the fuzzer reached the RCPT stage.

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

2021-04-12 21:14:07 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (99b3f881f8)

    lib-test: fuzzer - Fix FD-based fuzzing to only shutdown input FD upon end
    of data.

    Before, it closed the whole socket once the data input ended. This for 
    example caused the SMTP server fuzzer to end before all replies were sent.
    This shortened the test and could have hidden bugs that occur later in the
    SMTP transaction.

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

2021-04-12 21:12:27 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (d14c6b5e52)

    lib-smtp: smtp-reply - Add debug message for reply send error.

    This makes it a little clearer at what point the connection loss or error
    was noticed and for which command/reply.

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

2021-04-14 11:57:39 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6a3b1ac4fb)

    lib-lua: Fix compiler warning with dlua_pcall_yieldable()


M	src/lib-lua/dlua-script-private.h

2021-04-09 11:35:05 +0200 Markus Valentin <markus.valentin@open-xchange.com> (c3fc5c9060)

    lib-storage: Make sure listescape can work correctly with shared namespaces

    This makes sure that if storage_name_escape_char is set, shared mailboxes do
    not return the invalid/unescaped mailbox storage_name internally which could
    result in failures like "Invalid mailbox name: Name must not have '/' 
    character" even when using the listescape plugin.

    Broken by 5fd5ad3a2be6708e81f8dcfcbb06a3957dddd276

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

2021-04-01 21:42:02 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (1d9b4e1400)

    lib: Fix buffer_t aliasing problems with LTO

    This changes the buffer_t slightly, which requires adding extra braces when
    buffer_t contents are directly defined.

    This changes Dovecot to require C11 compatible compiler, because it uses 
    anonymous union and struct. GNU99 extensions are also enough.

M	src/anvil/anvil-settings.c
M	src/auth/auth-settings.c
M	src/config/config-settings.c
M	src/config/settings-get.pl
M	src/dict/dict-settings.c
M	src/director/director-settings.c
M	src/dns/dns-client-settings.c
M	src/doveadm/doveadm-settings.c
M	src/imap-hibernate/imap-hibernate-settings.c
M	src/imap-login/imap-login-settings.c
M	src/imap-urlauth/imap-urlauth-login-settings.c
M	src/imap-urlauth/imap-urlauth-settings.c
M	src/imap-urlauth/imap-urlauth-worker-settings.c
M	src/imap/imap-settings.c
M	src/indexer/indexer-settings.c
M	src/indexer/indexer-worker-settings.c
M	src/ipc/ipc-settings.c
M	src/lib/buffer.c
M	src/lib/buffer.h
M	src/lib/test-buffer.c
M	src/lmtp/lmtp-settings.c
M	src/log/log-settings.c
M	src/old-stats/stats-settings.c
M	src/plugins/fts-lucene/Snowball.cc
M	src/plugins/fts-lucene/lucene-wrapper.cc
M	src/pop3-login/pop3-login-settings.c
M	src/pop3/pop3-settings.c
M	src/replication/aggregator/aggregator-settings.c
M	src/replication/replicator/replicator-settings.c
M	src/stats/stats-settings.c
M	src/submission-login/submission-login-settings.c
M	src/submission/submission-settings.c

2021-04-01 21:37:27 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (4e5bb6738d)

    lib: buffer - Change real_buffer.r_buffer type to const void *


M	src/lib/buffer.c

2021-04-01 12:47:15 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (831c95f67d)

    imap: Fix accessing uninitialized variable warning with LTO

    There doesn't seem to be any other way to quiet this warning, although it's
    wrong.

M	src/imap/imap-master-client.c

2021-04-01 12:45:39 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (21bb5d5224)

    doveadm dict: Handle missing parameters without crashing


M	src/doveadm/doveadm-dict.c

2021-04-01 12:20:46 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (7831a1f082)

    global: Fix accessing uninitialized variables on unit test failures


M	src/lib-index/test-mail-index-modseq.c
M	src/lib/test-strnum.c
M	src/lib/test-time-util.c

2021-04-01 12:33:33 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (7da0d129c5)

    lib-imap: imap_envelope_parse() - Refactor to avoid LTO warnings

    The original code was correct, but gcc with LTO still gave warnings about 
    potentially uninitialized envlp_r and error_r.

M	src/lib-imap/imap-envelope.c

2021-04-01 12:22:37 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a879354bbf)

    lib: test-array - Fix LTO compiler warnings

    -flto correctly realizes that the source buffer size is 1, while memcpy() is 
    trying to copy UINT_MAX. Try to hide this by allocating the source buffer 
    dynamically. The intention is to assert-crash anyway before the memcpy() is 
    reached.

M	src/lib/test-array.c

2021-04-13 12:45:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (7473d1c11e)

    lib-compression: ostream-zstd - Do not return 0 as default

    This is accepted by the library but does complicate things with dovecot.

M	src/lib-compression/ostream-zstd.c

2021-04-13 12:45:23 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3fd17f53c9)

    lib-compression: ostream-zstd - Fix assert on value range


M	src/lib-compression/ostream-zstd.c

2021-04-10 13:52:15 +0200 Arjen de Korte <build+github@de-korte.org> (397ca180b8)

    doc/openssl.cnf: Increase default_bits to 2048

    NIST guidelines mandate that all SSL certificates must be of at least 2048
    key length

M	doc/dovecot-openssl.cnf

2021-03-26 14:10:37 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (096b7122b9)

    global: Update default TLS protocol to TLSv1.2


M	doc/example-config/conf.d/10-ssl.conf
M	src/lib-master/master-service-ssl-settings.c
M	src/lib-storage/mail-storage-settings.c

2021-04-06 15:42:22 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9301b1042b)

    lib-ssl-iostream: Accept TLS version case-insensitive


M	src/lib-ssl-iostream/iostream-openssl-common.c

2021-03-26 14:11:48 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (585e09f4d7)

    lib-ssl-iostream: Add additional supported protocols

    ANY - Any protocol version accepted TLSv1.3 - Self-explanatory LATEST - The
    newest protocol only

M	src/lib-ssl-iostream/iostream-openssl-common.c

2021-03-26 12:08:40 +0200 Aki Tuomi <aki.tuomi@open-xchange.com> (57aa5d271f)

    lib-master: Add ssl_cipher_suites

