]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
7 years agolib-storage: Deduplicate headers in struct mailbox_header_lookup_ctx
Timo Sirainen [Thu, 21 Jul 2016 14:32:52 +0000 (08:32 -0600)] 
lib-storage: Deduplicate headers in struct mailbox_header_lookup_ctx

This might slightly improve performance.

7 years agoman: Add missing commands to doveadm
Michael M Slusarz [Tue, 31 Jul 2018 23:40:08 +0000 (17:40 -0600)] 
man: Add missing commands to doveadm

7 years agoglobal: Start relying on event_set_forced_debug(e, FALSE) being a no-op
Josef 'Jeff' Sipek [Sat, 30 Jun 2018 14:13:10 +0000 (10:13 -0400)] 
global: Start relying on event_set_forced_debug(e, FALSE) being a no-op

Converted using the following semantic patch:

@@
expression event;
expression cond;
@@

- if (cond) {
-  event_set_forced_debug(event,
(
- TRUE
|
- cond
)
- );
- }
+ event_set_forced_debug(event, cond);

7 years agolib: Change event_set_forced_debug(e, FALSE) to be a no-op
Josef 'Jeff' Sipek [Sat, 30 Jun 2018 14:08:27 +0000 (10:08 -0400)] 
lib: Change event_set_forced_debug(e, FALSE) to be a no-op

7 years agolib: Add event_unset_forced_debug()
Josef 'Jeff' Sipek [Sat, 30 Jun 2018 14:06:04 +0000 (10:06 -0400)] 
lib: Add event_unset_forced_debug()

7 years agolib-storage: Initialize reset_id in index_index_copy_cache
Timo Sirainen [Wed, 27 Jun 2018 14:16:24 +0000 (17:16 +0300)] 
lib-storage: Initialize reset_id in index_index_copy_cache

Makes valgrind happy with clang's optimizations.

7 years agolmtp, submission: Remove extra spaces from "state = X" in disconnect log line
Timo Sirainen [Wed, 20 Jun 2018 07:49:46 +0000 (10:49 +0300)] 
lmtp, submission: Remove extra spaces from "state = X" in disconnect log line

Other Dovecot log messages don't have spaces in key=value.

7 years agodoveadm-dict: Initialize set variable in cmd_dict_init
Aki Tuomi [Mon, 11 Jun 2018 11:22:38 +0000 (14:22 +0300)] 
doveadm-dict: Initialize set variable in cmd_dict_init

Makes valgrind happy with clang's optimizations

7 years agodoveadm-dict: Remove spurious `key =` debug logging
Aki Tuomi [Mon, 11 Jun 2018 11:06:20 +0000 (14:06 +0300)] 
doveadm-dict: Remove spurious `key =` debug logging

Was added in 42db3821

7 years agolib-dict-backend: Fix linking order for test-dict-sql
Timo Sirainen [Tue, 31 Jul 2018 09:40:28 +0000 (12:40 +0300)] 
lib-dict-backend: Fix linking order for test-dict-sql

7 years agolib-dict-backend: Fix building --with-cdb --without-shared-libs
Timo Sirainen [Fri, 25 May 2018 11:44:10 +0000 (14:44 +0300)] 
lib-dict-backend: Fix building --with-cdb --without-shared-libs

7 years agolog: Fix the default prefix
Timo Sirainen [Tue, 22 May 2018 07:24:33 +0000 (10:24 +0300)] 
log: Fix the default prefix

"listen_fd(123): foo" is better than "listen_fd 14foo"

7 years agolib-index: fsck: Fix small log offsets to file's correct header size
Timo Sirainen [Sun, 20 May 2018 12:56:51 +0000 (15:56 +0300)] 
lib-index: fsck: Fix small log offsets to file's correct header size

Use the file's actual current header size, not
MAIL_TRANSACTION_LOG_HEADER_MIN_SIZE, which is nowadays smaller. This
resulted in unnecessary errors like:

Corrupted transaction log file ...: Invalid min_file_offset: ..., min_file_offset (24) < hdr_size (40)

