2021-08-05 18:25:31 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (7e2e900c1a)

    NEWS: Add 100% master process CPU item


M	NEWS

2021-08-05 17:48:42 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (9ac07b89c1)

    master: Avoid creating prefork timeout if process_limit is already reached


M	src/master/service-monitor.c

2021-08-05 17:53:58 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (07a1c92747)

    master: Avoid high CPU usage when process_min_avail reaches process_limit

    process_min_avail handling always created a 0ms timeout to try to create the 
    missing processes. This timeout was supposed to stop when it couldn't launch 
    all the wanted processes, but the check wasn't done right. This ended up 
    causing the timeout to be called rapidly over and over again.

M	src/master/service-monitor.c

2021-08-04 17:24:00 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (40ae513d78)

    fts: Fix internal error when fts_index_timeout is set

    Broken by cf114f90e0ba25c18db846ee582e3a130bd52949

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

2021-08-04 12:51:19 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (5efa307f2b)

    NEWS: Updates for v2.3.16


M	NEWS

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

    NEWS: Updates for v2.3.15


M	NEWS

2021-05-24 14:03:57 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (63d1dc03d8)

    NEWS: Add news for 2.3.14.1


M	NEWS

2021-08-03 11:44:06 +0300 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (2e0f58a1db)

    util: dovecot-sysreport - Fix help to have -o as the short form of --core


M	src/util/dovecot-sysreport

2021-08-03 10:56:08 +0300 Martti Rannanjärvi <martti.rannanjarvi@open-xchange.com> (cd85976845)

    util: dovecot-sysreport - Use only spaces for indentation

    Stop mixing tabs and spaces.

M	src/util/dovecot-sysreport

2021-07-27 20:13:24 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (c27d091a0d)

    stats: Revert the previous OpenMetrics info type revert

    The OpenMetrics standard does support "info" type. The original Prometheus 
    format doesn't support it, but our support is for OpenMetrics. They don't 
    even have any overlapping types that could be used for this, so the only 
    other possibility would have been to make this configurable.

    Reverts 55a519d18fbbb8435854f1fcf2642b908d6fc074

M	src/stats/stats-service-openmetrics.c

2021-07-22 11:26:10 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9a312ebd21)

    stats: Revert dovecot build information to untyped data

    OpenMetrics does not know type 'info', so use 'untyped' instead.

    Broken in ae678116a79fff609cdf4fb1eb7eb3db2975bf1c

M	src/stats/stats-service-openmetrics.c

2020-12-03 19:20:32 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (214157dd82)

    lib: Fix assert-crash when destroying ioloop that has active context

    Normally the ioloop shouldn't have an active context at deinit, but it seems
    to be possible in some situations. It's not really bad anyway, so just allow
    it.

    Fixes: Panic: file ioloop.c: line 928 (io_loop_destroy): assertion failed:
    (ioloop->cur_ctx == NULL)

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

2021-07-12 14:26:38 +0200 Markus Valentin <markus.valentin@open-xchange.com> (53fafc97c3)

    lib-storage: Use escaped name length to calculate truncation margin

    This fixes corruption of mailbox names when the storage_name_escape_char has
    been part of the parent folder name.

    Broken by 5dd81d83d8d9120ed2a74d5bd2aa62622885b49c

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

2021-07-13 12:01:47 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (639cd6f517)

    configure: Set version to 2.3.16


M	configure.ac

2021-07-12 13:40:58 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3697bbaf77)

    lib-lua: Fix LIBDICT_LUA variable usage

    It needs to be appended to, not set again. Broken by 
    3d0b7e9bb59e3dc41fd5a4d09832eedea7a92933.

M	src/lib-lua/Makefile.am

2021-07-08 12:24:47 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e1b0b343c6)

    lib-lua: Only link libdict_lua if it's available


M	src/lib-lua/Makefile.am

2021-07-08 11:10:38 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (bd4ec646cc)

    plugins/fts: Restore fts_indexer_cmd

    It was removed in cf114f90e0ba25c18db846ee582e3a130bd52949 and that broke
    some FTS plugins.

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

2021-06-22 13:28:34 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (321c3f31be)

    lib-dict: Fix linking when building without Lua

    Linking didn't work on some non-Linux OSes (non-GNU linkers?)

M	src/lib-dict/Makefile.am

