]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
3 years agodsync: Fix dsync_features=no-header-hashes to match UIDs
Timo Sirainen [Thu, 16 Jun 2022 07:55:42 +0000 (10:55 +0300)] 
dsync: Fix dsync_features=no-header-hashes to match UIDs

Mails were previously assumed to be the same, even if their UIDs didn't
match. This caused the sync to misbehave in some situations.

3 years agolib-lua: Add DLUA_TABLE_STRING_SELF()
Timo Sirainen [Tue, 14 Jun 2022 11:10:24 +0000 (14:10 +0300)] 
lib-lua: Add DLUA_TABLE_STRING_SELF()

3 years agolib-dict: dict-lua - Export dovecot.dict.ITERATE_FLAG_*
Timo Sirainen [Tue, 14 Jun 2022 10:46:43 +0000 (13:46 +0300)] 
lib-dict: dict-lua - Export dovecot.dict.ITERATE_FLAG_*

3 years agolib-lua: Add DLUA_TABLE_ENUM_NOPREFIX()
Timo Sirainen [Tue, 14 Jun 2022 11:00:16 +0000 (14:00 +0300)] 
lib-lua: Add DLUA_TABLE_ENUM_NOPREFIX()

3 years agolib-dict-backend: dict-sql - Implement dict_expire_scan()
Timo Sirainen [Tue, 14 Jun 2022 09:47:11 +0000 (12:47 +0300)] 
lib-dict-backend: dict-sql - Implement dict_expire_scan()

3 years agodict: Add dict-expire service
Timo Sirainen [Tue, 14 Jun 2022 09:25:45 +0000 (12:25 +0300)] 
dict: Add dict-expire service

If enabled with service dict-expire { process_min_avail=1 }, this service
will go through all configured dicts and delete all expired fields every
30 seconds.

3 years agolib-dict: Add dict_expire_scan()
Timo Sirainen [Tue, 14 Jun 2022 09:25:39 +0000 (12:25 +0300)] 
lib-dict: Add dict_expire_scan()

3 years agodict-client: Fix potential crash if iteration fails to send the command
Timo Sirainen [Wed, 15 Jun 2022 12:48:18 +0000 (15:48 +0300)] 
dict-client: Fix potential crash if iteration fails to send the command

3 years agolib-lua: Fix atpanic error message with Lua threads
Timo Sirainen [Tue, 7 Jun 2022 14:33:23 +0000 (17:33 +0300)] 
lib-lua: Fix atpanic error message with Lua threads

The function used the main thread's state for finding the error
instead of the thread-specific state.

3 years agolmtp: proxy - Add "dest_host" and "dest_ip" to lmtp recipient event
Timo Sirainen [Tue, 7 Jun 2022 14:07:45 +0000 (17:07 +0300)] 
lmtp: proxy - Add "dest_host" and "dest_ip" to lmtp recipient event

3 years agolib-dict: dict-lua - Support expire_secs parameter in dict_transaction_begin()
Timo Sirainen [Tue, 31 May 2022 12:23:06 +0000 (15:23 +0300)] 
lib-dict: dict-lua - Support expire_secs parameter in dict_transaction_begin()

3 years agodict-sql: Add support for dict_op_settings.expire_secs
Timo Sirainen [Thu, 19 May 2022 14:42:23 +0000 (16:42 +0200)] 
dict-sql: Add support for dict_op_settings.expire_secs

Add a new map { expire_field } to specify the expiration timestamp field in
sql table. This field is automatically updated when
dict_op_settings.expire_secs is used. Also when lookup/iteration sees an
expired row, it's skipped over.

3 years agodict-redis: Add support for dict_op_settings.expire_secs
Timo Sirainen [Thu, 19 May 2022 14:22:33 +0000 (16:22 +0200)] 
dict-redis: Add support for dict_op_settings.expire_secs

3 years agodict-redis: Use %zu printf format for strlen()
Timo Sirainen [Wed, 15 Jun 2022 08:39:39 +0000 (11:39 +0300)] 
dict-redis: Use %zu printf format for strlen()

3 years agodict-client, dict: Add support for dict_op_settings.expire_secs
Timo Sirainen [Tue, 31 May 2022 11:30:42 +0000 (14:30 +0300)] 
dict-client, dict: Add support for dict_op_settings.expire_secs