7 years agolib-index: fsck: Don't change log_file_tail_offset=0
Timo Sirainen [Sun, 20 May 2018 12:55:03 +0000 (15:55 +0300)] 
lib-index: fsck: Don't change log_file_tail_offset=0

7 years agoimap-hibernate: Log error when connect(imap-master) fails
Timo Sirainen [Sun, 22 Apr 2018 10:11:16 +0000 (13:11 +0300)] 
imap-hibernate: Log error when connect(imap-master) fails

It was previously logged only with info-level.

7 years agolib-index: Remove #if'ed out code
Timo Sirainen [Sun, 20 May 2018 22:30:36 +0000 (01:30 +0300)] 
lib-index: Remove #if'ed out code

Originally added by 0b2d4626c6fb4e40bc81c56d8227191f3c7e1ea3. Possibly
accidentally.

7 years agoindexer: Don't log error when getting path to nonexistent mailbox fails
Martti Rannanjärvi [Wed, 27 Jun 2018 21:34:14 +0000 (00:34 +0300)] 
indexer: Don't log error when getting path to nonexistent mailbox fails

7 years agoindexer: Don't log mailbox was deleted under us error
Martti Rannanjärvi [Wed, 27 Jun 2018 21:05:26 +0000 (00:05 +0300)] 
indexer: Don't log mailbox was deleted under us error

7 years agoindexer: Don't log error when mailbox was not found
Martti Rannanjärvi [Wed, 27 Jun 2018 20:58:11 +0000 (23:58 +0300)] 
indexer: Don't log error when mailbox was not found

7 years agofts-solr: Properly URL encode quotes for empty string
Martti Rannanjärvi [Wed, 27 Jun 2018 14:19:38 +0000 (17:19 +0300)] 
fts-solr: Properly URL encode quotes for empty string

Invalid URL encoding of empty string made Solr server give 400 Bad
Request HTTP responses for searches like SEARCH HEADER FROM "".

7 years agofts-solr: Fix default_ns parameter parsing
Martti Rannanjärvi [Wed, 27 Jun 2018 14:27:15 +0000 (17:27 +0300)] 
fts-solr: Fix default_ns parameter parsing

This version makes it possible to specify a value to the setting as
well.

7 years agofts-solr: Append '/' to URL path when missing in configuration
Martti Rannanjärvi [Tue, 26 Jun 2018 09:38:50 +0000 (12:38 +0300)] 
fts-solr: Append '/' to URL path when missing in configuration

This fixes a crash when url parameter has empty path like
http://localhost:8080 instead of http://localhost:8080/ and makes using
url like http://localhost:8080/solr behave the same as
http://localhost:8080/solr/

7 years agolib-master: Copy ssl_curve_list setting
Aki Tuomi [Tue, 31 Jul 2018 05:45:29 +0000 (08:45 +0300)] 
lib-master: Copy ssl_curve_list setting

Otherwise it won't get used.

Broken in 30dca95419

7 years agolib-ssl-iostream: Remove unused DH members
Aki Tuomi [Tue, 31 Jul 2018 09:26:35 +0000 (12:26 +0300)] 
lib-ssl-iostream: Remove unused DH members

These are not being used anywhere.

7 years agolib-ssl-iostream: Make DH parameters optional
Aki Tuomi [Mon, 30 Jul 2018 17:26:19 +0000 (20:26 +0300)] 
lib-ssl-iostream: Make DH parameters optional

Since a lot of connections use elliptic curve
Diffie-Hellman these days, make it possible to
use dovecot without providing Diffie-Hellman
parameters. This reduces setup cost as the
parameters do not need to be generated, which
can be a time consuming task.

7 years agom4, quota: Support rquota using libtirpc
Timo Sirainen [Mon, 9 Jul 2018 08:39:59 +0000 (11:39 +0300)] 
m4, quota: Support rquota using libtirpc

7 years agom4: Enable rquota only if rpc/rpc.h exists
Timo Sirainen [Mon, 9 Jul 2018 08:33:23 +0000 (11:33 +0300)] 
m4: Enable rquota only if rpc/rpc.h exists

It's been removed in glibc 2.26