2021-06-02 00:40:19 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (0e0ead994c)

    lib-smtp: test-smtp-payload - Set all timeouts to CLIENT_PROGRESS_TIMEOUT.

    This prevents connect and idle timeouts from triggering earlier than the 
    progress timeout.

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

2021-07-01 10:46:05 +0200 Markus Valentin <markus.valentin@open-xchange.com> (604b879dd7)

    acl: Ignore acls in acl_lookup_dict_rebuild_add_backend if ignore_acls is
    set

    In case an namespace has been configured to ignore ACLs also respect that
    when acl_lookup_dict_rebuild is called.

    Co-Authored-By: Vincent Brillault <vincent.brillault@cern.ch>

M	src/plugins/acl/acl-lookup-dict.c

2021-06-15 12:21:22 +0200 Markus Valentin <markus.valentin@open-xchange.com> (b9a96d3f07)

    lib-storage: Make use of MAIL_INDEX_VIEW_SYNC_FLAG_2ND_INDEX


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

2021-06-15 12:19:00 +0200 Markus Valentin <markus.valentin@open-xchange.com> (b05e4d4497)

    lib-index: Introduce MAIL_INDEX_VIEW_SYNC_FLAG_2ND_INDEX

    This flag is used to make sure secondary views flags-index can work properly
    without emitting warnings about inconsistency. If an inconsistency is
    encountered fix it by fully syncing.

M	src/lib-index/mail-index-view-sync.c
M	src/lib-index/mail-index.h

2021-06-15 08:59:17 +0200 Markus Valentin <markus.valentin@open-xchange.com> (e4fb1de76f)

    Revert "lib-storage: Always fix inconsistency when syncing private flags
    index"

    This reverts commit 986d9cbbecffd836d977b6ad956b04e3ca606677.

    This is reverted because storing flags on private indexes no longer send 
    untagged replies.

M	src/lib-storage/index/index-sync-private.h
M	src/lib-storage/index/index-sync-pvt.c
M	src/lib-storage/index/index-sync.c
M	src/lib-storage/index/index-transaction.c

2021-06-22 11:52:02 -0600 Michael M Slusarz <michael.slusarz@open-xchange.com> (954db37d6b)

    imap: PREVIEW responses need trailing space

    2.3.15 regression

    Before 2.3.15, there was this same buggy behavior in error cases; 2.3.15 
    moved that buggy behavior to the success code path

    DOP-2463

M	src/imap/imap-fetch-body.c

2021-06-25 14:52:11 +0200 Markus Valentin <markus.valentin@open-xchange.com> (ab3757e44e)

    lib-fs: metawrap - Fix handling empty file

    As empty files are already closed when fs-metawrap attempts to append 
    metadata there have been problems with size calculation. Fix this by relying
    on the same mechanism as if metadata changed during write.

    This recreates metadata and keeps old body. This fixes an issue when writing
    empty mails to cache (failed: Cached message size larger than expected).

    This was introduced by 03e102ddccaae9e944c503d4269de755731798e8a

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

2021-06-25 14:28:57 +0200 Markus Valentin <markus.valentin@open-xchange.com> (8bd4e7fe80)

    lib-fs: fs-metawrap - Expect fs_stat to return size 0 for empty file


M	src/lib-fs/test-fs-metawrap.c

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

    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-06-08 09:13:25 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9b04e6fbfb)

    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> (15682a20d5)

    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-05-03 09:58:29 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (368adea6d9)

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


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

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

    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> (137558d31c)

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

    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> (8b716828c4)

    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> (1db66e3950)

    lib-oauth2: Move identifier escaping to own function


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

2021-03-25 15:36:49 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (fa92b1a362)

    lib-storage: Sync mailbox if autoexpunging finds mails that are already
    expunged

    The syncing should remove the mails from the index.

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

2021-03-25 15:34:14 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (0e8844adc3)

    lib-storage: Fix infinite loop in autoexpunging if the mails are already
    expunged

    This happens if the mails exist in the index, but mail_get_save_date() fails
    with MAIL_ERROR_EXPUNGED.

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

2021-05-31 14:48:42 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (8609b88e86)

    plugins/fts: Use event logging


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

2021-05-26 13:55:52 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (cf114f90e0)

    plugins/fts: fts-indexer - Use connection.c functions


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