3 years agodoveadm dict set: Add -e <expire-secs> parameter
Timo Sirainen [Thu, 19 May 2022 14:55:21 +0000 (16:55 +0200)] 
doveadm dict set: Add -e <expire-secs> parameter

3 years agolib-dict: Add dict_op_settings.expire_secs
Timo Sirainen [Thu, 19 May 2022 14:16:15 +0000 (16:16 +0200)] 
lib-dict: Add dict_op_settings.expire_secs

This may be implemented by dict drivers to provide built-in expiration.

3 years agolib-dict: Support early rollback if dict_transaction_context.error is set
Timo Sirainen [Wed, 15 Jun 2022 08:08:41 +0000 (11:08 +0300)] 
lib-dict: Support early rollback if dict_transaction_context.error is set

3 years agolib-dict: Split off dict_transaction_rollback_run()
Timo Sirainen [Wed, 15 Jun 2022 08:05:05 +0000 (11:05 +0300)] 
lib-dict: Split off dict_transaction_rollback_run()

3 years agolib-dict*: Use named initializer for dict_vfuncs
Timo Sirainen [Tue, 14 Jun 2022 15:45:26 +0000 (18:45 +0300)] 
lib-dict*: Use named initializer for dict_vfuncs

3 years agolib-master: Use ssl_require_crl setting only for server-side SSL settings
Timo Sirainen [Tue, 17 May 2022 10:31:40 +0000 (12:31 +0200)] 
lib-master: Use ssl_require_crl setting only for server-side SSL settings

We don't currently properly support checking CRLs when acting as SSL client.
The CRL would have to be stored as part of the CAs, which isn't commonly
done. This bug has been in the code ever since it was added in
30c5c1fc3608ae575f11960281d3e338b6bf7bc8, but it became more noticeable
with recent changes that started using lib-master for getting all SSL
client settings, e.g. 1e5324b5805bf7299cd8196f7b659fe935f027bd

3 years agoconfig: old-set-parser - Handle CONFIG_LINE_TYPE_KEYFILE as well
Aki Tuomi [Tue, 7 Jun 2022 10:48:21 +0000 (13:48 +0300)] 
config: old-set-parser - Handle CONFIG_LINE_TYPE_KEYFILE as well

This covers settings with value =< /file.

Forgotten in ff6c0588196da567197da323865821cd51af8f90

3 years agoglobal: Remove pre OpenSSL v1.0.2 workarounds
Aki Tuomi [Mon, 13 Jun 2022 09:25:15 +0000 (12:25 +0300)] 
global: Remove pre OpenSSL v1.0.2 workarounds

These are also present in libressl 2.4.2

3 years agolib-dcrypt: Remove gnutls
Aki Tuomi [Fri, 3 Jun 2022 11:37:20 +0000 (14:37 +0300)] 
lib-dcrypt: Remove gnutls

It never worked

3 years agoglobal: Make OpenSSL v1.0.2 mandatory requirement
Aki Tuomi [Fri, 3 Jun 2022 11:36:53 +0000 (14:36 +0300)] 
global: Make OpenSSL v1.0.2 mandatory requirement

3 years agom4: ssl.m4 - Modernize m4 syntax
Aki Tuomi [Fri, 3 Jun 2022 11:36:22 +0000 (14:36 +0300)] 
m4: ssl.m4 - Modernize m4 syntax

3 years agolib-auth: Remove auth_client_cache_flush_started|finished event
Aki Tuomi [Thu, 2 Jun 2022 13:00:06 +0000 (16:00 +0300)] 
lib-auth: Remove auth_client_cache_flush_started|finished event

This was being sent by just doveadm which isn't very useful.

3 years agodoveadm deduplicate: Allocate memory properly for keys in hash table
Timo Sirainen [Mon, 13 Jun 2022 06:56:13 +0000 (09:56 +0300)] 
doveadm deduplicate: Allocate memory properly for keys in hash table

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

3 years agoindexer: indexer_queue_append_request() - Reorganize the code for better readability
Marco Bettini [Wed, 8 Jun 2022 10:05:09 +0000 (10:05 +0000)] 
indexer: indexer_queue_append_request() - Reorganize the code for better readability