7 years agolib-ssl-iostream: Turn on SSL_OP_SINGLE_DH_USE
Aki Tuomi [Wed, 27 Jun 2018 06:10:39 +0000 (09:10 +0300)] 
lib-ssl-iostream: Turn on SSL_OP_SINGLE_DH_USE

Improves forward secrecy in case a DH cipher is used.

7 years agolib: Assert-crash if duplicate event categories are tried to be registered
Timo Sirainen [Wed, 13 Jun 2018 14:26:57 +0000 (17:26 +0300)] 
lib: Assert-crash if duplicate event categories are tried to be registered

7 years agolib-smtp: server: data command: Hold a reference to the connection while handling...
Stephan Bosch [Thu, 21 Jun 2018 20:55:50 +0000 (22:55 +0200)] 
lib-smtp: server: data command: Hold a reference to the connection while handling input.

Makes sure connection object remains available while command is handled. Fixes a
valgrind error reported for accessing the connection object after it is freed,
which happens for the destroy debug message of the command (even when debugging
is not enabled).

7 years agolib-smtp: server: data command: Dereference command at single place during input...
Stephan Bosch [Thu, 21 Jun 2018 20:51:26 +0000 (22:51 +0200)] 
lib-smtp: server: data command: Dereference command at single place during input handling.

7 years agolib-storage: Turn on debug early if MAIL_STORAGE_SERVICE_FLAG_DEBUG set
Aki Tuomi [Tue, 26 Jun 2018 10:18:20 +0000 (13:18 +0300)] 
lib-storage: Turn on debug early if MAIL_STORAGE_SERVICE_FLAG_DEBUG set

7 years agolib-storage: Use provided flags in mail_storage_service_first_init
Aki Tuomi [Tue, 26 Jun 2018 10:22:20 +0000 (13:22 +0300)] 
lib-storage: Use provided flags in mail_storage_service_first_init

7 years agolib-storage: Fix MAIL_STORAGE_SERVICE_FLAG_DEBUG work again
Aki Tuomi [Tue, 26 Jun 2018 10:18:00 +0000 (13:18 +0300)] 
lib-storage: Fix MAIL_STORAGE_SERVICE_FLAG_DEBUG work again

7 years agoauth: pass overriden auth_debug setting to auth process
Sergey Kitov [Wed, 23 May 2018 11:39:44 +0000 (14:39 +0300)] 
auth: pass overriden auth_debug setting to auth process

7 years agolib-storage: Replace "if(mail_debug)" with "if(event_want_debug_log)"
Sergey Kitov [Tue, 20 Mar 2018 09:22:43 +0000 (11:22 +0200)] 
lib-storage: Replace "if(mail_debug)" with "if(event_want_debug_log)"

7 years agoplugins: replace "if(mail_debug){i_debug}" with "e_debug"
Sergey Kitov [Tue, 20 Mar 2018 09:20:44 +0000 (11:20 +0200)] 
plugins: replace "if(mail_debug){i_debug}" with "e_debug"

7 years agolib-storage: Replace "if(mail_debug){i_debug}" "e_debug"
Sergey Kitov [Tue, 20 Mar 2018 09:05:13 +0000 (11:05 +0200)] 
lib-storage: Replace "if(mail_debug){i_debug}" "e_debug"

7 years agolib-storage: Force mail_storage_service_user event debug when mail_debug=yes
Sergey Kitov [Thu, 24 May 2018 12:18:30 +0000 (15:18 +0300)] 
lib-storage: Force mail_storage_service_user event debug when mail_debug=yes

7 years agolda & lib-lda: "if(mail_debug){i_debug}" with "e_debug"
Sergey Kitov [Tue, 20 Mar 2018 08:51:21 +0000 (10:51 +0200)] 
lda & lib-lda: "if(mail_debug){i_debug}" with "e_debug"

7 years agoindexer: Replace "if(mail_debug){i_debug}" with "e_debug"
Sergey Kitov [Tue, 20 Mar 2018 08:49:08 +0000 (10:49 +0200)] 
indexer: Replace "if(mail_debug){i_debug}" with "e_debug"

