]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
3 years agotrash: Replace mailbox_set_reason() with reason_code=trash:clean
Timo Sirainen [Thu, 11 Mar 2021 15:27:54 +0000 (17:27 +0200)] 
trash: Replace mailbox_set_reason() with reason_code=trash:clean

3 years agoquota: Replace mailbox_set_reason() with reason_code=quota:recalculate and quota...
Timo Sirainen [Tue, 9 Mar 2021 14:49:12 +0000 (16:49 +0200)] 
quota: Replace mailbox_set_reason() with reason_code=quota:recalculate and quota:count

3 years agopop3-migration: Replace mailbox_set_reason() with reason_code=pop3_migration:uidl_sync
Timo Sirainen [Thu, 11 Mar 2021 15:22:31 +0000 (17:22 +0200)] 
pop3-migration: Replace mailbox_set_reason() with reason_code=pop3_migration:uidl_sync

3 years agolazy_expunge: Replace mailbox_set_reason() with reason_code=lazy_expunge:expunge
Timo Sirainen [Thu, 11 Mar 2021 15:03:49 +0000 (17:03 +0200)] 
lazy_expunge: Replace mailbox_set_reason() with reason_code=lazy_expunge:expunge

3 years agolazy-expunge: Split off lazy_expunge_mail_expunge_move()
Timo Sirainen [Wed, 17 Mar 2021 16:23:11 +0000 (18:23 +0200)] 
lazy-expunge: Split off lazy_expunge_mail_expunge_move()

3 years agolib-storage: Replace mailbox_set_reason() with reason_code=storage:autoexpunge and...
Timo Sirainen [Thu, 11 Mar 2021 14:56:32 +0000 (16:56 +0200)] 
lib-storage: Replace mailbox_set_reason() with reason_code=storage:autoexpunge and storage:mailbox_list_rebuild

3 years agomdbox: Replace mailbox_set_reason() with reason_code=mdbox:rebuild
Timo Sirainen [Thu, 11 Mar 2021 14:53:35 +0000 (16:53 +0200)] 
mdbox: Replace mailbox_set_reason() with reason_code=mdbox:rebuild

3 years agomdbox: Split off mdbox_storage_rebuild_scan_prepare()
Timo Sirainen [Tue, 16 Mar 2021 17:02:06 +0000 (19:02 +0200)] 
mdbox: Split off mdbox_storage_rebuild_scan_prepare()

3 years agoindexer: Replace mailbox_set_reason() with reason_code=indexer:index_mailbox
Timo Sirainen [Thu, 11 Mar 2021 13:46:11 +0000 (15:46 +0200)] 
indexer: Replace mailbox_set_reason() with reason_code=indexer:index_mailbox

3 years agoimap: Add reason_code=imap:fetch_*
Timo Sirainen [Wed, 17 Mar 2021 15:28:03 +0000 (17:28 +0200)] 
imap: Add reason_code=imap:fetch_*

The main reason for these is to allow understanding why mails are being
opened. The possibilities:

 * imap:fetch_body
 * imap:fetch_header
 * imap:fetch_header_fields
 * imap:fetch_bodystructure
 * imap:fetch_size

3 years agoimap: Remove mailbox_set_reason() calls
Timo Sirainen [Thu, 11 Mar 2021 13:44:47 +0000 (15:44 +0200)] 
imap: Remove mailbox_set_reason() calls

They are now unnecessary because of the new reason_code field.

3 years agoimap: Add reason_code=imap:unhibernate for events during unhibernation.
Timo Sirainen [Thu, 11 Mar 2021 13:44:10 +0000 (15:44 +0200)] 
imap: Add reason_code=imap:unhibernate for events during unhibernation.

3 years agoimap: Add reason_code=imap:notify_update for events during NOTIFY updates
Timo Sirainen [Thu, 11 Mar 2021 13:39:09 +0000 (15:39 +0200)] 
imap: Add reason_code=imap:notify_update for events during NOTIFY updates

3 years agoimap: Add and use client_command_context.global_event
Timo Sirainen [Tue, 9 Mar 2021 14:37:18 +0000 (16:37 +0200)] 
imap: Add and use client_command_context.global_event