2021-05-31 19:31:35 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (43d18b2d3f)

    plugins/fts: fts-indexer - Move fts_indexer_init to end of file

    Simplifies next commit

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

2021-05-26 13:54:56 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (1510536887)

    plugins/fts: fts-indexer - Use connection structures


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

2021-05-06 14:55:55 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (b832f6c3c1)

    indexer: worker - Fix busy/free status

    Determining whether worker is free or not should be determined using
    worker_connection_is_busy, not whether there are connections in the list.

    A worker connection is busy when it has a request.

M	src/indexer/indexer.c
M	src/indexer/worker-pool.c

2021-05-06 12:54:15 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f62a258493)

    indexer: indexer-client - Use connection.c functions


M	src/indexer/indexer-client.c
M	src/indexer/indexer-client.h
M	src/indexer/indexer.c

2021-05-06 12:41:39 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0273caf1b9)

    indexer: indexer-client - Use connection structure


M	src/indexer/indexer-client.c

2021-05-06 12:08:39 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0dfa2531ae)

    indexer: indexer-worker - Use event logging


M	src/indexer/master-connection.c

2021-05-06 12:03:16 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (bf42ae1ae7)

    indexer: indexer-worker: Use connection.c functions


M	src/indexer/indexer-worker.c
M	src/indexer/master-connection.c
M	src/indexer/master-connection.h

2021-05-06 11:42:37 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2f5494df0a)

    indexer: indexer-worker: Use connection structure


M	src/indexer/master-connection.c

2021-05-06 11:21:43 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (990b69f195)

    indexer: worker-connection - Use connection.c functions


M	src/indexer/worker-connection.c
M	src/indexer/worker-connection.h
M	src/indexer/worker-pool.c

2021-05-06 10:59:24 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (1ed0c8be75)

    indexer: worker-connection - Prepare for using connection.c


M	src/indexer/worker-connection.c
M	src/indexer/worker-connection.h
M	src/indexer/worker-pool.c

2021-05-06 10:56:40 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (57317458ce)

    indexer: worker-pool - Use connection_list


M	src/indexer/worker-pool.c

2021-05-06 10:49:23 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (61f8942012)

    indexer: worker-pool - Remove unused last_use


M	src/indexer/worker-pool.c

2021-05-06 10:29:23 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (4225108434)

    indexer: worker-connection - Use connection.h structures


M	src/indexer/indexer.c
M	src/indexer/worker-connection.c
M	src/indexer/worker-connection.h
M	src/indexer/worker-pool.c
M	src/indexer/worker-pool.h

2021-05-06 10:11:54 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (d76761698a)

    indexer: worker-connection - Move constructor further down

    Simplifies next commit

M	src/indexer/worker-connection.c

2021-05-06 10:11:24 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9aadd7fa03)

    Reformat worker-connection.c


M	src/indexer/worker-connection.c

2021-05-25 10:38:46 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (7fcf330135)

    lib: lib-event - Copy ru_last when making passthrough event

    Otherwise user_cpu_usecs does not get added to the sent events.

M	src/lib/lib-event.c
M	src/lib/lib-event.h

2021-05-06 14:29:03 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (da607df02a)

    master: Fix idle-kill for processes with a single short-lived client

    lib-master sends unimportant service status updates to master only once per 
    second when client_limit>1, because within that 1 second the available
    client count may have already changed many times. Normally this is fine, but
    there's a problem with the initial client:

     * The client connection launches a new process
    * The process sends the initial status notification with available_count=MAX
    * The client connection is handled, but because the status notification was
      just sent, the update won't be sent until 1 second later
    * The client disconnects within the 1 second
    * The available_count is again MAX, so no status notification is sent

    In this situation the master process never created the idle-kill timeout. 
    Usually the following clients will cause a status notification to be sent,
    but if there was only the one client then this process won't be idle-killed.
    Fix the situation so that the idle-kill timeout is created already by the
    initial status notification.

M	src/master/service-monitor.c

2021-06-03 19:04:26 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (bb618563b7)

    lib: Add array_foreach_reverse[_modifiable]()

    This is especially useful when deleting multiple elements inside the loop.

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

2021-06-03 16:50:39 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (df1b4b8750)

    lib: Don't use special code for i_unreached() with STATIC_CHECKER

    This was done originally to help scan-build, but this is no longer 
    necessary. Also actually running code where __builtin_unreachable() was 
    reached produced (very weird) undefined behavior.

    Reverts e2e9ea6da9f3db5fd7fe467db79232d20d03832f