7 years agoimap: Replace "if(mail_debug){i_debug}" with "e_debug"
Sergey Kitov [Tue, 20 Mar 2018 08:46:19 +0000 (10:46 +0200)] 
imap: Replace "if(mail_debug){i_debug}" with "e_debug"

7 years agolib-imap-urlauth & imap-urlauth: replace "if(mail_debug){i_debug}" with "e_debug...
Sergey Kitov [Tue, 20 Mar 2018 08:17:27 +0000 (10:17 +0200)] 
lib-imap-urlauth & imap-urlauth: replace "if(mail_debug){i_debug}" with "e_debug(client->event)"

7 years agoimap-urlauth: Add event with "imap-urlauth" category to struct client of imap-urlauth
Sergey Kitov [Tue, 20 Mar 2018 07:52:38 +0000 (09:52 +0200)] 
imap-urlauth: Add event with "imap-urlauth" category to struct client of imap-urlauth

7 years agoglobal: Replace check for auth_debug with event_want_debug_log in doveadm-auth::auth_...
Sergey Kitov [Tue, 20 Mar 2018 07:05:26 +0000 (09:05 +0200)] 
global: Replace check for auth_debug with event_want_debug_log in doveadm-auth::auth_connected()

These functions will create event with "auth" category and unref it in
the end.

7 years agoglobal: Replace "if(auth_debug){i_debug(...)}" with e_debug(event, ...)
Sergey Kitov [Mon, 19 Mar 2018 14:10:49 +0000 (16:10 +0200)] 
global: Replace "if(auth_debug){i_debug(...)}" with e_debug(event, ...)

event is one of: global auth::auth_event,
auth_client_connection->event, auth_request->event,
login-common::event_auth. These event have category "auth".

7 years agoglobal: Remove unnecessary checks for mail_debug and auth_request->debug
Sergey Kitov [Mon, 19 Mar 2018 12:50:31 +0000 (14:50 +0200)] 
global: Remove unnecessary checks for mail_debug and auth_request->debug

These checks are performed before calling auth_request_log_debug() and
push_notification_driver_debug(), while the same checks are performed
inside of these functions, and they return without doing anything.

7 years agoauth: Add event with category "auth" to struct auth_request.
Sergey Kitov [Mon, 19 Mar 2018 11:53:33 +0000 (13:53 +0200)] 
auth: Add event with category "auth" to struct auth_request.

7 years agoauth: Add event with category "auth" to struct auth_client_connection.
Sergey Kitov [Mon, 19 Mar 2018 10:16:23 +0000 (12:16 +0200)] 
auth: Add event with category "auth" to struct auth_client_connection.

7 years agologin-common: Add global event_auth with "auth" category.
Sergey Kitov [Mon, 19 Mar 2018 09:44:59 +0000 (11:44 +0200)] 
login-common: Add global event_auth with "auth" category.

7 years agolib: Add event_want_debug and event_want_debug_log macros
Sergey Kitov [Mon, 19 Mar 2018 09:20:58 +0000 (11:20 +0200)] 
lib: Add event_want_debug and event_want_debug_log macros

7 years agoauth: Add global auth_event with category "auth".
Sergey Kitov [Mon, 19 Mar 2018 09:14:22 +0000 (11:14 +0200)] 
auth: Add global auth_event with category "auth".

7 years agopush-notification: Add SSL support for OX driver
Michael Slusarz [Fri, 25 May 2018 03:43:42 +0000 (21:43 -0600)] 
push-notification: Add SSL support for OX driver

7 years agoconfig: generation of clean config should copy sensitive data
Michael M Slusarz [Tue, 31 Jul 2018 22:32:48 +0000 (16:32 -0600)] 
config: generation of clean config should copy sensitive data

Add -P parameter to the CLI warning doveconf example

7 years agolib: bits - macros to simplify expressions when using -Wstrict-bool
Phil Carmody [Fri, 11 May 2018 06:19:21 +0000 (09:19 +0300)] 
lib: bits - macros to simplify expressions when using -Wstrict-bool

To be strict-bool compliant, your expressions need to be a bit verbose,
these might simplify things.