This way all the (potentially large) IMAP command parameters won't be
included in all the events. This change might be reverted in the future
if the performance worries go away.

The global event also contains reason_code=imap:cmd_<command name> field.

3 years agodoveadm: Remove mailbox_set_reason() calls
Timo Sirainen [Thu, 11 Mar 2021 13:26:56 +0000 (15:26 +0200)] 
doveadm: Remove mailbox_set_reason() calls

They are now unnecessary because of the new reason_code field.

3 years agodoveadm: Add reason_code=doveadm:cmd_<command name> to events
Timo Sirainen [Thu, 11 Mar 2021 13:26:09 +0000 (15:26 +0200)] 
doveadm: Add reason_code=doveadm:cmd_<command name> to events

3 years agodsync: ioloop context shouldn't deactivate after ioloop has run
Timo Sirainen [Mon, 19 Apr 2021 21:05:23 +0000 (00:05 +0300)] 
dsync: ioloop context shouldn't deactivate after ioloop has run

Normally that is wanted, but dsync reuses the same ioloop as the parent
doveadm connection, so after the inner io_loop_run() it's still running
in the doveadm connection's io callback.

Without this all the global events will be popped out, and the following
global event change commit will cause crashes.

3 years agodoveadm copy: Don't permanently activate source user's ioloop
Timo Sirainen [Mon, 19 Apr 2021 21:28:02 +0000 (00:28 +0300)] 
doveadm copy: Don't permanently activate source user's ioloop

3 years agodoveadm import: Don't permanently activate source user's ioloop
Timo Sirainen [Mon, 19 Apr 2021 21:24:39 +0000 (00:24 +0300)] 
doveadm import: Don't permanently activate source user's ioloop

After the source user is initialized, the original user's ioloop should be
activated back.

3 years agosubmission: Add reason_code=submission:cmd_<name>
Timo Sirainen [Wed, 17 Mar 2021 16:48:37 +0000 (18:48 +0200)] 
submission: Add reason_code=submission:cmd_<name>

3 years agolmtp: Add reason_code=lmtp:cmd_<name>
Timo Sirainen [Wed, 17 Mar 2021 16:48:24 +0000 (18:48 +0200)] 
lmtp: Add reason_code=lmtp:cmd_<name>

3 years agolib-smtp: Add reason_code=<reason_code_module>:cmd_*
Timo Sirainen [Wed, 17 Mar 2021 16:44:09 +0000 (18:44 +0200)] 
lib-smtp: Add reason_code=<reason_code_module>:cmd_*

This requires caller to set smtp_server_settings.reason_code_module.
For now only cmd_mail, cmd_rcpt and cmd_data are implemented. The other
commands are likely not very useful.

3 years agolib-http: http-client-request - Preserve global events' reason_code in request events
Timo Sirainen [Thu, 22 Apr 2021 17:27:45 +0000 (20:27 +0300)] 
lib-http: http-client-request - Preserve global events' reason_code in request events

Since HTTP requests are asynchronous, it's possible that the global events
go away before the HTTP request is finished. This way the reason_code will
be preserved in http_request_finished event.

3 years agolib: Add event_reason_code() for building reason codes easily
Timo Sirainen [Thu, 11 Mar 2021 15:54:18 +0000 (17:54 +0200)] 
lib: Add event_reason_code() for building reason codes easily

3 years agolib: Add event_reason_begin/end() API
Timo Sirainen [Tue, 9 Mar 2021 14:45:20 +0000 (16:45 +0200)] 
lib: Add event_reason_begin/end() API

This can be used to easily add reason_code to all events being emitted
within the begin..end calls. The reasons can also be nested. For example:

reason = event_reason_begin("reason1");
// ...
reason2 = event_reason_begin("reason2");
// ..
event_reason_end(&reason2);
event_reason_end(&reason);

This results in having reason_code=["reason1", "reason2"] for all events
emitted while reason2 exists.

3 years agolib: event_pop_global() - Assert-crash if trying to pop ioloop context's global root...
Timo Sirainen [Wed, 21 Apr 2021 13:55:57 +0000 (16:55 +0300)] 
lib: event_pop_global() - Assert-crash if trying to pop ioloop context's global root event

