]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Tue, 28 May 2024 23:03:35 +0000 (02:03 +0300)]
lib-dns: dns_lookup_abort() - If client isn't destroyed, delay freeing the lookup
The lookup can't be removed from the linked list until its response has been
received, or the response could become matched against a wrong lookup.
Timo Sirainen [Tue, 28 May 2024 22:57:00 +0000 (01:57 +0300)]
lib-dns: Cleanup code by removing impossible code path
Timo Sirainen [Tue, 28 May 2024 22:33:55 +0000 (01:33 +0300)]
lib-dns: Move dns client cache to its own file
Timo Sirainen [Tue, 28 May 2024 22:30:17 +0000 (01:30 +0300)]
lib-dns: Avoid dereferencing struct dns_lookup in dns_client_cache_*()
Timo Sirainen [Tue, 28 May 2024 22:22:37 +0000 (01:22 +0300)]
lib-dns: Extract caching fields from struct dns_client to dns_client_cache
Timo Sirainen [Tue, 28 May 2024 22:37:14 +0000 (01:37 +0300)]
lib-dns: Remove unnecessary includes and a define
Aki Tuomi [Thu, 23 May 2024 09:05:29 +0000 (12:05 +0300)]
configure: Drop unused DOVECOT_IPV6
Aki Tuomi [Thu, 23 May 2024 07:48:52 +0000 (10:48 +0300)]
auth: Ensure internal failures are failed when doing proxying
Otherwise the user will drop into a local session, which is not
what should happen.
Aki Tuomi [Thu, 23 May 2024 07:30:07 +0000 (10:30 +0300)]
auth: Drop hostip field in auth_fields_remove()
Forgotten in
8be0af2dd41283fdd250b9a0d8fad28bfe80ca85
Aki Tuomi [Thu, 23 May 2024 07:29:40 +0000 (10:29 +0300)]
auth: Check that host and hostip match if they are both IP addresses
Aki Tuomi [Tue, 28 May 2024 11:14:14 +0000 (14:14 +0300)]
login-common: Use temporary failure in client_auth_reply_args
If we cannot parse the arguments, it must be TEMPFAIL, not AUTHFAILED.
Otherwise we get a stuck login process.
Broken in
49b5e7c44f034b1c4341409ffef205042bd46b56
Aki Tuomi [Thu, 23 May 2024 09:03:32 +0000 (12:03 +0300)]
login-common: proxy - Check reply IP address family
Aki Tuomi [Thu, 23 May 2024 07:51:24 +0000 (10:51 +0300)]
login-common: Check that host and hostip match if they are both IP addresses
Aki Tuomi [Wed, 22 May 2024 12:11:12 +0000 (15:11 +0300)]
login-common: Choose next source address with correct address family
When login_source_ips contains both IPv4 and IPv6 addresses,
outgoing connections attempts to use them in respect of family
of destination IPs.
Aki Tuomi [Wed, 22 May 2024 07:32:40 +0000 (10:32 +0300)]
login-common: Fix infinite proxy loop if hostip is used
If host and hostip are set to different IP addresses, loop detection
fails to detect this as loop.
Aki Tuomi [Wed, 22 May 2024 06:38:54 +0000 (09:38 +0300)]
login-common: Remove duplicate logging of remote host
Aki Tuomi [Wed, 22 May 2024 06:35:23 +0000 (09:35 +0300)]
login-common: Log how many seconds host has been down
Aki Tuomi [Mon, 20 May 2024 07:53:11 +0000 (10:53 +0300)]
login-common: Remove unused includes
Aki Tuomi [Mon, 20 May 2024 07:50:34 +0000 (10:50 +0300)]
login-common: Include hostname in log prefix
Aki Tuomi [Thu, 23 May 2024 07:10:18 +0000 (10:10 +0300)]
lib: Use sa_family_t in struct ip_addr
Vincent Kenbeek [Mon, 13 May 2024 12:11:50 +0000 (14:11 +0200)]
configure: Add --enable-pro-build option to configure
Vincent Kenbeek [Mon, 3 Jun 2024 07:46:27 +0000 (09:46 +0200)]
m4: Separate .m4 file for dovecot pro defines
Vincent Kenbeek [Thu, 16 May 2024 12:16:55 +0000 (14:16 +0200)]
imap: Force ID name value when running pro edition
Vincent Kenbeek [Mon, 13 May 2024 12:09:51 +0000 (14:09 +0200)]
imap: Use DOVECOT_NAME instead of PACKAGE_NAME for ID command
Timo Sirainen [Mon, 18 Sep 2023 10:09:01 +0000 (13:09 +0300)]
config: Fix writing delayed errors for filters
The index number was moved elsewhere, it shouldn't be here.
Timo Sirainen [Mon, 27 May 2024 10:10:22 +0000 (13:10 +0300)]
doveadm: Add --no-userdb-lookup parameter
This is likely mainly useful with doveadm sync/backup.
Timo Sirainen [Fri, 31 May 2024 20:19:53 +0000 (23:19 +0300)]
master: Fix assert-crash after "Process .. is ignoring idle SIGINT" error
The timeout was called multiple times, which caused internal state to break.
Fixes:
Panic: file service-monitor.c: line 60 (service_kill_idle): assertion failed: (processes_to_kill <= service->process_avail)
Aki Tuomi [Mon, 27 May 2024 13:02:24 +0000 (16:02 +0300)]
auth: Drop passdb/userdb dict
Lua driver can be used instead.
Timo Sirainen [Fri, 5 Aug 2022 12:29:30 +0000 (15:29 +0300)]
lib: iostream-rawlog - Flush final buffered data when the stream doesn't end with LF
Timo Sirainen [Fri, 24 May 2024 12:03:26 +0000 (15:03 +0300)]
auth: "Auth request was queued .. secs" log message should be warning, not error
Timo Sirainen [Fri, 24 May 2024 13:02:40 +0000 (16:02 +0300)]
lib, global: timeval_diff_msecs() - Return long long
This makes it less likely to hit accidental bugs due to comparing timestamps
with large differences.
Timo Sirainen [Tue, 14 May 2024 20:17:23 +0000 (23:17 +0300)]
master: Add assert to make sure the same process isn't destroyed twice
Timo Sirainen [Thu, 28 Sep 2023 18:46:01 +0000 (21:46 +0300)]
master: Add asserts to make sure service state is clean at deinit
Timo Sirainen [Thu, 28 Sep 2023 09:45:33 +0000 (12:45 +0300)]
master: Add asserts to make sure service's idling process count is never higher than avail count
Timo Sirainen [Tue, 14 May 2024 17:55:03 +0000 (20:55 +0300)]
anvil: test-connect-limit - Fix memory leak
Timo Sirainen [Tue, 14 May 2024 17:53:54 +0000 (20:53 +0300)]
anvil: Fix memory leak when unused alt username field was reused for another field
Timo Sirainen [Fri, 10 May 2024 11:22:42 +0000 (14:22 +0300)]
imap-hibernate: Send alt usernames to anvil
Timo Sirainen [Fri, 10 May 2024 10:53:40 +0000 (13:53 +0300)]
lib-storage: mail_user_get_alt_usernames() - Fix returning garbage
The first call returned usable usernames in data stack. However, these
were permanently stored to struct mail_user and returned also in the
following calls. At that point the pointers contained some garbage data.
Broken by
3c97a221b9365e1300f08f6b789f8bae7ef23601
Timo Sirainen [Fri, 10 May 2024 10:52:13 +0000 (13:52 +0300)]
anvil: test-connect-limit - Add randomness test
Marco Bettini [Tue, 7 May 2024 09:01:29 +0000 (09:01 +0000)]
lib: i_stream_read() - Fix for runtime error: applying zero offset to null pointer
(found in clang under --enable-devel-checks)
Marco Bettini [Tue, 7 May 2024 13:34:48 +0000 (13:34 +0000)]
lib-imap-client: imapc_command_abort() - Remove command from connection's arrays before freeing it
Broken by
db8a542f3d9
Vincent Kenbeek [Fri, 12 Apr 2024 08:22:48 +0000 (10:22 +0200)]
doveadm: Remove unused function hardlink_replace
Vincent Kenbeek [Fri, 12 Apr 2024 08:20:21 +0000 (10:20 +0200)]
doveadm: Remove unused function file_contents_equal
Vincent Kenbeek [Thu, 11 Apr 2024 14:04:25 +0000 (16:04 +0200)]
doveadm: Remove all mentions of sis deduplicate
Karl Fleischmann [Wed, 24 Apr 2024 15:53:25 +0000 (17:53 +0200)]
lib-index: mail-index-modseq - Remove unused in-memory datastructures
Karl Fleischmann [Wed, 24 Apr 2024 15:53:04 +0000 (17:53 +0200)]
lib-index: mail-index-modseq - Remove unused mail index modseq-manipulation functions
Karl Fleischmann [Thu, 25 Apr 2024 15:25:24 +0000 (17:25 +0200)]
lib-index: mail-index-sync - Simplify modseq update function calls
Karl Fleischmann [Thu, 25 Apr 2024 15:19:05 +0000 (17:19 +0200)]
lib-index: mail_index_modseq_update_to_highest() - Prepare function to replace modseq manipulation functions
With dropping the in-memory per-flag tracking of the modseqs the
manipulation functions will lose their benefit. This commit prepares a
switch to using mail_index_modseq_update_to_highest() in their stead.
Karl Fleischmann [Wed, 24 Apr 2024 15:51:37 +0000 (17:51 +0200)]
lib-index: Remove noop function mail_index_modseq_expunge()
Karl Fleischmann [Wed, 24 Apr 2024 15:48:18 +0000 (17:48 +0200)]
lib-index: Remove noop function mail_index_modseq_sync_map_replaced()
Karl Fleischmann [Wed, 24 Apr 2024 15:46:26 +0000 (17:46 +0200)]
lib-index: mail-index-modseq - Remove unused mail_index_modseq_lookup_* functions
Karl Fleischmann [Wed, 24 Apr 2024 15:45:42 +0000 (17:45 +0200)]
lib-storage: search_arg_match_index() - Simplify mail index modseq lookup call
Karl Fleischmann [Wed, 24 Apr 2024 15:37:00 +0000 (17:37 +0200)]
lib-index: mail-index-modseq - Remove unused mail_index_map_modseq_free()
Karl Fleischmann [Wed, 24 Apr 2024 15:36:17 +0000 (17:36 +0200)]
lib-index: mail-index-modseq - Remove unused mail_index_map_modseq_clone()
Karl Fleischmann [Wed, 24 Apr 2024 15:35:44 +0000 (17:35 +0200)]
lib-index: mail-index-map - Remove modseq map from index record map
Karl Fleischmann [Wed, 24 Apr 2024 15:20:50 +0000 (17:20 +0200)]
lib-index: mail-index-modseq - Remove modseq map from sync context
Karl Fleischmann [Wed, 24 Apr 2024 14:29:26 +0000 (16:29 +0200)]
lib-index: mail-index-modseq - Remove session-based modseq tracking flag
Karl Fleischmann [Wed, 24 Apr 2024 13:00:44 +0000 (15:00 +0200)]
lib-index: mail-index-modseq - Explicitly track whether modseqs have been enabled in an index
Karl Fleischmann [Wed, 24 Apr 2024 12:48:15 +0000 (14:48 +0200)]
lib-index: mail-index-modseq - Clarify whether modseq tracking was requested in session
Timo Sirainen [Mon, 24 Jul 2023 22:10:57 +0000 (01:10 +0300)]
lib-storage, global: Remove unnecessary MAILBOX_SYNC_FLAG_FULL_WRITE
It was only set by IMAP CHECK and POP3 QUIT commands, which made no sense.
Also it only changed the behavior for mbox format.
Markus Valentin [Wed, 3 Apr 2024 10:53:08 +0000 (12:53 +0200)]
fs-api: fs_iter_init_with_event() - Initialize iter->event also if iter_init is not implemented
Aki Tuomi [Tue, 9 Apr 2024 10:07:04 +0000 (13:07 +0300)]
fts: Adding setting for maximum message body size
Solr maximum message size for indexing Set a limit fts_message_max_size
on message body size. Messages are capped at the maximum size for indexing.
This Defaults to zero which means no limit (the existing behaviour).
Example setting:
fts_message_max_size = 10M
Based on work by John Fawcett <john@voipsupport.it>
John Fawcett [Wed, 3 Jan 2024 13:48:43 +0000 (14:48 +0100)]
fts-solr: Limit fetches to SOLR_MAX_MULTI_ROWS
Solr place upper bound on number of rows to be returned from solr for single
mailbox search When dovecot sends a search to solr it uses the rows parameter.
For multiple mailbox search the value used is SOLR_MAX_MULTI_ROWS , hardcoded to
100000. For single mailbox search the value used is uidnext. This patch
introduces an upper limit for single mailbox search using the same upper bound
as for multiple mailbox searches, SOLR_MAX_MULTI_ROWS, while leaving the
existing functionality of sending the uidnext value if it is smaller. This is
just to place a more reasonable upper bound since uidnext can get much larger
than 100000. The following url points to the Solr documentation for query
parameters that describes the rows parameter:
https://solr.apache.org/guide/solr/latest/query-guide/common-query-parameters.html
John Fawcett [Wed, 3 Jan 2024 13:42:51 +0000 (14:42 +0100)]
fts-tika: Allow username and password in fts_tika
Allows specification of username and password in the fts_tika setting for basic
auth against tika server. For example
fts_tika = https://user:password@tika_server:443/tika
Timo Sirainen [Mon, 22 Apr 2024 09:01:07 +0000 (12:01 +0300)]
imapc, lib-imap-client: Add imapc_features=no-qresync to disable QRESYNC
This can be used to silently work around the Zimbra bug of not sending
[CLOSED] imap-resp-code.
Timo Sirainen [Mon, 22 Apr 2024 08:05:09 +0000 (11:05 +0300)]
lib-imap-client: Handle better when QRESYNC capable server doesn't send CLOSED imap-resp-code
QRESYNC RFC specifies that the [CLOSED] imap-resp-code MUST always be sent
if server advertises CONDSTORE or QRESYNC capability. However, at least some
Zimbra versions don't do this. Workaround by reconnecting to the server
automatically.
Timo Sirainen [Mon, 22 Apr 2024 07:59:37 +0000 (10:59 +0300)]
lib-imap-client: Fix automatic reconnecting with delayed logins
reconnect_command_count was always set to 1, because there was always
the command that triggered the connection. It was never reset to 0,
which caused reconnects to never happen.
Timo Sirainen [Tue, 9 Apr 2024 13:00:32 +0000 (16:00 +0300)]
fs-metawrap, fs-compress, fs-crypt: fs_set_metadata() - Pass metadata to both parent files
These fses have a "super_read" file, which is used for some purposes.
The metadata should be also passed to them, so they get the same useful
internal metadata that can be used to optimize reads.
Timo Sirainen [Thu, 11 Apr 2024 09:07:46 +0000 (12:07 +0300)]
lib-sql: cassandra - Add log_retries setting to enable logging retry policy
Timo Sirainen [Thu, 11 Apr 2024 08:41:19 +0000 (11:41 +0300)]
lib-sql: cassandra - Differentiate between requested and received consistency in log messages
They should normally be the same.
Timo Sirainen [Thu, 11 Apr 2024 08:37:13 +0000 (11:37 +0300)]
lib-sql: cassandra - Add "consistency" and "error_consistency" fields to sql_query_finished event
Timo Sirainen [Thu, 11 Apr 2024 08:29:16 +0000 (11:29 +0300)]
lib-sql: cassandra - If query isn't sent, don't include confusing details in error message
When query isn't sent, there is no time for how long the query took and
especially the consistency is not set.
Marco Bettini [Tue, 9 Apr 2024 08:52:06 +0000 (08:52 +0000)]
doveadm: doveadm_mail_next_user() - Restore privileges before returning
Marco Bettini [Tue, 9 Apr 2024 08:51:25 +0000 (08:51 +0000)]
lib-storage: mail_storage_service_restore_privileges() - Allow also for restore to non root euid(s)
Marco Bettini [Tue, 9 Apr 2024 08:49:33 +0000 (08:49 +0000)]
lmtp: lmtp_local_data() - Split off mail_storage_service_restore_privileges()
Timo Sirainen [Mon, 8 Apr 2024 04:06:29 +0000 (07:06 +0300)]
lib-storage: Fix leaking internal error messages to clients on failed list index rebuild
Timo Sirainen [Tue, 9 Apr 2024 11:49:59 +0000 (14:49 +0300)]
fs-metawrap, fs-compress, fs-crypt: fs_read_stream() - return parent stream error immediately
Earlier behavior was to delay until i_stream_read() was called, which caused
problems with some error handling.
Timo Sirainen [Tue, 9 Apr 2024 10:58:03 +0000 (13:58 +0300)]
lib-sql: Fix dependencies for building sql-drivers-register.c
Timo Sirainen [Mon, 8 Apr 2024 19:17:44 +0000 (22:17 +0300)]
lib: istream-multiplex - Fix potential hang when channel buffer gets full
If some bytes were read into the wanted channel, but more input was
attempted to be read into another channel's buffer that was already full,
the read should have returned what bytes were already successfully read.
Instead, 0 (more input needed) was returned.
Timo Sirainen [Wed, 3 Apr 2024 19:27:51 +0000 (22:27 +0300)]
auth: Fix error message if user doesn't have permission to list users
Broken by
812af4bc58424b7c14ed595810a1dd4dad761ab5
Timo Sirainen [Wed, 27 Mar 2024 10:55:09 +0000 (12:55 +0200)]
master: Redirect stdout to /dev/null, unless logging is configured to /dev/stdout
Previous behavior was to redirect to /dev/null, unless -F parameter was
used. This made its behavior rather inconsistent, because -F is commonly
used with e.g. systemd.
Timo Sirainen [Wed, 27 Mar 2024 10:54:40 +0000 (12:54 +0200)]
lib: Add i_failure_have_stdout_logs()
Timo Sirainen [Wed, 27 Mar 2024 10:52:17 +0000 (12:52 +0200)]
lib: Explicitly support /dev/stdout logging to stdout
This way it goes to stdout file descriptor instead of actually opening
the /dev/stdout device.
Aki Tuomi [Thu, 28 Mar 2024 10:58:17 +0000 (12:58 +0200)]
pop3: Free event if mail storage initialization fails
Broken in
de9c5f8b651b08bf08a6ac75a7fdceec5976b0ff
Marco Bettini [Fri, 1 Mar 2024 11:45:00 +0000 (11:45 +0000)]
lib-mail: istream-dot - Implement ISTREAM_DOT_STRICT_EOT
Marco Bettini [Fri, 1 Mar 2024 11:11:27 +0000 (11:11 +0000)]
lib-mail: i_stream_create_dot() - Replace boolean send_last_lf with enumerated flags
Marco Bettini [Thu, 29 Feb 2024 11:25:55 +0000 (11:25 +0000)]
lib-mail: istream-dot - Change state into type enum dot_state
Aki Tuomi [Thu, 21 Mar 2024 07:42:43 +0000 (09:42 +0200)]
lib-lua: dlua-dovecot-http - Do synchronous payload only if asked
Timo Sirainen [Wed, 20 Mar 2024 10:03:43 +0000 (12:03 +0200)]
config: Fix potential crash parsing configuration with obsolete settings
Timo Sirainen [Mon, 18 Mar 2024 11:52:37 +0000 (13:52 +0200)]
lib-storage: mail_user_var_expand_table() - Fix excessive memory usage
It was supposed to return a cached table, but instead it now allocated a new
one every time from mail_user's pool. This kept growing memory usage after
every mail_user_var_expand_table() call.
Broken by
10eaf04197cfe7f6ab1fd4ab57c9f38e75b2889d
Timo Sirainen [Wed, 13 Mar 2024 11:08:18 +0000 (13:08 +0200)]
login-common: Add client_vfuncs.iostream_change_pre/post()
Timo Sirainen [Tue, 12 Mar 2024 13:43:53 +0000 (15:43 +0200)]
doveadm: Add doveadm_mail_server_handle_full()
This allows changing the proxied mail command's command or parameters.
orbea [Wed, 6 Mar 2024 02:15:58 +0000 (18:15 -0800)]
push-notification: fix typo 'module' to '-module'
There is a typo in the Makefile.am where it has 'module` instead of '-module' which causes a build failure with slibtool.
ld: cannot find module: No such file or directory
With GNU libtool the typo is silently ignored.
Timo Sirainen [Mon, 11 Mar 2024 12:30:00 +0000 (14:30 +0200)]
*-login: Fix error code for "Maximum number of connections from user+IP exceeded"
IMAP now reports it as [LIMIT] rather than [UNAVAILABLE].
This change also causes proxy_session_finished event's error_code to
change: [UNAVAILABLE] maps to proxy_dest_auth_temp_failed, while [LIMIT]
maps to proxy_dest_auth_failed.
Timo Sirainen [Mon, 11 Mar 2024 12:19:57 +0000 (14:19 +0200)]
login-common: proxy_session_finished event - Don't add error_code for successful sessions
If the proxy's login to backend succeeded, it was already successful
regardless of what happens afterwards.
Aki Tuomi [Wed, 14 Feb 2024 11:32:16 +0000 (13:32 +0200)]
auth: Use connection API with auth_master_connection
Aki Tuomi [Wed, 14 Feb 2024 12:30:23 +0000 (14:30 +0200)]
auth: Splice off handshaking to auth_master_handshake_args()
Aki Tuomi [Wed, 14 Feb 2024 11:09:06 +0000 (13:09 +0200)]
auth: Change return type to int for auth master input handling
Aki Tuomi [Wed, 14 Feb 2024 10:58:32 +0000 (12:58 +0200)]
auth: Refactor auth master input handling functions
Aki Tuomi [Wed, 14 Feb 2024 11:03:37 +0000 (13:03 +0200)]
auth: Rename list to args in auth-master-connection