There are presently over 400 instances matching HAS_NO_BITS(), and nearly
1300 instances matching HAS_ANY_BITS(), so it's a very common pattern.

Signed-off-by: Phil Carmody <phil@dovecot.fi>
7 years agolib-storage: Harden check for imapdir list name
Josef 'Jeff' Sipek [Fri, 11 May 2018 14:53:46 +0000 (10:53 -0400)] 
lib-storage: Harden check for imapdir list name

Comparing char pointers to determine string equality is asking for trouble.
Use strcmp() instead.

7 years agoauth: Use PRIuUOFF_t to print process VSZ limit
Josef 'Jeff' Sipek [Fri, 11 May 2018 14:41:01 +0000 (10:41 -0400)] 
auth: Use PRIuUOFF_t to print process VSZ limit

This doesn't change the behavior, but it makes it more obviously correct.

7 years agoauth: Avoid comparison of ints of different signs on FreeBSD
Josef 'Jeff' Sipek [Fri, 11 May 2018 14:38:32 +0000 (10:38 -0400)] 
auth: Avoid comparison of ints of different signs on FreeBSD

For legacy reasons, rlim_t on FreeBSD is defined as int64_t.

7 years agolib-storage: Return correct root path for PATH_TYPE_ALT_MAILBOX
Josef 'Jeff' Sipek [Fri, 11 May 2018 14:50:16 +0000 (10:50 -0400)] 
lib-storage: Return correct root path for PATH_TYPE_ALT_MAILBOX

mailbox_list_set_get_root_path(..., MAILBOX_LIST_PATH_TYPE_ALT_MAILBOX, ...)
must return one of three values:

1. if there is no alt storage, return NULL
2. if there is alt storage and MAILBOXDIR is set,
return ${alt_dir}/${mailbox_dir_name}
3. if there is alt storage but MAILBOXDIR is not set, return ${alt_dir}

Case number 3 was broken, and it mistakenly returned ${root_dir} - in other
words, it behaved as MAILBOX_LIST_PATH_TYPE_MAILBOX.

This correction changes the behavior, but this shouldn't cause
incompatibilities since:

1. it affects only storages that support alternate storage
2. it affects only configurations that use empty MAILBOXDIR

The only storage that supports alternate storage setting is dbox but dbox
defaults to MAILBOXDIR=mailboxes.  Additionally, it appears to be impossible
to override it to an empty string (setting it to an empty strings causes
dbox to override it with the default - "mailboxes").  Therefore, nobody
should be affected by this change.

7 years agodoveadm stats dump: Add stddev field
Timo Sirainen [Tue, 24 Apr 2018 14:22:00 +0000 (17:22 +0300)] 
doveadm stats dump: Add stddev field

Include it in default output as well.

7 years agodoveadm stats dump: Add -f <fields> parameter
Timo Sirainen [Tue, 24 Apr 2018 13:29:49 +0000 (16:29 +0300)] 
doveadm stats dump: Add -f <fields> parameter

This allows specifying which fields are wanted to be dumped.

7 years agostats: Support dumping any given percentile
Timo Sirainen [Tue, 24 Apr 2018 14:32:21 +0000 (17:32 +0300)] 
stats: Support dumping any given percentile

7 years agostats: Support dumping variance
Timo Sirainen [Tue, 24 Apr 2018 06:52:32 +0000 (09:52 +0300)] 
stats: Support dumping variance

7 years agolib: Add test for rng
Aki Tuomi [Sun, 25 Mar 2018 16:54:48 +0000 (19:54 +0300)] 
lib: Add test for rng

7 years agolib: stats-dist - Add accessor for samples
Aki Tuomi [Sun, 25 Mar 2018 18:04:49 +0000 (21:04 +0300)] 
lib: stats-dist - Add accessor for samples

7 years agolib: stats-dist - Add variance
Aki Tuomi [Sun, 25 Mar 2018 16:59:15 +0000 (19:59 +0300)] 
lib: stats-dist - Add variance

7 years agolib: rand - Fix potential modulo bias
Aki Tuomi [Sun, 25 Mar 2018 16:49:13 +0000 (19:49 +0300)] 
lib: rand - Fix potential modulo bias