This makes it easier to debug bugs.

3 years agolib: Push/pop global event stack automatically when ioloop contexts are switched
Timo Sirainen [Thu, 11 Mar 2021 00:19:37 +0000 (02:19 +0200)] 
lib: Push/pop global event stack automatically when ioloop contexts are switched

3 years agolib-storage: mail_storage_service_next*() - On failure don't leave user's io context...
Timo Sirainen [Wed, 21 Apr 2021 14:11:54 +0000 (17:11 +0300)] 
lib-storage: mail_storage_service_next*() - On failure don't leave user's io context activated

3 years agolib-storage: Remove global event stack tracking
Timo Sirainen [Thu, 11 Mar 2021 00:18:55 +0000 (02:18 +0200)] 
lib-storage: Remove global event stack tracking

This will be implemented by ioloop contexts directly in the next commit.

3 years agolib: Fix global events to actually work
Timo Sirainen [Tue, 9 Mar 2021 14:33:15 +0000 (16:33 +0200)] 
lib: Fix global events to actually work

Also add comments to clarify how exactly it works.

3 years agolib: event_push_global() - Assert that event is not NULL
Timo Sirainen [Mon, 19 Apr 2021 21:08:57 +0000 (00:08 +0300)] 
lib: event_push_global() - Assert that event is not NULL

3 years agolib-master: Fix sending events recursively
Timo Sirainen [Thu, 9 Sep 2021 10:46:24 +0000 (13:46 +0300)] 
lib-master: Fix sending events recursively

The event sending itself may recursively trigger more events (e.g.
data_stack_grow). The previous BEGINs must have been flushed by that
time or the recursive events might be pointing to event IDs that haven't
even been sent to the stats process yet.

Fixes:
stats: Error: Client sent invalid input for UPDATE: Unknown event ID

3 years agolib-master, stats: Send global events to stats process
Timo Sirainen [Tue, 9 Mar 2021 14:29:49 +0000 (16:29 +0200)] 
lib-master, stats: Send global events to stats process

3 years agostats: Support group_by for string lists
Timo Sirainen [Fri, 19 Mar 2021 11:13:45 +0000 (13:13 +0200)] 
stats: Support group_by for string lists

3 years agostats: Support exporting event string lists
Aki Tuomi [Wed, 27 Jan 2021 11:10:07 +0000 (13:10 +0200)] 
stats: Support exporting event string lists

3 years agostats: Split off stats_metric_get_sub_metric()
Timo Sirainen [Fri, 19 Mar 2021 11:02:54 +0000 (13:02 +0200)] 
stats: Split off stats_metric_get_sub_metric()

3 years agostats: Rename stats_metric_get_sub_metric() to stats_metric_find_sub_metric()
Timo Sirainen [Fri, 19 Mar 2021 11:05:35 +0000 (13:05 +0200)] 
stats: Rename stats_metric_get_sub_metric() to stats_metric_find_sub_metric()

3 years agostats: Split off stats_metric_group_by_value_label()
Timo Sirainen [Fri, 19 Mar 2021 10:59:53 +0000 (12:59 +0200)] 
stats: Split off stats_metric_group_by_value_label()

3 years agostats: stats_metric_group_by_*() - Add _r suffix to returned value parameter
Timo Sirainen [Fri, 19 Mar 2021 10:52:13 +0000 (12:52 +0200)] 
stats: stats_metric_group_by_*() - Add _r suffix to returned value parameter

3 years agolib: lib-event - Add support for string lists
Aki Tuomi [Tue, 15 Dec 2020 07:17:57 +0000 (09:17 +0200)] 
lib: lib-event - Add support for string lists

Provide API to create string lists. These are particularly
useful if you need to provide list of causes for an event,
such as why some mail was opened.

3 years agolib: test-event-filter - Improve "override parent fields" test
Timo Sirainen [Mon, 23 Aug 2021 14:21:58 +0000 (17:21 +0300)] 
lib: test-event-filter - Improve "override parent fields" test

3 years agolib: test-event-filter - Fix parent/child events to actually be parent/child
Timo Sirainen [Mon, 23 Aug 2021 14:15:47 +0000 (17:15 +0300)] 
lib: test-event-filter - Fix parent/child events to actually be parent/child

