]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
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.
Timo Sirainen [Tue, 14 Jun 2022 11:10:24 +0000 (14:10 +0300)]
lib-lua: Add DLUA_TABLE_STRING_SELF()
Timo Sirainen [Tue, 14 Jun 2022 10:46:43 +0000 (13:46 +0300)]
lib-dict: dict-lua - Export dovecot.dict.ITERATE_FLAG_*
Timo Sirainen [Tue, 14 Jun 2022 11:00:16 +0000 (14:00 +0300)]
lib-lua: Add DLUA_TABLE_ENUM_NOPREFIX()
Timo Sirainen [Tue, 14 Jun 2022 09:47:11 +0000 (12:47 +0300)]
lib-dict-backend: dict-sql - Implement dict_expire_scan()
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.
Timo Sirainen [Tue, 14 Jun 2022 09:25:39 +0000 (12:25 +0300)]
lib-dict: Add dict_expire_scan()
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
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.
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
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()
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.
Timo Sirainen [Thu, 19 May 2022 14:22:33 +0000 (16:22 +0200)]
dict-redis: Add support for dict_op_settings.expire_secs
Timo Sirainen [Wed, 15 Jun 2022 08:39:39 +0000 (11:39 +0300)]
dict-redis: Use %zu printf format for strlen()
Timo Sirainen [Tue, 31 May 2022 11:30:42 +0000 (14:30 +0300)]
dict-client, dict: Add support for dict_op_settings.expire_secs
Timo Sirainen [Thu, 19 May 2022 14:55:21 +0000 (16:55 +0200)]
doveadm dict set: Add -e <expire-secs> parameter
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.
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
Timo Sirainen [Wed, 15 Jun 2022 08:05:05 +0000 (11:05 +0300)]
lib-dict: Split off dict_transaction_rollback_run()
Timo Sirainen [Tue, 14 Jun 2022 15:45:26 +0000 (18:45 +0300)]
lib-dict*: Use named initializer for dict_vfuncs
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
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
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
Aki Tuomi [Fri, 3 Jun 2022 11:37:20 +0000 (14:37 +0300)]
lib-dcrypt: Remove gnutls
It never worked
Aki Tuomi [Fri, 3 Jun 2022 11:36:53 +0000 (14:36 +0300)]
global: Make OpenSSL v1.0.2 mandatory requirement
Aki Tuomi [Fri, 3 Jun 2022 11:36:22 +0000 (14:36 +0300)]
m4: ssl.m4 - Modernize m4 syntax
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.
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
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.
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
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
Marco Bettini [Wed, 8 Jun 2022 10:17:25 +0000 (10:17 +0000)]
indexer: Remove stray whitespaces
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.
Marco Bettini [Tue, 31 May 2022 14:22:36 +0000 (14:22 +0000)]
lib-storage: Add "service" field to user event
Marco Bettini [Mon, 6 Jun 2022 10:22:38 +0000 (12:22 +0200)]
lib-storage: Override service->name with input->service when available
Marco Bettini [Mon, 6 Jun 2022 08:04:50 +0000 (08:04 +0000)]
lib-storage: mail_storage_service_lookup_real() - Reformat very long line
Marco Bettini [Wed, 1 Jun 2022 10:24:31 +0000 (10:24 +0000)]
lib-storage: mail_storage_service_read_settings() - Fix typo in comment
Marco Bettini [Tue, 31 May 2022 14:21:43 +0000 (14:21 +0000)]
lib-storage: Remove stray whitespaces
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
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.
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.
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
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 .
Marco Bettini [Thu, 19 May 2022 15:24:59 +0000 (15:24 +0000)]
plugins: Use container_of() in doveadm functions 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
Marco Bettini [Wed, 18 May 2022 13:05:27 +0000 (13:05 +0000)]
doveadm: Remove doveadm_mail_cmd_context::full_args
Marco Bettini [Wed, 18 May 2022 11:20:59 +0000 (11:20 +0000)]
doveadm: Refactor doveadm_cmd_ver2_to_mail_cmd_wrapper()
Marco Bettini [Tue, 17 May 2022 09:55:34 +0000 (09:55 +0000)]
doveadm: Remove doveadm_mail_cmd_vfuncs::parse_arg
Marco Bettini [Fri, 6 May 2022 15:38:25 +0000 (15:38 +0000)]
doveadm: Remove doveadm_mail_cmd_context::getopt_args
Marco Bettini [Fri, 6 May 2022 15:24:31 +0000 (15:24 +0000)]
doveadm: Remove doveadm_mail_cmd_context::args
Marco Bettini [Fri, 6 May 2022 15:02:25 +0000 (15:02 +0000)]
doveadm: Drop parameter args[] from doveadm_mail_cmd_vfuncs::init
Marco Bettini [Wed, 4 May 2022 13:28:24 +0000 (13:28 +0000)]
doveadm: Remove ::parse_arg() and ::args from doveadm-mail.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
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
Marco Bettini [Wed, 4 May 2022 10:47:34 +0000 (10:47 +0000)]
plugins: Remove ::parse_arg() and ::args from doveadm handlers
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
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
Marco Bettini [Fri, 22 Apr 2022 13:16:26 +0000 (13:16 +0000)]
doveadm: Add flag CMD_PARAM_FLAG_KEY_VALUE (named positional parameters)
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()
Marco Bettini [Fri, 22 Apr 2022 13:03:51 +0000 (13:03 +0000)]
doveadm: Add doveadm_cmd_param_uint64/uint32/int32()
Marco Bettini [Fri, 22 Apr 2022 10:18:33 +0000 (10:18 +0000)]
doveadm: Add doveadm_cmd_param_flag()
Marco Bettini [Fri, 22 Apr 2022 12:53:04 +0000 (12:53 +0000)]
doveadm: doveadm_fill_param() - Report error on invalid parameters
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.
Marco Bettini [Fri, 22 Apr 2022 10:09:21 +0000 (10:09 +0000)]
doveadm: Split doveadm-cmd into doveadm-cmd-parse
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
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
Marco Bettini [Fri, 27 May 2022 13:54:36 +0000 (13:54 +0000)]
lib: Add empty_str_array constant
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.
Marco Bettini [Wed, 20 Apr 2022 14:25:06 +0000 (14:25 +0000)]
doveadm: Remove trailing whitespaces
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.
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.
Timo Sirainen [Wed, 1 Jun 2022 08:04:09 +0000 (11:04 +0300)]
doveadm: Add doveadm_cmd_context.pool
Timo Sirainen [Wed, 1 Jun 2022 08:03:06 +0000 (11:03 +0300)]
doveadm: Split off client_handle_command_ctx()
Marco Bettini [Tue, 31 May 2022 09:52:11 +0000 (09:52 +0000)]
acl: acl_backend_vfile_read() - Drop unused param is_dir_r
Marco Bettini [Mon, 30 May 2022 14:48:50 +0000 (14:48 +0000)]
acl: acl_backend_vfile_read_with_retry() - 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
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
Marco Bettini [Mon, 30 May 2022 14:53:16 +0000 (14:53 +0000)]
acl: acl_backend_vfile_refresh() - Remove stray spaces
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.
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.
Aki Tuomi [Thu, 24 Feb 2022 08:58:08 +0000 (10:58 +0200)]
util: Remove maildirlock
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.
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.
Martti Rannanjärvi [Thu, 19 May 2022 09:50:22 +0000 (12:50 +0300)]
doc: Don't trigger documentation rebuild in make dist tarball
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.
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.
Martti Rannanjärvi [Thu, 19 May 2022 05:32:47 +0000 (08:32 +0300)]
configure.ac: Use correct path in flex and bison checks
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)
Karl Fleischmann [Wed, 18 May 2022 08:27:23 +0000 (10:27 +0200)]
doc: Remove build artifacts when bundling the distribution package
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.
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.
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.
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.
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
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.
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.
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
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
Timo Sirainen [Thu, 5 May 2022 17:27:33 +0000 (20:27 +0300)]
lib-doveadm: Fix hang if read() fails from cmd_input
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