M	src/lib/macros.h

2021-06-03 16:48:36 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (ecc984350e)

    Makefile.am: Update configure parameters for scan-build

    Especially add --enable-static-checker.

M	Makefile.am

2021-06-04 12:46:53 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (70defb0fb7)

    lib-imap: imap-parser - Parse literal size using as same algorithm as
    str_parse*().

    This prevents wrapping the integer value and fixes an ubsan complaint.

    Based on Stephan's similar patch in managesieve-parser.

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

2021-06-04 12:45:08 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (71e1d599ed)

    lib-imap: imap-parser - Fix 8 bit atom check to use unsigned char.


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

2020-11-20 11:56:41 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (605f65f8c1)

    lib-http: Add http-client category to client events


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

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

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

    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-25 20:03:53 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (2d676b0007)

    lib-mail: Add MESSAGE_PART_FLAG_OVERFLOW to MIME parts that reached parsing
    limits

    This allows callers to find out which MIME parts were properly parsed.

M	src/lib-mail/message-parser.c
M	src/lib-mail/message-part.h
M	src/lib-mail/test-message-parser.c

2021-04-29 17:00:47 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (9d21af067f)

    imap: copy: Abort if client disconnects during COPY

    Since the client didn't receive the COPY tagged reply, it doesn't know 
    whether the COPY succeeded or not. This likely causes it to try the COPY 
    again and duplicate the mails.

M	src/imap/cmd-copy.c

2021-05-19 05:56:13 -0600 Splintermail Dev <dev@splintermail.com> (e903c76ef3)

    imap: imap-sync - Fix VANISHED response with UID=1

    Fixes a bug introduced in 4eb3f6f27, where a UID EXPUNGE 1 command resulted
    in a VANSIHED 0:1 response, which is invalid IMAP syntax
    (sequence sets must have nonzero values).

M	src/imap/imap-sync.c

2021-05-17 12:13:16 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0cb2ec40a4)

    fts: Do not consider arbitrary headers with 8-bit data as language-specific

    If we do stemming etc processing for arbitrary headers, they might become
    impossible to find in subsequent searches due to stemming.

    This practically breaks e.g. From/To header searches with non-ascii names.

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

2020-03-09 11:11:04 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (c38df6196d)

    lib: DEBUG: Fix potential crash in handling "Growing data stack" debug
    message

    This could have only happened when data_stack_grow event was enabled and 
    when --enable-devel-checks was used.

M	src/lib/data-stack.c
M	src/lib/test-data-stack.c

2021-05-27 11:18:05 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (4784a79d09)

    lib: test-data-stack: Run each test with the same data stack state


M	src/lib/test-data-stack.c

2021-05-21 16:59:17 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (b0fd5705af)

    lib-lua: Delay running Lua script until dlua_script_init()

    This allows the caller to register globals before running the script.

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

2021-05-21 16:58:01 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f45c32c968)

    lib-lua: Move finalizing event and setting linked list to
    dlua_create_script()

    There's no need to delay them until dlua_script_create_finish().

M	src/lib-lua/dlua-script.c

2021-05-21 17:48:48 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (f985653670)

    lib-lua: Update dlua_script_create_*() comment

    Reusing existing scripts wasn't actually implemented.

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

2021-05-21 17:06:37 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (67c7c1aaae)

    lib-lua: dlua_script_init() - Always return -1 if script_init() fails

    The previous behavior was to forward the script_init() return value to the
    caller. This was somewhat unexpected behavior.

M	src/lib-lua/dlua-script.c

2021-05-31 11:33:40 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (2b508d396c)

    lib-storage: dlua_register_mail_storage() - Fix popping dlua_dovecot in Lua
    stack


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

2021-05-07 20:37:02 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (c8ac1fd03b)

    lib-storage: Fix corrupted cache when adding attachment keywords

    If IMAP BODYSTRUCTURE parsing fails, it means the BODYSTRUCTURE doesn't 
    match the MIME parts. This likely means that one or both of them are 
    corrupted. Handle this by deleting the email from cache, so this error won't
    keep repeating.

M	src/lib-storage/mail.c