3 years agolib: Split off event_import_arg()
Timo Sirainen [Tue, 16 Mar 2021 17:22:25 +0000 (19:22 +0200)] 
lib: Split off event_import_arg()

3 years agolib: Split off event_import_field()
Timo Sirainen [Tue, 16 Mar 2021 17:19:43 +0000 (19:19 +0200)] 
lib: Split off event_import_field()

3 years agolib-index: Allow ignoring index corruption checks with --enable-devel-checks
Timo Sirainen [Fri, 24 Sep 2021 15:21:29 +0000 (18:21 +0300)] 
lib-index: Allow ignoring index corruption checks with --enable-devel-checks

If DEBUG_IGNORE_INDEX_CORRUPTION environment is set, don't check if
index contains internal corruption. This is useful for CI tests that
intentionally test corrupted indexes.

3 years agolib-http: http-server: Add request events
Siavash Tavakoli [Mon, 27 Sep 2021 23:28:35 +0000 (00:28 +0100)] 
lib-http: http-server: Add request events

Adds http_server_request_started and http_server_request_finished.

3 years agolib-http: http-server-request - Add request_id and status_code fields to event
Siavash Tavakoli [Thu, 26 Aug 2021 12:13:55 +0000 (13:13 +0100)] 
lib-http: http-server-request - Add request_id and status_code fields to event

3 years agostats: Use duplicated metric settings in stats_metrics_add_dynamic().
sergey.kitov [Tue, 28 Sep 2021 12:35:21 +0000 (15:35 +0300)] 
stats: Use duplicated metric settings in stats_metrics_add_dynamic().

3 years agoimapc: Add MAIL_STORAGE_CLASS_FLAG_SECONDARY_INDEX storage class flag
Markus Valentin [Wed, 15 Sep 2021 12:44:42 +0000 (14:44 +0200)] 
imapc: Add MAIL_STORAGE_CLASS_FLAG_SECONDARY_INDEX storage class flag

Add SECONDARY_INDEX storage class flag to enable storing shared private
indexes in obox user root bundle.

3 years agolib-storage: mail_get_binary_stream() - Add comment about having to unref returned...
Timo Sirainen [Fri, 24 Sep 2021 14:33:38 +0000 (17:33 +0300)] 
lib-storage: mail_get_binary_stream() - Add comment about having to unref returned istream

3 years agolib: test-cpu-limit - Remove dead code
Timo Sirainen [Wed, 22 Sep 2021 12:58:55 +0000 (15:58 +0300)] 
lib: test-cpu-limit - Remove dead code

No longer needed after 6d902507c24fca4f64e3e9bf7d79ae5a48281cd8

3 years agolib: test-strfuncs - Avoid testing p_strndup() with overlong max_chars parameter
Timo Sirainen [Mon, 27 Sep 2021 08:49:05 +0000 (11:49 +0300)] 
lib: test-strfuncs - Avoid testing p_strndup() with overlong max_chars parameter

This ended up in memchr() call with n=SIZE_MAX-1, which sometimes doesn't
work right with old glibc versions.

Fixes:
Panic: Trying to allocate 18446744073709551615 bytes

3 years agolib-mail: Add test for empty header value
Aki Tuomi [Wed, 8 Sep 2021 07:39:36 +0000 (10:39 +0300)] 
lib-mail: Add test for empty header value

3 years agolib-mail: Limit header length to 1000 bytes
Aki Tuomi [Thu, 2 Sep 2021 14:10:11 +0000 (17:10 +0300)] 
lib-mail: Limit header length to 1000 bytes

3 years agolib-mail: If message header has no colon, store it as value only
Aki Tuomi [Thu, 2 Sep 2021 14:12:55 +0000 (17:12 +0300)] 
lib-mail: If message header has no colon, store it as value only

If the header is missing :, it is not valid header. Storing it as
value only ensures it will be kept by mbox rewrite, but will not
be processed as a header.

3 years agolib-mail: test-message-header-parser - Add NAME10, 100, 1000 macros for testing
Aki Tuomi [Thu, 2 Sep 2021 13:46:19 +0000 (16:46 +0300)] 
lib-mail: test-message-header-parser - Add NAME10, 100, 1000 macros for testing