Isolate the section handling duplicated entries from the part creating creating new ones.

3 years agoindexer: indexer_queue_deinit() - Assert queue->users last
Marco Bettini [Wed, 8 Jun 2022 10:02:52 +0000 (10:02 +0000)] 
indexer: indexer_queue_deinit() - Assert queue->users last

In case of panic, this allows to discriminate if the mismatch is in the count
of requests between queue and queue->requests count or between queue->requests
and queue->users

3 years agoindexer: indexer_queue_append_request() - Fix repeated insertions in queue->users...
Marco Bettini [Wed, 8 Jun 2022 09:56:37 +0000 (09:56 +0000)] 
indexer: indexer_queue_append_request() - Fix repeated insertions in queue->users indexer_queue(s)

The repeated insertion happens when invoking for an existing entry and
append=FALSE. At that point, the section dealing with queue->users is
erroneously executed. This will cause later a panic in indexer_queue_deinit()
due to the extra entries remaining in the table

3 years agoindexer: Remove stray whitespaces
Marco Bettini [Wed, 8 Jun 2022 10:17:25 +0000 (10:17 +0000)] 
indexer: Remove stray whitespaces

3 years agolib-fs: Remove assert for !file->writing_stream from fs_delete.
sergey.kitov [Fri, 6 May 2022 08:19:02 +0000 (11:19 +0300)] 
lib-fs: Remove assert for !file->writing_stream from fs_delete.

The assert is not particularly useful and disturbs obox uncertain
write objects remove attempts.

3 years agolib-storage: Add "service" field to user event
Marco Bettini [Tue, 31 May 2022 14:22:36 +0000 (14:22 +0000)] 
lib-storage: Add "service" field to user event

3 years agolib-storage: Override service->name with input->service when available
Marco Bettini [Mon, 6 Jun 2022 10:22:38 +0000 (12:22 +0200)] 
lib-storage: Override service->name with input->service when available

3 years agolib-storage: mail_storage_service_lookup_real() - Reformat very long line
Marco Bettini [Mon, 6 Jun 2022 08:04:50 +0000 (08:04 +0000)] 
lib-storage: mail_storage_service_lookup_real() - Reformat very long line

3 years agolib-storage: mail_storage_service_read_settings() - Fix typo in comment
Marco Bettini [Wed, 1 Jun 2022 10:24:31 +0000 (10:24 +0000)] 
lib-storage: mail_storage_service_read_settings() - Fix typo in comment

3 years agolib-storage: Remove stray whitespaces
Marco Bettini [Tue, 31 May 2022 14:21:43 +0000 (14:21 +0000)] 
lib-storage: Remove stray whitespaces

3 years agolib: test-file-cache - Use RLIMIT_AS only if it's available
Aki Tuomi [Fri, 3 Jun 2022 08:43:08 +0000 (11:43 +0300)] 
lib: test-file-cache - Use RLIMIT_AS only if it's available

3 years agodoveadm-cmd: Use PRId64 instead of %ld
Aki Tuomi [Fri, 3 Jun 2022 08:33:42 +0000 (11:33 +0300)] 
doveadm-cmd: Use PRId64 instead of %ld

int64_t is not guaranteed to be long.

3 years agodoc: Use am__untar to get correct invocation across systems
Aki Tuomi [Fri, 3 Jun 2022 07:10:57 +0000 (10:10 +0300)] 
doc: Use am__untar to get correct invocation across systems

Current one does not work always.

3 years agolib: ioloop-kqueue - Include time-util.h
Aki Tuomi [Fri, 4 Feb 2022 07:33:34 +0000 (09:33 +0200)] 
lib: ioloop-kqueue - Include time-util.h

Needed to compile on MacOS

3 years agoglobal: Use ioloop_time32 more when ioloop_time is used as uint32_t
Martti Rannanjärvi [Fri, 3 Jun 2022 01:05:26 +0000 (04:05 +0300)] 
global: Use ioloop_time32 more when ioloop_time is used as uint32_t

These were missing from 138bee2f638a53415a1729b6a9476eb342b40831.