7 years agoexample-config: Add log_debug and log_core_filter
Timo Sirainen [Thu, 26 Apr 2018 18:35:15 +0000 (21:35 +0300)] 
example-config: Add log_debug and log_core_filter

7 years agolib-master: Add improved log filter parsing
Timo Sirainen [Mon, 16 Apr 2018 12:00:27 +0000 (15:00 +0300)] 
lib-master: Add improved log filter parsing

It now supports parenthesis to perform ANDs within a query. For example:
"(ruleA1 ruleA2) ruleB (ruleC1 ruleC2 ruleC3)" has 3 ORed rules.

Rules can contain:

 - event:<name>
 - source:<filename>[:<line number>]
 - field:<key>=<value> can be used multiple times
 - cat[egory]:<value> can be used multiple times

For example:

event:http_request_finished (cat:error cat:storage)

This matches either the "http_request_finished" named event, or
alternatively any error event that belongs to "storage" category.

7 years agolib: Event filter - Source line number 0 now means "any"
Timo Sirainen [Thu, 26 Apr 2018 18:29:23 +0000 (21:29 +0300)] 
lib: Event filter - Source line number 0 now means "any"

7 years agolib: Event filter - Support wildcards in event names
Timo Sirainen [Thu, 26 Apr 2018 18:21:40 +0000 (21:21 +0300)] 
lib: Event filter - Support wildcards in event names

This allows for example log_debug=event:*

7 years agolib-master: Move const char *error declaration inside ifdef HAVE_SSL
Martti Rannanjärvi [Thu, 24 May 2018 11:55:59 +0000 (14:55 +0300)] 
lib-master: Move const char *error declaration inside ifdef HAVE_SSL

This is so you can compile dovecot without ssl.

7 years agolib-master: Add own boolean for SSL module loading
Aki Tuomi [Wed, 11 Apr 2018 12:27:42 +0000 (15:27 +0300)] 
lib-master: Add own boolean for SSL module loading

want_ssl_settings isn't reliable enough.

7 years agolib-master: Do not attempt to load SSL module if no SSL support is compiled in
Aki Tuomi [Tue, 10 Apr 2018 13:00:38 +0000 (16:00 +0300)] 
lib-master: Do not attempt to load SSL module if no SSL support is compiled in

Fixes imap-login: Error: imap-login(init): Fatal: Cannot load SSL module: SSL support not compiled in

Broken in 754896551f0422cda5d78500b26700eec5343c5b

Found by bjornar

7 years agolib-http: client: Fix request statistics text to properly report send attempts.
Stephan Bosch [Tue, 27 Feb 2018 09:45:26 +0000 (10:45 +0100)] 
lib-http: client: Fix request statistics text to properly report send attempts.

If the request was first sent in the same ioloop cycle in which the text is
generated, the text would claim it was not sent at all yet.

With this commit the text now explicitly makes the distinction between request
attempts and actual send attempts. The number of attempts is increased at each
retry, while the send attempts are increased each time the request is actually
being sent to a server.

7 years agoconfigure: Add spectre variant 2 mitigations
codarrenvelvindron [Sat, 17 Feb 2018 19:28:48 +0000 (14:28 -0500)] 
configure: Add spectre variant 2 mitigations

--enable-hardening adds -mfunction-return=thunk and -mindirect-branch=thunk
compiler options if supported.

7 years agoimapc: Avoid duplicate FETCH BODY.PEEK[] when mail is already expunged
Timo Sirainen [Thu, 22 Feb 2018 13:55:20 +0000 (15:55 +0200)] 
imapc: Avoid duplicate FETCH BODY.PEEK[] when mail is already expunged

When the first FETCH (e.g. as part of mail_prefetch()) indicated that the
mail is already expunged, there's no need to do it again.

7 years agolib: Fix usec comparison in timeout_update_next
Aki Tuomi [Tue, 13 Feb 2018 07:14:37 +0000 (09:14 +0200)] 
lib: Fix usec comparison in timeout_update_next