3 years agolib: Add i_memspn() and i_memcspn()
Aki Tuomi [Tue, 7 Sep 2021 11:37:34 +0000 (14:37 +0300)] 
lib: Add i_memspn() and i_memcspn()

Binary data safe variants of strspn() and strcspn()

3 years agovirtual: Log a debug message why backend mailbox has changed
Timo Sirainen [Thu, 16 Sep 2021 11:32:37 +0000 (13:32 +0200)] 
virtual: Log a debug message why backend mailbox has changed

3 years agolib-storage: mail-duplicate - Restructure mail_duplicate_read_db_file() to make sure...
Stephan Bosch [Fri, 24 Sep 2021 08:39:43 +0000 (10:39 +0200)] 
lib-storage: mail-duplicate - Restructure mail_duplicate_read_db_file() to make sure fd is closed.

Found by Coverity.

3 years agolib-storage: mail-duplicate - Fix segfault occurring upon failure to lock and open...
Stephan Bosch [Fri, 24 Sep 2021 08:22:28 +0000 (10:22 +0200)] 
lib-storage: mail-duplicate - Fix segfault occurring upon failure to lock and open DB file.

Found by Coverity.

3 years agoindexer-worker: Fix event leak on error handling
Timo Sirainen [Wed, 18 Aug 2021 14:54:00 +0000 (16:54 +0200)] 
indexer-worker: Fix event leak on error handling

3 years agolib-storage: mail-duplicate - Implement separate error code for deadlock.
Stephan Bosch [Tue, 13 Jul 2021 02:15:14 +0000 (04:15 +0200)] 
lib-storage: mail-duplicate - Implement separate error code for deadlock.

3 years agolib-storage: mail-duplicate - Update records from duplicate DB file after acquirement...
Stephan Bosch [Wed, 15 Sep 2021 23:49:57 +0000 (01:49 +0200)] 
lib-storage: mail-duplicate - Update records from duplicate DB file after acquirement of per-ID lock.

The process previously holding the per-ID lock may have updated the DB.

3 years agolib-storage: mail-duplicate - Move acquirement of dotlock for DB file into mail_dupli...
Stephan Bosch [Fri, 17 Sep 2021 09:11:21 +0000 (11:11 +0200)] 
lib-storage: mail-duplicate - Move acquirement of dotlock for DB file into mail_duplicate_read().

3 years agolib-storage: mail-duplicate - Implement per-ID locking.
Stephan Bosch [Mon, 20 Sep 2021 09:58:12 +0000 (11:58 +0200)] 
lib-storage: mail-duplicate - Implement per-ID locking.

3 years agolib-storage: mail-duplicate - Allow calling mail_duplicate_read() more than once...
Stephan Bosch [Fri, 17 Sep 2021 09:16:39 +0000 (11:16 +0200)] 
lib-storage: mail-duplicate - Allow calling mail_duplicate_read() more than once in a transaction.

3 years agolib-storage: mail-duplicate - Record an entry for both checked and marked IDs.
Stephan Bosch [Tue, 13 Jul 2021 21:22:52 +0000 (23:22 +0200)] 
lib-storage: mail-duplicate - Record an entry for both checked and marked IDs.

Still only write the marked IDs to the file. The in-memory record is needed for
the locking introduced in a later commit.

3 years agolib-storage: mail-duplicate - Add debug messages for transaction.
Stephan Bosch [Tue, 13 Jul 2021 03:03:02 +0000 (05:03 +0200)] 
lib-storage: mail-duplicate - Add debug messages for transaction.

3 years agolib-storage: mail-duplicate - Add debug messages for database.
Stephan Bosch [Tue, 13 Jul 2021 03:07:39 +0000 (05:07 +0200)] 
lib-storage: mail-duplicate - Add debug messages for database.

3 years agolib-storage: mail-duplicate - Add event to transaction object.
Stephan Bosch [Tue, 13 Jul 2021 02:40:24 +0000 (04:40 +0200)] 
lib-storage: mail-duplicate - Add event to transaction object.