3 years agoplugins: Use container_of() in doveadm functions instead of hard casts
Marco Bettini [Thu, 19 May 2022 15:24:59 +0000 (15:24 +0000)] 
plugins: Use container_of() in doveadm functions instead of hard casts

3 years agodoveadm: Use container_of() instead of hard casts
Marco Bettini [Thu, 19 May 2022 15:24:37 +0000 (15:24 +0000)] 
doveadm: Use container_of() instead of hard casts

3 years agodoveadm: Remove doveadm_mail_cmd_context::full_args
Marco Bettini [Wed, 18 May 2022 13:05:27 +0000 (13:05 +0000)] 
doveadm: Remove doveadm_mail_cmd_context::full_args

3 years agodoveadm: Refactor doveadm_cmd_ver2_to_mail_cmd_wrapper()
Marco Bettini [Wed, 18 May 2022 11:20:59 +0000 (11:20 +0000)] 
doveadm: Refactor doveadm_cmd_ver2_to_mail_cmd_wrapper()

3 years agodoveadm: Remove doveadm_mail_cmd_vfuncs::parse_arg
Marco Bettini [Tue, 17 May 2022 09:55:34 +0000 (09:55 +0000)] 
doveadm: Remove doveadm_mail_cmd_vfuncs::parse_arg

3 years agodoveadm: Remove doveadm_mail_cmd_context::getopt_args
Marco Bettini [Fri, 6 May 2022 15:38:25 +0000 (15:38 +0000)] 
doveadm: Remove doveadm_mail_cmd_context::getopt_args

3 years agodoveadm: Remove doveadm_mail_cmd_context::args
Marco Bettini [Fri, 6 May 2022 15:24:31 +0000 (15:24 +0000)] 
doveadm: Remove doveadm_mail_cmd_context::args

3 years agodoveadm: Drop parameter args[] from doveadm_mail_cmd_vfuncs::init
Marco Bettini [Fri, 6 May 2022 15:02:25 +0000 (15:02 +0000)] 
doveadm: Drop parameter args[] from doveadm_mail_cmd_vfuncs::init

3 years agodoveadm: Remove ::parse_arg() and ::args from doveadm-mail.c handlers
Marco Bettini [Wed, 4 May 2022 13:28:24 +0000 (13:28 +0000)] 
doveadm: Remove ::parse_arg() and ::args from doveadm-mail.c handlers

3 years agodoveadm: Remove ::parse_arg() and ::args from doveadm-dsync.c handlers
Marco Bettini [Fri, 29 Apr 2022 14:43:06 +0000 (14:43 +0000)] 
doveadm: Remove ::parse_arg() and ::args from doveadm-dsync.c handlers

3 years agodoveadm: Remove ::parse_arg() and ::args from most doveadm-mail-*.c files
Marco Bettini [Tue, 19 Apr 2022 16:21:51 +0000 (16:21 +0000)] 
doveadm: Remove ::parse_arg() and ::args from most doveadm-mail-*.c files

3 years agoplugins: Remove ::parse_arg() and ::args from doveadm handlers
Marco Bettini [Wed, 4 May 2022 10:47:34 +0000 (10:47 +0000)] 
plugins: Remove ::parse_arg() and ::args from doveadm handlers

3 years agodoveadm: doveadm_cmd_ver2_to_mail_cmd_wrapper() - Allow v2 args parsing without parse...
Marco Bettini [Fri, 6 May 2022 15:29:38 +0000 (15:29 +0000)] 
doveadm: doveadm_cmd_ver2_to_mail_cmd_wrapper() - Allow v2 args parsing without parse_arg() hook

3 years agodoveadm: Add doveadm_cmd_param_dump() doveadm_cmd_args_dump() debug functions
Marco Bettini [Thu, 28 Apr 2022 08:37:49 +0000 (08:37 +0000)] 
doveadm: Add doveadm_cmd_param_dump() doveadm_cmd_args_dump() debug functions

3 years agodoveadm: Add flag CMD_PARAM_FLAG_KEY_VALUE (named positional parameters)
Marco Bettini [Fri, 22 Apr 2022 13:16:26 +0000 (13:16 +0000)] 
doveadm: Add flag CMD_PARAM_FLAG_KEY_VALUE (named positional parameters)