When tv_usec is exactly 1000000, call to kevent() will fail
because tv_sec does not get incremented.

Found by Adrian Gonzalez <adrianglz@globalpc.net>

7 years agolib: Fix ioloop-poll and ioloop-select to work with io_add_istream()
Timo Sirainen [Sun, 20 May 2018 22:42:27 +0000 (01:42 +0300)] 
lib: Fix ioloop-poll and ioloop-select to work with io_add_istream()

7 years agolib-storage: Add mail_storage.event and use it wherever possible
Timo Sirainen [Mon, 16 Apr 2018 12:22:41 +0000 (15:22 +0300)] 
lib-storage: Add mail_storage.event and use it wherever possible

7 years agoauth: Fix assert-crash if auth client sends 0 as ID
Timo Sirainen [Sun, 20 May 2018 18:32:12 +0000 (21:32 +0300)] 
auth: Fix assert-crash if auth client sends 0 as ID

This could be triggered by anyone having (local) write access to the auth
socket.

7 years agolib-imap: Remove content_subtype==NULL checks
Timo Sirainen [Tue, 24 Jul 2018 12:00:19 +0000 (15:00 +0300)] 
lib-imap: Remove content_subtype==NULL checks

This can never happen after the previous commit. This also changes the
BODYSTRUCTURE output for invalid Content-Types, but since they're invalid
anyway it doesn't really matter what the output is.

7 years agolib-mail: If message_part_data.content_type is set, make sure content_subtype isn...
Timo Sirainen [Tue, 24 Jul 2018 11:55:25 +0000 (14:55 +0300)] 
lib-mail: If message_part_data.content_type is set, make sure content_subtype isn't NULL

This fixes a crash in index_mail_find_first_text_mime_part() where snippet
generation assumed that content_subtype isn't NULL.

7 years agolib-storage: Fix bodystructure parsing crash if header is parsed twice
Timo Sirainen [Wed, 25 Jul 2018 10:17:45 +0000 (13:17 +0300)] 
lib-storage: Fix bodystructure parsing crash if header is parsed twice

The second parsing will recreate the parser_ctx, discarding the old parsed
message_part.data for the header. On the second parsing
save_bodystructure_header=FALSE so the message_part.data isn't filled for
the header. Later on the bodystructure parsing assumes the data is set,
and crashes.

This only happened with mail_attachment_detection_options=add-flags-on-save
and Sieve script that first accessed a non-cached header and then used the
"body" extension.

Fixes segfault and also:
Panic: file imap-bodystructure.c: line 116 (part_write_body_multipart): assertion failed: (part->data != NULL)

7 years agolib-mail: Add asserts to message_part_*() to make sure part->data isn't NULL
Timo Sirainen [Wed, 25 Jul 2018 10:17:05 +0000 (13:17 +0300)] 
lib-mail: Add asserts to message_part_*() to make sure part->data isn't NULL

This makes it easier to debug the crashes than just having a segfault.

7 years agolib-ssl-iostream: Enable partial writes and moving buffers
Aki Tuomi [Wed, 20 Jun 2018 05:52:52 +0000 (08:52 +0300)] 
lib-ssl-iostream: Enable partial writes and moving buffers

Dovecot is able to provide same content to SSL_write, and
can also take care of consuming written data from the buffer.

Fixes SSL_write failed:error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry

7 years agoquota-clone: Fix assert-crash at deinit if quota_clone update fails
Timo Sirainen [Tue, 26 Jun 2018 19:33:33 +0000 (22:33 +0300)] 
quota-clone: Fix assert-crash at deinit if quota_clone update fails

The timeout isn't removed on failure, so it crashed with:
Panic: file quota-clone-plugin.c: line 257 (quota_clone_mail_user_deinit_pre): assertion failed: (quser->to_quota_flush == NULL)

7 years agoquota-clone: Send quota clone data to dict asynchronously
Timo Sirainen [Tue, 19 Jun 2018 12:46:41 +0000 (15:46 +0300)] 
quota-clone: Send quota clone data to dict asynchronously

Based on patch by Michael Slusarz