3 years agolib-storage: mail-duplicate - Add event to database object.
Stephan Bosch [Tue, 13 Jul 2021 02:53:11 +0000 (04:53 +0200)] 
lib-storage: mail-duplicate - Add event to database object.

3 years agolib-storage: mail-duplicate - Restructure API to make it transaction-based.
Stephan Bosch [Tue, 8 Jun 2021 01:51:10 +0000 (03:51 +0200)] 
lib-storage: mail-duplicate - Restructure API to make it transaction-based.

3 years agolib-storage: mail-duplicate - Change mail_duplicate_check() return type from bool...
Stephan Bosch [Tue, 13 Jul 2021 02:03:42 +0000 (04:03 +0200)] 
lib-storage: mail-duplicate - Change mail_duplicate_check() return type from bool to enum.

3 years agolib-storage: Reformat mail-duplicate.c.
Stephan Bosch [Fri, 17 Sep 2021 09:04:55 +0000 (11:04 +0200)] 
lib-storage: Reformat mail-duplicate.c.

3 years agolib-storage: mail-user - Add mail_user_get_volatile_dir().
Stephan Bosch [Sat, 7 Aug 2021 13:43:35 +0000 (15:43 +0200)] 
lib-storage: mail-user - Add mail_user_get_volatile_dir().

3 years agolib: file-lock - Adjust API to allow EDEADLK to be used by application.
Stephan Bosch [Mon, 20 Sep 2021 00:45:23 +0000 (02:45 +0200)] 
lib: file-lock - Adjust API to allow EDEADLK to be used by application.

It always caused a Dovecot panic before when returned from kernel.

3 years agolib: file-lock - Rework API to make it extensible.
Stephan Bosch [Sun, 19 Sep 2021 11:09:29 +0000 (13:09 +0200)] 
lib: file-lock - Rework API to make it extensible.

3 years agolib: file-lock - Rename file_{wait,try}_lock_error() to file_{wait,try}_lock().
Stephan Bosch [Mon, 20 Sep 2021 00:39:08 +0000 (02:39 +0200)] 
lib: file-lock - Rename file_{wait,try}_lock_error() to file_{wait,try}_lock().

3 years agolib: file-lock - Remove file_{wait,try}_lock().
Stephan Bosch [Mon, 20 Sep 2021 00:29:55 +0000 (02:29 +0200)] 
lib: file-lock - Remove file_{wait,try}_lock().

3 years agoglobal: Avoid use of file_{wait,try}_lock().
Stephan Bosch [Mon, 20 Sep 2021 00:26:46 +0000 (02:26 +0200)] 
global: Avoid use of file_{wait,try}_lock().

Use the file_{wait,try}_lock_error() variants instead.

3 years agolib-http: test-http-client-errors - Allow more relaxed timeouts for connect retry...
Timo Sirainen [Wed, 22 Sep 2021 14:36:27 +0000 (17:36 +0300)] 
lib-http: test-http-client-errors - Allow more relaxed timeouts for connect retry tests

With max_connect_attempts=3 the connects come at (0ms, 100ms, 300ms).
Before the 3rd attempt a timeout at 250ms must have triggered, so there
was only 50ms time for it to trigger. This wasn't always enough when
running with valgrind on an overloaded system. Solve this by increasing
max_connect_attempts=4 so the 4th attempt comes at 700ms, giving the
timeout 450ms to trigger.

3 years agolib: Add most data_stack_grow event fields before checking if event is wanted
Timo Sirainen [Wed, 22 Sep 2021 09:14:08 +0000 (12:14 +0300)] 
lib: Add most data_stack_grow event fields before checking if event is wanted

This allows using e.g. "event=data_stack_grow and alloc_size > 32768" as
an event filter.

3 years agoconfig: Add data stack frame
Timo Sirainen [Tue, 21 Sep 2021 15:27:29 +0000 (18:27 +0300)] 
config: Add data stack frame

3 years agodoveconf: Avoid unnecessary data stack use when writing output
Timo Sirainen [Tue, 21 Sep 2021 15:26:53 +0000 (18:26 +0300)] 
doveconf: Avoid unnecessary data stack use when writing output