3 years agodoveadm: Add doveadm_cmd_param_array_append() and doveadm_cmd_param_array_get()
Marco Bettini [Mon, 23 May 2022 09:09:38 +0000 (09:09 +0000)] 
doveadm: Add doveadm_cmd_param_array_append() and doveadm_cmd_param_array_get()

3 years agodoveadm: Add doveadm_cmd_param_uint64/uint32/int32()
Marco Bettini [Fri, 22 Apr 2022 13:03:51 +0000 (13:03 +0000)] 
doveadm: Add doveadm_cmd_param_uint64/uint32/int32()

3 years agodoveadm: Add doveadm_cmd_param_flag()
Marco Bettini [Fri, 22 Apr 2022 10:18:33 +0000 (10:18 +0000)] 
doveadm: Add doveadm_cmd_param_flag()

3 years agodoveadm: doveadm_fill_param() - Report error on invalid parameters
Marco Bettini [Fri, 22 Apr 2022 12:53:04 +0000 (12:53 +0000)] 
doveadm: doveadm_fill_param() - Report error on invalid parameters

3 years agodoveadm: doveadm_cmd_param_*() - Turn type checks into i_assert()s
Marco Bettini [Thu, 28 Apr 2022 15:36:46 +0000 (15:36 +0000)] 
doveadm: doveadm_cmd_param_*() - Turn type checks into i_assert()s

Attempting to get a paramer by name with a type different from the one declared
in the command block is a logic error. The original behaviors turns that in a
"not found", which can be very misleading to diagnose.

3 years agodoveadm: Split doveadm-cmd into doveadm-cmd-parse
Marco Bettini [Fri, 22 Apr 2022 10:09:21 +0000 (10:09 +0000)] 
doveadm: Split doveadm-cmd into doveadm-cmd-parse

3 years agodoveadm: doveadm_cmd_expunge_ver2 - Fix .usage to reflect the actual parsed syntax
Marco Bettini [Mon, 30 May 2022 10:57:15 +0000 (10:57 +0000)] 
doveadm: doveadm_cmd_expunge_ver2 - Fix .usage to reflect the actual parsed syntax

3 years agodoveadm: doveadm_cmd_mailbox_cache_decision - Fix .usage to reflect the actual parsed...
Marco Bettini [Fri, 27 May 2022 14:08:16 +0000 (14:08 +0000)] 
doveadm: doveadm_cmd_mailbox_cache_decision - Fix .usage to reflect the actual parsed syntax

3 years agolib: Add empty_str_array constant
Marco Bettini [Fri, 27 May 2022 13:54:36 +0000 (13:54 +0000)] 
lib: Add empty_str_array constant

3 years agodoveadm: Remove command doveadm batch
Marco Bettini [Thu, 5 May 2022 08:37:25 +0000 (08:37 +0000)] 
doveadm: Remove command doveadm batch

No longer relevant and also in the way for next changes.

3 years agodoveadm: Remove trailing whitespaces
Marco Bettini [Wed, 20 Apr 2022 14:25:06 +0000 (14:25 +0000)] 
doveadm: Remove trailing whitespaces

3 years agodoveadm: Assert-crash if empty referral is attempted to be sent
Timo Sirainen [Wed, 1 Jun 2022 08:06:13 +0000 (11:06 +0300)] 
doveadm: Assert-crash if empty referral is attempted to be sent

This shouldn't happen anymore after allocating referral from the context
pool.

3 years agodoveadm: Allocate doveadm_cmd_context.referral from the context's pool
Timo Sirainen [Wed, 1 Jun 2022 08:05:27 +0000 (11:05 +0300)] 
doveadm: Allocate doveadm_cmd_context.referral from the context's pool

It's not safe to allocate from data stack.

3 years agodoveadm: Add doveadm_cmd_context.pool
Timo Sirainen [Wed, 1 Jun 2022 08:04:09 +0000 (11:04 +0300)] 
doveadm: Add doveadm_cmd_context.pool

3 years agodoveadm: Split off client_handle_command_ctx()
Timo Sirainen [Wed, 1 Jun 2022 08:03:06 +0000 (11:03 +0300)] 
doveadm: Split off client_handle_command_ctx()