7 years agoquota-clone: Move state tracking to user context
Timo Sirainen [Tue, 19 Jun 2018 12:00:02 +0000 (15:00 +0300)] 
quota-clone: Move state tracking to user context

This way there's no need to do multiple flushes when e.g. multiple
mailboxes change.

The flush had to be removed from close(), because the code path recurses:

 * mailbox_transaction_commit() when mail is saved
 * quota_count() starts counting the quota, which opens and closes mailbox
 * quota_clone_mailbox_close() attempts to flush quota, which again recurses
into quota_count(), which returns 0 for the quota value.

Based on patch by Michael Slusarz

7 years agoquota: Add quota_root_iter_init_user()
Timo Sirainen [Tue, 19 Jun 2018 11:12:45 +0000 (14:12 +0300)] 
quota: Add quota_root_iter_init_user()

7 years agoquota-clone: Fix CONTEXT_REQUIRE use
Aki Tuomi [Mon, 28 May 2018 09:57:03 +0000 (12:57 +0300)] 
quota-clone: Fix CONTEXT_REQUIRE use

Fixes Panic: Module context quota_clone_user_module missing

Broken in 7f7e7c16d956de8e92376a0633ca6e4cb85e8d84

7 years agovirtual: Clamp backend uids to available uids in virtual_get_virtual_uids
Aki Tuomi [Mon, 25 Jun 2018 10:13:43 +0000 (13:13 +0300)] 
virtual: Clamp backend uids to available uids in virtual_get_virtual_uids

7 years agoacl: Fix return value of acl_attribute_get_acl
Aki Tuomi [Thu, 24 May 2018 12:48:58 +0000 (12:48 +0000)] 
acl: Fix return value of acl_attribute_get_acl

If matching acl entry is not found, it must return 0
and not 1 because it did not find anything.

Fixes dsync: Panic: file mailbox-attribute.c: line 362 (mailbox_attribute_get_stream): assertion failed: (value_r->value != NULL || value_r->value_stream != NULL)

Broken in 37c72fa0cd3f1d74d79b64afb3fb6da5ffd4fe3a

Found by @dl8bh

7 years agoman: doveadm-search-query.7 - Add sequence-set and update UID
Timo Sirainen [Tue, 29 May 2018 21:38:45 +0000 (00:38 +0300)] 
man: doveadm-search-query.7 - Add sequence-set and update UID

7 years agolast-login: Remove superfluous semicolon
Michael Slusarz [Mon, 16 Apr 2018 16:38:21 +0000 (10:38 -0600)] 
last-login: Remove superfluous semicolon

7 years agolast-login: Username is already output as part of log prefix
Michael Slusarz [Mon, 16 Apr 2018 16:37:32 +0000 (10:37 -0600)] 
last-login: Username is already output as part of log prefix

7 years agodirector: Make sure host's last_updown_change never shrinks.
Timo Sirainen [Sun, 20 May 2018 15:20:47 +0000 (18:20 +0300)] 
director: Make sure host's last_updown_change never shrinks.

Otherwise the ring might get into a loop where two HOST updates keep
fighting each others. This could probably happen if one update comes at
"desynced" state and other one in non-desynced state.

I'm not entirely sure if this is fixing such a loop or not, but it at least
shouldn't hurt.

7 years agolib: event-filter - Increase initial allocation
Aki Tuomi [Mon, 25 Jun 2018 11:04:31 +0000 (14:04 +0300)] 
lib: event-filter - Increase initial allocation

Reduces reallocations on startup.

7 years agolib-http: Add/fix default value comments in http_client_settings
Timo Sirainen [Tue, 26 Jun 2018 10:45:54 +0000 (13:45 +0300)] 
lib-http: Add/fix default value comments in http_client_settings

7 years agolib-http: server: Properly handle corrupt payload while finishing a request.
Stephan Bosch [Tue, 20 Mar 2018 17:14:39 +0000 (18:14 +0100)] 
lib-http: server: Properly handle corrupt payload while finishing a request.

The HTTP_REQUEST_PARSE_ERROR_BROKEN_REQUEST was not handled, causing an
assertion panic. This situation occurred when the chunked transfer encoding was
invalid.