3 years agomaster: Create each service in its own data stack frame
Timo Sirainen [Tue, 21 Sep 2021 15:21:54 +0000 (18:21 +0300)] 
master: Create each service in its own data stack frame

3 years agodoveadm: Call each run() in its own data stack frame
Timo Sirainen [Tue, 21 Sep 2021 14:52:15 +0000 (17:52 +0300)] 
doveadm: Call each run() in its own data stack frame

3 years agodsync: Add data stack frames to mailbox loops
Timo Sirainen [Tue, 21 Sep 2021 14:14:44 +0000 (17:14 +0300)] 
dsync: Add data stack frames to mailbox loops

3 years agodsync: Split off dsync_brain_recv_mailbox_tree_add()
Timo Sirainen [Tue, 21 Sep 2021 14:10:56 +0000 (17:10 +0300)] 
dsync: Split off dsync_brain_recv_mailbox_tree_add()

3 years agoacl: Code cleanup - Remove pointless while-loop
Timo Sirainen [Tue, 21 Sep 2021 14:50:32 +0000 (17:50 +0300)] 
acl: Code cleanup - Remove pointless while-loop

3 years agoacl: acllist rebuild - Move data stack frame to caller's loop
Timo Sirainen [Tue, 21 Sep 2021 14:03:45 +0000 (17:03 +0300)] 
acl: acllist rebuild - Move data stack frame to caller's loop

3 years agoacl: Add data stack frame when iterating mailboxes
Timo Sirainen [Tue, 21 Sep 2021 13:14:12 +0000 (16:14 +0300)] 
acl: Add data stack frame when iterating mailboxes

Avoids wasting memory when there are a lot of mailboxes.

3 years agolib-storage: mail_user_unref() - Add data stack frame
Timo Sirainen [Tue, 21 Sep 2021 14:51:15 +0000 (17:51 +0300)] 
lib-storage: mail_user_unref() - Add data stack frame

The deinit code paths can sometimes eat up quite a lot of data stack.

3 years agolib-storage: mailbox_create() - Add data stack frames
Timo Sirainen [Wed, 22 Sep 2021 09:49:46 +0000 (12:49 +0300)] 
lib-storage: mailbox_create() - Add data stack frames

3 years agolib-storage: Add data stack frames to [service] user initialization
Timo Sirainen [Wed, 22 Sep 2021 09:48:18 +0000 (12:48 +0300)] 
lib-storage: Add data stack frames to [service] user initialization

Initialization steps can use a lot of data stack, so try to free it at
several checkpoints.

3 years agolib-storage: Add data stack frame when iterating mailboxes to build GUID cache
Timo Sirainen [Tue, 21 Sep 2021 14:49:34 +0000 (17:49 +0300)] 
lib-storage: Add data stack frame when iterating mailboxes to build GUID cache

3 years agolib-storage: mailbox_verify_*name() - Add data stack frames
Timo Sirainen [Tue, 21 Sep 2021 14:48:33 +0000 (17:48 +0300)] 
lib-storage: mailbox_verify_*name() - Add data stack frames

This function can eat up quite a lot of data stack.

3 years agolib-storage: str_contains_special_use() - Add data stack frame
Timo Sirainen [Tue, 21 Sep 2021 14:47:41 +0000 (17:47 +0300)] 
lib-storage: str_contains_special_use() - Add data stack frame

This function is called in a loop by namespace_find_special_use().

3 years agolib-storage: List index rebuild - Add data stack frames
Timo Sirainen [Tue, 21 Sep 2021 13:58:13 +0000 (16:58 +0300)] 
lib-storage: List index rebuild - Add data stack frames

3 years agolib-storage: List index rebuild - Split off mail_storage_list_index_find_indexed_mail...
Timo Sirainen [Tue, 21 Sep 2021 13:57:13 +0000 (16:57 +0300)] 
lib-storage: List index rebuild - Split off mail_storage_list_index_find_indexed_mailbox()

3 years agolib-storage: Don't use data stack for mailbox list index header update
Timo Sirainen [Tue, 21 Sep 2021 13:37:13 +0000 (16:37 +0300)] 
lib-storage: Don't use data stack for mailbox list index header update

There can be a lot of mailboxes, causing excessive data stack usage.