3 years agoacl: acl_backend_vfile_read() - Drop unused param is_dir_r
Marco Bettini [Tue, 31 May 2022 09:52:11 +0000 (09:52 +0000)] 
acl: acl_backend_vfile_read() - Drop unused param is_dir_r

3 years agoacl: acl_backend_vfile_read_with_retry() - Drop logic for .DEFAULT
Marco Bettini [Mon, 30 May 2022 14:48:50 +0000 (14:48 +0000)] 
acl: acl_backend_vfile_read_with_retry() - Drop logic for .DEFAULT

3 years agoacl: acl_backend_vfile_refresh() - Drop logic for .DEFAULT
Marco Bettini [Mon, 30 May 2022 14:48:27 +0000 (14:48 +0000)] 
acl: acl_backend_vfile_refresh() - Drop logic for .DEFAULT

3 years agoacl: acl_backend_vfile_read_with_retry() - Drop parameter global always FALSE
Marco Bettini [Mon, 30 May 2022 14:47:06 +0000 (14:47 +0000)] 
acl: acl_backend_vfile_read_with_retry() - Drop parameter global always FALSE

3 years agoacl: acl_backend_vfile_refresh() - Remove stray spaces
Marco Bettini [Mon, 30 May 2022 14:53:16 +0000 (14:53 +0000)] 
acl: acl_backend_vfile_refresh() - Remove stray spaces

3 years agolib-compression: istream-decompress - Copy parent stream name
Timo Sirainen [Tue, 24 May 2022 12:52:26 +0000 (15:52 +0300)] 
lib-compression: istream-decompress - Copy parent stream name

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

3 years agofts-flatcurve: Enforce 1st character to be non-uppercase in terms added to Xapian
Marco Bettini [Fri, 20 May 2022 10:30:35 +0000 (10:30 +0000)] 
fts-flatcurve: Enforce 1st character to be non-uppercase in terms added to Xapian

backported from github xapian issue #27
A Xapian term that begins with a capital letter, like "Jim", is actually
treated by Xapian as the term "im" with the "J" prefix.
Since Xapian interally stores data ignore case, we simply enforce the 1st
letter to non-uppercase to inhibit the prefix processing.

3 years agoutil: Remove maildirlock
Aki Tuomi [Thu, 24 Feb 2022 08:58:08 +0000 (10:58 +0200)] 
util: Remove maildirlock

3 years agostats: stats-service-openmetrics - Always clear the stack before next metric body
Aki Tuomi [Thu, 19 May 2022 09:39:55 +0000 (12:39 +0300)] 
stats: stats-service-openmetrics - Always clear the stack before next metric body

If the attempt of generating output for the previous metric doesn’t completely
consume the stack, the next metric will start with a non-empty stack, which breaks
the metrics output.

3 years agodoveadm: Add dsync_features=no-header-hashes
Timo Sirainen [Thu, 19 May 2022 09:24:23 +0000 (11:24 +0200)] 
doveadm: Add dsync_features=no-header-hashes

When this setting is enabled and one dsync side doesn't support mail GUIDs,
there is no fallback to using header hashes. Instead, dsync assumes that
all mails with identical IMAP UIDs contains the same mail contents. This
can significantly improve dsync performance with some IMAP servers that
don't support caching Date/Message-ID headers.

3 years agodoc: Don't trigger documentation rebuild in make dist tarball
Martti Rannanjärvi [Thu, 19 May 2022 09:50:22 +0000 (12:50 +0300)] 
doc: Don't trigger documentation rebuild in make dist tarball

3 years agoutil: dovecot-sysreport - Add timestamps before/after "ps" output
Timo Sirainen [Mon, 16 May 2022 09:04:10 +0000 (11:04 +0200)] 
util: dovecot-sysreport - Add timestamps before/after "ps" output

Sometimes running "ps" can take a while, so make it clear in the output if
this has happened.

3 years agoutil: dovecot-sysreport - Wait 3 seconds between "ps" outputs
Timo Sirainen [Mon, 16 May 2022 08:52:54 +0000 (10:52 +0200)] 
util: dovecot-sysreport - Wait 3 seconds between "ps" outputs