2021-05-07 20:28:03 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (bbcf91c5d6)

    lib-storage: Don't log error if attachment flags couldn't be set due to
    missing cache

    Ever since 194dcaa65cdd247393633f2daa4b40fd12985440 missing attachment 
    keywords have been attempted to be automatically added if all the necessary 
    fields are in dovecot.index.cache. However, if mime.parts wasn't in the 
    cache an error was unnecessarily logged.

    Fixes: Error: Failed to add attachment keywords: mail_get_parts() failed:
    Mail field not cached

M	src/lib-storage/mail.c

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

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

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

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

    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> (8d994ed413)

    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> (52333bdb22)

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

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

    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> (98f1a2a6e4)

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

    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> (5a7cf68dfd)

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

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

    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> (358432fba5)

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

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

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

    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> (07e2f39e5c)

    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> (885794cbce)

    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-21 19:23:57 +0200 Timo Sirainen <timo.sirainen@open-xchange.com> (67c08cfc9b)

    lib: test-event-filter-*: Hide details of tests unless they fail

    This removes ~14k lines of output from test-lib run.

M	src/lib/test-event-filter-expr.c
M	src/lib/test-event-filter-merge.c
M	src/lib/test-event-filter-parser.c

2021-05-21 16:11:45 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (d9f2b426ea)

    imap: Send tagged login reply before finalizing user initialization

    Broken by 5fc66f182ff6941639d30372b414c1b39ae1e67e

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

2021-05-21 16:23:36 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (02363cfb7b)

    m4, dovecot-config: Add LIBDOVECOT_LUA_INCLUDE

    This allows building plugins that use lib-lua against uninstalled Dovecot 
    source code tree.

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

2021-05-20 11:05:37 -0400 Josef 'Jeff' Sipek <jeff.sipek@open-xchange.com> (d386e3727f)

    lib: event filter - Return invalid chars in the lexer

    This way, we leave it up to the parser to figure out whether or not they 
    make sense.

M	src/lib/event-filter-lexer.l
M	src/lib/test-event-filter-parser.c

2021-05-20 10:24:35 -0400 Josef 'Jeff' Sipek <jeff.sipek@open-xchange.com> (8c6ea200af)

    lib: event filter - Allow '?' in filter language tokens

    Without this, it is not possible to use '?' wildcards without quoting the 
    value.

M	src/lib/event-filter-lexer.l
M	src/lib/test-event-filter-parser.c

2021-05-18 17:44:08 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (308ba466c8)

    dict-sql: Support SQL_DB_FLAG_ON_CONFLICT_DO


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

2021-05-18 17:40:00 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (5329cd3af4)

    lib-sql: Add SQL_DB_FLAG_ON_CONFICT_DO for new enough sqlite and pgsql


M	src/lib-sql/driver-pgsql.c
M	src/lib-sql/driver-sqlite.c
M	src/lib-sql/driver-test.c
M	src/lib-sql/sql-api.h

2021-05-18 17:21:59 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6cc9bd8e2b)

    lib-sql: sqlpool: Implement get_flags() as a wrapper to the real db


M	src/lib-sql/driver-sqlpool.c

2021-05-18 17:15:02 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (3b3d90d2c9)

    lib: test-array - Add more unit tests for array_foreach*()

    Make sure that the elem value is as expected after the loop completes.

M	src/lib/test-array.c

2021-05-18 17:08:51 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (60dc5c2fe0)

    lib-sql: Add sql_db_vfuncs.get_flags()


M	src/lib-sql/sql-api-private.h
M	src/lib-sql/sql-api.c

2021-05-18 17:02:30 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (88a56737a5)

    dict-sql: Use SQL_DB_FLAG_ON_DUPLICATE_KEY

    Instead of hardcoding mysql check.

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

2021-05-18 17:00:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (0d8acaeae2)

    lib-sql: Add SQL_DB_FLAG_ON_DUPLICATE_KEY flag for MySQL


M	src/lib-sql/driver-mysql.c
M	src/lib-sql/driver-test.c
M	src/lib-sql/sql-api.h

2021-05-24 18:55:28 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (4766b85437)

    auth: mech-oauth2 - Iterate fields in safer manner

    Static analyser wasn't happy about the previous way.

M	src/auth/mech-oauth2.c

2020-11-09 12:29:16 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (5703f0b007)

