]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Tue, 14 May 2024 20:39:59 +0000 (23:39 +0300)]
login-common, *-login: Rename login_proxy_get_[io]stream() to login_proxy_get_server_[io]stream()
Timo Sirainen [Fri, 3 May 2024 09:45:51 +0000 (12:45 +0300)]
imap: COMPRESS - Fail if client pipelines data without waiting for OK reply
Timo Sirainen [Fri, 3 May 2024 09:16:37 +0000 (12:16 +0300)]
imap, imap-hibernate: Preserve multiplex ostream while hibernating
Timo Sirainen [Mon, 8 Apr 2024 21:12:05 +0000 (00:12 +0300)]
login-common, imap: Allow imap process to handle multiplex ostream
Timo Sirainen [Mon, 8 Apr 2024 21:06:34 +0000 (00:06 +0300)]
imap: client_create*() - Change unhibernated boolean to enum flags
Timo Sirainen [Mon, 8 Apr 2024 20:08:00 +0000 (23:08 +0300)]
imap-login: Support starting multiplex iostream using ID command
This is automatically attempted by IMAP proxying, as long as the destination
isn't untrusted.
Timo Sirainen [Mon, 8 Apr 2024 19:55:59 +0000 (22:55 +0300)]
login-common: Add support for multiplex iostreams
This is an internal protocol between two trusted Dovecots.
Timo Sirainen [Thu, 16 May 2024 12:35:54 +0000 (15:35 +0300)]
lib: ostream-multiplex - Fix working with small buffer sizes
For example imap FETCH command sets buffer size to 0 to avoid growing the
ostream buffers. This broke ostream-multiplex, because it always needs to
buffer the data internally before sending it to parent stream. Fix this
by always keeping the internal buffer size at least IO_BLOCK_SIZE bytes.
Timo Sirainen [Thu, 25 Apr 2024 22:23:38 +0000 (01:23 +0300)]
lib: ostream-multiplex - Allow destroying with a different flush callback
This is needed to fix a crash (after the changes in following commits):
- login-proxy aborts multiplex ostream because both sides of the proxy
want multiplexing.
- login-proxy creates iostream-proxy, which sets ostream flush callback
- proxy_input() had multiplex ostream still referenced, and now unrefs it
- ostream-multiplex is destroyed with a different flush callback
Timo Sirainen [Wed, 3 Apr 2024 06:59:35 +0000 (09:59 +0300)]
lib: iostream-multiplex - Implement streaming format
Timo Sirainen [Thu, 25 Apr 2024 21:22:32 +0000 (00:22 +0300)]
lib: ostream-multiplex - Use ostream_private.corked instead of duplicating it
This also fixes o_stream_is_corked() to work correctly.
Timo Sirainen [Tue, 2 Apr 2024 11:17:42 +0000 (14:17 +0300)]
lib: ostream-multiplex - Split off o_stream_multiplex_send_packet()
Timo Sirainen [Tue, 2 Apr 2024 11:07:43 +0000 (14:07 +0300)]
lib: ostream-multiplex - Make sure parent stream write errors are noticed early
Timo Sirainen [Tue, 2 Apr 2024 11:05:38 +0000 (14:05 +0300)]
lib: ostream-multiplex - Fix propagating parent stream error messages
Timo Sirainen [Tue, 2 Apr 2024 10:52:33 +0000 (13:52 +0300)]
lib, global: o_stream_create_multiplex() - Add format parameter
Timo Sirainen [Tue, 2 Apr 2024 10:51:12 +0000 (13:51 +0300)]
lib: ostream-multiplex - Remove unused multiplex_ostream.remain
Timo Sirainen [Tue, 2 Apr 2024 11:10:00 +0000 (14:10 +0300)]
lib: ostream-multiplex - Remove unnecessary check
It's already checked above to be >0.
Timo Sirainen [Tue, 2 Apr 2024 09:53:38 +0000 (12:53 +0300)]
lib: istream-multiplex - Split off i_stream_multiplex_add()
Timo Sirainen [Tue, 30 Apr 2024 11:17:09 +0000 (14:17 +0300)]
lib: istream-multiplex - Allow destroying stream without closing it
Timo Sirainen [Tue, 2 Apr 2024 08:51:14 +0000 (11:51 +0300)]
lib: istream-multiplex - Fix propagating parent stream error messages
Timo Sirainen [Tue, 2 Apr 2024 08:20:57 +0000 (11:20 +0300)]
lib: istream-multiplex - Rename struct multiplex_istream.remain to packet_bytes_left
Timo Sirainen [Tue, 2 Apr 2024 08:18:50 +0000 (11:18 +0300)]
lib: istream-multiplex - Rename struct multiplex_ichannel.pending_pos to pending_count
Timo Sirainen [Wed, 5 Jun 2024 11:06:57 +0000 (14:06 +0300)]
lib: iostream-pump - Call o_stream_finish() when input is finished
This is required to cleanly finish ostreams that have "end of stream"
marker.
Martti Rannanjärvi [Wed, 12 Jun 2024 23:51:41 +0000 (02:51 +0300)]
README.md: Remove dead link to doc/documentation.txt
Timo Sirainen [Wed, 12 Jun 2024 12:06:38 +0000 (15:06 +0300)]
lib-dns: Fix potential timeout leak
Martti Rannanjärvi [Sun, 9 Jun 2024 00:32:39 +0000 (03:32 +0300)]
README.md: Fix link to mailing lists
Timo Sirainen [Mon, 3 Jun 2024 20:42:25 +0000 (23:42 +0300)]
lib: istream-seekable - Allow in-memory fallback only for up to 10 MB streams
Timo Sirainen [Mon, 3 Jun 2024 20:28:23 +0000 (23:28 +0300)]
lib: istream-seekable - Improve logging after write() errors
Also don't silently handle out of disk space errors - log a warning instead.
Timo Sirainen [Mon, 3 Jun 2024 20:23:40 +0000 (23:23 +0300)]
lib: istream-seekable - Assert that write() won't return 0
Timo Sirainen [Mon, 3 Jun 2024 20:05:22 +0000 (23:05 +0300)]
lib: istream-seekable - Fix moving stream to memory on write() failure
Fixes:
Panic: file istream-seekable.c: line 238 (read_from_buffer): assertion failed: (*ret_r > 0)
Timo Sirainen [Mon, 3 Jun 2024 19:46:51 +0000 (22:46 +0300)]
doveadm save: Fix potential assert-crash if saving failed
The input stream may not have been fully read at failure time.
Fixes:
Panic: file doveadm-mail-save.c: line 91 (cmd_save_to_mailbox): assertion failed: (input->eof)
Aki Tuomi [Mon, 13 May 2024 06:39:18 +0000 (09:39 +0300)]
imap: Remove unused includes from imap-settings.c
Aki Tuomi [Tue, 7 May 2024 05:53:04 +0000 (08:53 +0300)]
imap: Enable imap hibernation in Dovecot Pro build
Aki Tuomi [Tue, 4 Jun 2024 08:37:04 +0000 (11:37 +0300)]
m4: Define DOVECOT_PRO_EDITION if pro build is enabled
Timo Sirainen [Tue, 4 Jun 2024 08:16:01 +0000 (11:16 +0300)]
lib-dns: Fix dns_lookup_abort(&NULL) to not crash
Broken by
f9e7f71e48dd4fe2b9af23796022fc256db3866d
Timo Sirainen [Mon, 3 Jun 2024 22:04:12 +0000 (01:04 +0300)]
dict: Check that dict client provides username when using private dict keys
Prevents assert-crashes later on.
Timo Sirainen [Mon, 3 Jun 2024 21:51:49 +0000 (00:51 +0300)]
config: Fix potential crash when parsing invalid values for settings
Timo Sirainen [Mon, 3 Jun 2024 21:51:39 +0000 (00:51 +0300)]
config: Add assert to avoid scan-build warning
Timo Sirainen [Mon, 3 Jun 2024 21:46:29 +0000 (00:46 +0300)]
anvil: test-connect-limit - Add asserts to avoid scan-build warnings
Timo Sirainen [Fri, 31 May 2024 12:16:52 +0000 (15:16 +0300)]
lib-dns: Fix clearing dns requests list at disconnect
Timo Sirainen [Wed, 29 May 2024 06:23:31 +0000 (09:23 +0300)]
lib-dns: Move cache entry refreshing out of dns-client-cache
Timo Sirainen [Wed, 29 May 2024 06:07:33 +0000 (09:07 +0300)]
lib-dns: Fix error handling if background dns refresh lookup fails
If we got disconnected from dns-client, the background dns refresh callback
was never called.
Timo Sirainen [Wed, 29 May 2024 06:00:20 +0000 (09:00 +0300)]
lib-dns: Fix error handling when disconnection aborts requests
Timo Sirainen [Wed, 29 May 2024 05:58:49 +0000 (08:58 +0300)]
lib-dns: Abort pending requests when disconnecting, even when not connected
Timo Sirainen [Tue, 28 May 2024 23:05:44 +0000 (02:05 +0300)]
lib-dns: Remove lookup from linked list independently of freeing it
This probably doesn't fix anything, but makes it clearer how it's intended
to work.
Timo Sirainen [Tue, 28 May 2024 23:11:51 +0000 (02:11 +0300)]
lib-dns: Disconnect from server on lookup timeout
Since the timeout removed the lookup from the responses linked list, any
following replies could become matched against a wrong lookup.
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()