This allows showing more clearly in ps_output file whether a process is
using 100% CPU.

3 years agoconfigure.ac: Use correct path in flex and bison checks
Martti Rannanjärvi [Thu, 19 May 2022 05:32:47 +0000 (08:32 +0300)] 
configure.ac: Use correct path in flex and bison checks

3 years agoauth: Fix assert-crash in iterating multiple userdbs
Timo Sirainen [Wed, 18 May 2022 08:31:44 +0000 (11:31 +0300)] 
auth: Fix assert-crash in iterating multiple userdbs

Broken by 501e17ba6b448ba3c88338596e0e8f99f0693f79

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

3 years agodoc: Remove build artifacts when bundling the distribution package
Karl Fleischmann [Wed, 18 May 2022 08:27:23 +0000 (10:27 +0200)] 
doc: Remove build artifacts when bundling the distribution package

3 years agodoc: Fix typo for default target
Karl Fleischmann [Tue, 17 May 2022 14:53:37 +0000 (16:53 +0200)] 
doc: Fix typo for default target

Rename the intended default target to the proper name to ensure the html
documentation is built in the default make step. Previously it ran only
when running the install target which yielded files owned by the root
user (if ran with sudo), which in turn couldn't be removed by non-root
users.

3 years agosubmission: Don't log write() errors that fail due to ECONNRESET
Timo Sirainen [Tue, 17 May 2022 07:05:20 +0000 (09:05 +0200)] 
submission: Don't log write() errors that fail due to ECONNRESET

These happen only if client initialization fails.

3 years agoimap: Don't log write() errors that fail due to ECONNRESET
Timo Sirainen [Tue, 17 May 2022 07:03:47 +0000 (09:03 +0200)] 
imap: Don't log write() errors that fail due to ECONNRESET

These happen only before the client is fully initialized.

3 years agolmtp: Allow reauth to return referral
Timo Sirainen [Thu, 5 May 2022 17:37:18 +0000 (20:37 +0300)] 
lmtp: Allow reauth to return referral

Previously reauth was required to do proxying on success. Now it can also
return "nologin" and "host" to do a referral instead.

3 years agolmtp: Add auth_ prefix to lmtp_proxy_recipient.forward_fields
Timo Sirainen [Fri, 6 May 2022 13:09:17 +0000 (16:09 +0300)] 
lmtp: Add auth_ prefix to lmtp_proxy_recipient.forward_fields

This makes it easier to differentiate from lmtp_recipient.forward_fields

3 years agodoveadm: Split incoming and outgoing forward_fields into separate arrays
Timo Sirainen [Fri, 6 May 2022 10:47:41 +0000 (13:47 +0300)] 
doveadm: Split incoming and outgoing forward_fields into separate arrays

The outgoing forward_fields should be sent to outgoing proxy connections,
but not used for reauth lookups.

3 years agodoveadm: Allow reauth to return referral
Timo Sirainen [Thu, 5 May 2022 17:36:08 +0000 (20:36 +0300)] 
doveadm: Allow reauth to return referral

Previously reauth was required to do proxying on success. Now it can also
return "nologin" and "host" to do a referral instead.

3 years agodoveadm: Log an error if referral is used with non-tcp client
Timo Sirainen [Thu, 5 May 2022 17:34:48 +0000 (20:34 +0300)] 
doveadm: Log an error if referral is used with non-tcp client

3 years agolib-auth: auth_proxy_parse_redirect() - Return failure if host is empty
Timo Sirainen [Thu, 5 May 2022 17:30:28 +0000 (20:30 +0300)] 
lib-auth: auth_proxy_parse_redirect() - Return failure if host is empty

3 years agolib-doveadm: Fix hang if read() fails from cmd_input
Timo Sirainen [Thu, 5 May 2022 17:27:33 +0000 (20:27 +0300)] 
lib-doveadm: Fix hang if read() fails from cmd_input

3 years agolib-doveadm: Log cmd_input stream name if read() from it fails
Timo Sirainen [Thu, 5 May 2022 17:27:13 +0000 (20:27 +0300)] 
lib-doveadm: Log cmd_input stream name if read() from it fails