]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Sat, 20 Nov 2021 22:35:16 +0000 (23:35 +0100)]
lib-smtp: smtp-dovecot - Generate and parse referral data as URI authority.
This makes sure special characters are escaped properly. Before, usernames with
special characters and IPv6 caused problems.
Stephan Bosch [Sun, 21 Nov 2021 12:03:59 +0000 (13:03 +0100)]
lib-smtp: smtp-dovecot - Return error from smtp_proxy_redirect_parse().
Stephan Bosch [Sat, 20 Nov 2021 22:32:42 +0000 (23:32 +0100)]
lib-smtp: smtp-client-connection - Make sure IPv6 in log prefix is wrapped in [...].
Stephan Bosch [Sat, 20 Nov 2021 13:18:46 +0000 (14:18 +0100)]
lib-imap: imap-url - Add imap_url_parse_prefix().
Stephan Bosch [Sat, 20 Nov 2021 14:53:36 +0000 (15:53 +0100)]
lib: uri-util - Add support for prefix parsing.
Stephan Bosch [Sat, 20 Nov 2021 18:08:01 +0000 (19:08 +0100)]
lib: uri-util - Make construction of URI host name robust to IP literals.
When only a host name (string) is set, it may still be an IP address. This
change makes sure it is correctly written to the URL when it is IPv6; don't
trust the caller to get it right.
Stephan Bosch [Tue, 23 Nov 2021 00:35:14 +0000 (01:35 +0100)]
lib: uri-util - Use IP over host name string in construction of URI host name.
Both can be set when the URI was parsed earlier from a string or when the caller
sets both. There is never a valid case where these separate fields would yield a
completely different URI. Using the IP when available is necessary to make
sure IPv6 literals are output correctly; don't trust the caller to get it right.
Stephan Bosch [Sat, 20 Nov 2021 18:06:21 +0000 (19:06 +0100)]
lib: uri-util - Fix error message for invalid percent encoding in host name.
Stephan Bosch [Sat, 20 Nov 2021 23:08:49 +0000 (00:08 +0100)]
lib: net - Change net_ipport2str() API to assert fail on invalid IP.
Before, it returned an error result which was either handled with i_unreached()
or ignored.
Stephan Bosch [Sat, 20 Nov 2021 14:18:56 +0000 (15:18 +0100)]
lib-imap: test-imap-url - Split off test_imap_url_valid_check() to reduce indent.
Stephan Bosch [Sat, 20 Nov 2021 14:11:36 +0000 (15:11 +0100)]
lib-imap: Reformat test-imap-url.c.
Timo Sirainen [Thu, 25 Nov 2021 10:59:48 +0000 (12:59 +0200)]
lib-dict: Add dict_lookup_values()
This is the same as dict_lookup(), except it returns all values instead of
just the first.
Timo Sirainen [Thu, 25 Nov 2021 10:53:26 +0000 (12:53 +0200)]
lib-dict: Change dict_vfuncs.lookup() to support multiple values
Timo Sirainen [Thu, 25 Nov 2021 10:56:06 +0000 (12:56 +0200)]
lib-dict: dict_iterate() - Return NULL as value with DICT_ITERATE_FLAG_NO_VALUE
This makes the behavior more consistent with dict_iterate_values().
Timo Sirainen [Thu, 25 Nov 2021 11:17:16 +0000 (13:17 +0200)]
lib-sql: Makefile.am - Fix linking unit tests
If -ldl is before liblib.a, it might complain about missing symbols.
Fix it by just adding -ldl again at the end.
Timo Sirainen [Thu, 25 Nov 2021 10:06:38 +0000 (12:06 +0200)]
lib-dns: Fix leaking idle timeout
Aki Tuomi [Thu, 10 Oct 2019 09:57:08 +0000 (12:57 +0300)]
lib: var-expand - Support base64url for hash format
Stephan Bosch [Fri, 15 Oct 2021 20:18:06 +0000 (22:18 +0200)]
lib-http: http-url - Improve error messages by showing which character is unexpected.
Stephan Bosch [Fri, 15 Oct 2021 20:16:28 +0000 (22:16 +0200)]
lib: uri-util - Improve error messages by showing which character is unexpected.
Stephan Bosch [Fri, 15 Oct 2021 19:08:50 +0000 (21:08 +0200)]
lib: uri-util - Add uri_char_sanitize() and use it in error messages.
Stephan Bosch [Thu, 3 Dec 2020 20:26:02 +0000 (21:26 +0100)]
lib: Reformat uri-util.h.
Stephan Bosch [Thu, 3 Dec 2020 20:12:56 +0000 (21:12 +0100)]
lib: Reformat uri-util.c.
Timo Sirainen [Sun, 10 Oct 2021 18:15:01 +0000 (20:15 +0200)]
dovecot-config.in.in: Add lib-doveadm to LIBDOVECOT_DOVEADM_INCLUDE
Stephan Bosch [Thu, 7 Oct 2021 00:55:18 +0000 (02:55 +0200)]
submission-login: client-authenticate - Send redirect reply upon referral nologin auth result.
Stephan Bosch [Wed, 6 Oct 2021 22:04:19 +0000 (00:04 +0200)]
submission-login: proxy - Support parsing REFERRAL on remote auth failure
Stephan Bosch [Fri, 8 Oct 2021 22:58:13 +0000 (00:58 +0200)]
lib-smtp: Move Dovecot-specific redirect reply parsing and generation to smtp-dovecot.h.
Stephan Bosch [Fri, 8 Oct 2021 10:40:48 +0000 (12:40 +0200)]
lib-smtp: Move common Dovecot-specific definitions to smtp-dovecot.h.
Stephan Bosch [Fri, 8 Oct 2021 10:42:21 +0000 (12:42 +0200)]
lib-smtp: smtp-common - Remove duplicate structural comment.
Aki Tuomi [Fri, 1 Oct 2021 15:25:49 +0000 (18:25 +0300)]
lib: Add timeval_from_usecs
Helper to convert usecs to timeval
Timo Sirainen [Tue, 14 Sep 2021 14:09:40 +0000 (17:09 +0300)]
lib-doveadm, doveadm: Support proxying forward_* fields
Timo Sirainen [Tue, 14 Sep 2021 14:11:43 +0000 (17:11 +0300)]
doveadm: Change doveadm_cctx_to_storage_service_input() to take doveadm_mail_cmd_context
Timo Sirainen [Tue, 14 Sep 2021 12:15:01 +0000 (15:15 +0300)]
lib-doveadm: Add and use struct doveadm_client_cmd_settings
Timo Sirainen [Wed, 15 Sep 2021 13:34:32 +0000 (16:34 +0300)]
lib-doveadm, doveadm: Send proxy-ttl differently in doveadm protocol
The --proxy-ttl parameter works only for mail commands. This breaks using
lib-doveadm with non-mail commands. Fix this by extending the doveadm
command "flags" parameter with "x" that specifies that the next field is
a tabescaped list of key=value pairs which can be used to specify any kind
of future command-specific options.
Timo Sirainen [Wed, 15 Sep 2021 13:21:38 +0000 (16:21 +0300)]
doveadm: Remove doveadm_mail_server_cmd.proxy_ttl
Just use the one from doveadm_mail_cmd_context. Having it duplicated just
complicates the code.
Timo Sirainen [Tue, 14 Sep 2021 12:10:31 +0000 (15:10 +0300)]
lib-doveadm: Fix delayed command sending
It doveadm_client_cmd() was called before doveadm authentication was
finished, --proxy-ttl parameter wasn't sent.
Aki Tuomi [Fri, 17 Sep 2021 06:58:04 +0000 (09:58 +0300)]
lib-sql: Add initial unit tests
Aki Tuomi [Thu, 16 Sep 2021 09:38:28 +0000 (12:38 +0300)]
lib-sql: Use automake directives for sql-drivers-register.c
Aki Tuomi [Mon, 27 Sep 2021 06:49:59 +0000 (09:49 +0300)]
lib-sql: driver-sqlite - Use container_of
Aki Tuomi [Fri, 17 Sep 2021 07:02:09 +0000 (10:02 +0300)]
lib-sql: driver-sqlite - Fix synchronous transaction commit
It was not sending ROLLBACK on error, and leaked an event. Now it
works same way as asynchronous commit.
Aki Tuomi [Thu, 16 Sep 2021 09:00:59 +0000 (12:00 +0300)]
lib-sql: driver-sqlite - Support readonly databases
Aki Tuomi [Thu, 16 Sep 2021 07:47:09 +0000 (10:47 +0300)]
lib-sql: driver-sqlite - Support WAL mode
Adds journal_mode connect string option that can be
either delete or wal.
Aki Tuomi [Thu, 16 Sep 2021 07:50:35 +0000 (10:50 +0300)]
lib-sql: driver-sqlite - Use sqlite_open_v2
Aki Tuomi [Thu, 16 Sep 2021 07:39:54 +0000 (10:39 +0300)]
lib-sql: driver-sqlite - Support options
No spaces or '=' are permitted in filename after this.
Aki Tuomi [Thu, 16 Sep 2021 07:35:57 +0000 (10:35 +0300)]
lib-sql: driver-sqlite - Move connect_string parsing to a function
Simplifies next change
Aki Tuomi [Thu, 16 Sep 2021 08:53:20 +0000 (11:53 +0300)]
lib-settings: Add settings_get_bool
Parses string as boolean. Accepts yes/y/1 and no.
Preferred ones are 'yes' and 'no'.
Timo Sirainen [Tue, 28 Sep 2021 09:34:51 +0000 (12:34 +0300)]
lib-dns: If per-request event is NULL, fallback to connection event
Timo Sirainen [Tue, 28 Sep 2021 09:32:02 +0000 (12:32 +0300)]
lib-dns: Add dns category immediately to the connection event
Aki Tuomi [Mon, 27 Sep 2021 15:24:06 +0000 (18:24 +0300)]
lib-dns: Cleanup lookup cache only when there are entries
Aki Tuomi [Fri, 10 Sep 2021 06:34:57 +0000 (09:34 +0300)]
auth: Use caching dns client for proxy lookups
Aki Tuomi [Fri, 10 Sep 2021 06:38:17 +0000 (09:38 +0300)]
lib-dns: Add per-lookup event for dns client
Aki Tuomi [Fri, 10 Sep 2021 06:52:28 +0000 (09:52 +0300)]
lib-dns: Add caching to dns client
Caching can be used with the client API. Setting cache_ttl_secs
to a suitable value will cache the entries for given seconds.
Entries are refreshed if looked up after half the ttl has elapsed.
Aki Tuomi [Thu, 9 Sep 2021 06:48:53 +0000 (09:48 +0300)]
lib-dns: Add unit tests for lookup
Aki Tuomi [Fri, 10 Sep 2021 05:53:58 +0000 (08:53 +0300)]
lib-dns: Move assert after dns client disconnection
The client will abort all pending queries, ensure that
they have all gone away after that. Not before.
Aki Tuomi [Fri, 10 Sep 2021 05:52:38 +0000 (08:52 +0300)]
lib-dns: Whitespace fix
Aki Tuomi [Fri, 10 Sep 2021 05:50:36 +0000 (08:50 +0300)]
lib-dns: Add dns_client_has_pending_queries()
Needed for testing
Aki Tuomi [Thu, 9 Sep 2021 05:51:39 +0000 (08:51 +0300)]
lib-dns: test-dns-util - Fix typo in Makefile.am
Aki Tuomi [Thu, 9 Sep 2021 05:51:10 +0000 (08:51 +0300)]
lib-dns: Move lib-test include to AM_CPPFLAGS
Martti Rannanjärvi [Fri, 17 Sep 2021 08:46:35 +0000 (11:46 +0300)]
configure.ac: Set dovecot version to 3.0
Timo Sirainen [Tue, 14 Sep 2021 08:45:17 +0000 (11:45 +0300)]
doveadm: Fix using doveadm_ssl setting from command line
The doveadm_ssl setting was used only with proxying, but it can also be
used by doveadm CLI client to specify that it wants to connect to doveadm
SSL port.
Timo Sirainen [Fri, 13 Aug 2021 15:45:35 +0000 (18:45 +0300)]
doveadm: Move DOVEADM_PROXY_TTL to doveadm-client.h
Timo Sirainen [Fri, 30 Jul 2021 14:23:55 +0000 (17:23 +0300)]
lib-doveadm, doveadm: Change log passthrough to be optional
Timo Sirainen [Fri, 30 Jul 2021 14:20:24 +0000 (17:20 +0300)]
doveadm-server: Split off client_connection_log_passthrough()
Timo Sirainen [Fri, 13 Aug 2021 12:55:24 +0000 (15:55 +0300)]
doveadm: Use DOVEADM_PROTOCOL_MIN_VERSION_MULTIPLEX macro
Timo Sirainen [Fri, 30 Jul 2021 14:00:11 +0000 (17:00 +0300)]
lib-doveadm: Rename DOVEADM_PROTOCOL_MIN_VERSION_* macros and make them public
Timo Sirainen [Fri, 30 Jul 2021 13:59:27 +0000 (16:59 +0300)]
lib-doveadm: Split off doveadm_client_need_authentication()
Timo Sirainen [Fri, 30 Jul 2021 13:55:28 +0000 (16:55 +0300)]
lib-doveadm: Move starting multiplex into doveadm_client_authenticated()
Timo Sirainen [Mon, 16 Aug 2021 10:08:15 +0000 (13:08 +0300)]
lib-doveadm: Move doveadm_client_authenticated()
Timo Sirainen [Thu, 29 Jul 2021 17:54:28 +0000 (20:54 +0300)]
doveadm: Move doveadm-client related code to lib-doveadm
Timo Sirainen [Thu, 29 Jul 2021 17:52:44 +0000 (20:52 +0300)]
doveadm: Rename server_connection to doveadm_client
Timo Sirainen [Thu, 29 Jul 2021 17:39:30 +0000 (20:39 +0300)]
doveadm: Move doveadm protocol-related functions to doveadm-protocol.[ch]
Timo Sirainen [Thu, 29 Jul 2021 17:33:10 +0000 (20:33 +0300)]
doveadm: server-connection - Move initializing ssl settings to caller
Timo Sirainen [Thu, 29 Jul 2021 17:17:49 +0000 (20:17 +0300)]
doveadm: Move extern variables out of doveadm-server.h and delete it
Timo Sirainen [Thu, 29 Jul 2021 17:15:57 +0000 (20:15 +0300)]
doveadm: Move struct doveadm_server to doveadm-mail-server.c
Timo Sirainen [Thu, 29 Jul 2021 17:12:53 +0000 (20:12 +0300)]
doveadm: server-connection - Replace doveadm_server with doveadm_client_settings
Timo Sirainen [Thu, 29 Jul 2021 16:41:28 +0000 (19:41 +0300)]
doveadm: Move doveadm_server.connections to a global list
This also changes doveadm_worker_count to be a global limit, not per-server.
That behavior makes more sense though.
Timo Sirainen [Fri, 30 Jul 2021 12:04:58 +0000 (15:04 +0300)]
doveadm: Change per-server command request queue to be global
The queue behavior isn't quite as efficient as it could be in this commit,
but that will be fixed by the following commit.
Timo Sirainen [Thu, 29 Jul 2021 16:21:01 +0000 (19:21 +0300)]
doveadm: server-connection - Move reply printing to caller
Timo Sirainen [Thu, 29 Jul 2021 16:19:14 +0000 (19:19 +0300)]
lib: Fix safe_run() example macro in comment
Timo Sirainen [Thu, 29 Jul 2021 16:01:44 +0000 (19:01 +0300)]
doveadm: server-connection - Replace "print pending" server list with connection list
This is in preparation for removing dependency on doveadm_server.
Timo Sirainen [Thu, 29 Jul 2021 14:19:28 +0000 (17:19 +0300)]
doveadm: server-connection - Use connection API for connecting to remote
This way the remote IP connections are done asynchronously.
Also hostname lookup failures no longer cause i_fatal() immediately.
Timo Sirainen [Thu, 29 Jul 2021 14:06:23 +0000 (17:06 +0300)]
doveadm: Update struct doveadm_server comments
Timo Sirainen [Thu, 29 Jul 2021 14:05:34 +0000 (17:05 +0300)]
dsync: Fill doveadm_server.port field
In preparation for following changes.
Timo Sirainen [Thu, 29 Jul 2021 13:43:36 +0000 (16:43 +0300)]
doveadm: server-connection - Delay handshaking until client_connected is called
In preparation for connecting to remote IP asynchronously.
Timo Sirainen [Thu, 29 Jul 2021 13:36:47 +0000 (16:36 +0300)]
doveadm: server-connection - Invalid log type should be printed as error
It's a bug if it happens.
Timo Sirainen [Thu, 29 Jul 2021 13:36:33 +0000 (16:36 +0300)]
doveadm: server-connection - Convert to using event logging
Timo Sirainen [Thu, 29 Jul 2021 12:07:21 +0000 (15:07 +0300)]
doveadm: server-connection - Convert to connection API
Timo Sirainen [Thu, 29 Jul 2021 10:57:55 +0000 (13:57 +0300)]
doveadm: server-connection - Add struct connection
In preparation for using the full connection API.
Timo Sirainen [Thu, 29 Jul 2021 12:57:28 +0000 (15:57 +0300)]
doveadm: server-connection - Remove the concept of idle connections
The connection is always disconnected after processing commands, unless
the callback started a new command.
Timo Sirainen [Thu, 29 Jul 2021 13:25:15 +0000 (16:25 +0300)]
doveadm: Remove server_connection_get_server()
Timo Sirainen [Thu, 29 Jul 2021 13:24:41 +0000 (16:24 +0300)]
doveadm: Avoid using server_connection_get_server()
Timo Sirainen [Thu, 29 Jul 2021 12:40:00 +0000 (15:40 +0300)]
doveadm: Remove old doveadm-server exit-code workaround
The "old" means v2.2.2 or older.
Timo Sirainen [Thu, 29 Jul 2021 12:54:20 +0000 (15:54 +0300)]
doveadm: Simplify connection choosing when a server command is finished
The newly chosen connection is always the one that had just finished the
command.
Timo Sirainen [Thu, 29 Jul 2021 11:25:16 +0000 (14:25 +0300)]
doveadm: server-connection - Don't do connection-specific config lookups
The config is used only for doveadm_username and doveadm_password.
In theory it might be nice to support different passwords for different
remote hosts, practically nobody is doing this and it just complicates
the code and slows things down.
Timo Sirainen [Fri, 13 Aug 2021 12:07:33 +0000 (15:07 +0300)]
doveadm: Fix connecting to doveadm-server via UNIX socket
Broken by recent changes.
Timo Sirainen [Thu, 17 Jun 2021 11:52:46 +0000 (14:52 +0300)]
doveadm: Add support for proxy_redirect_reauth
Timo Sirainen [Thu, 17 Jun 2021 11:51:48 +0000 (14:51 +0300)]
doveadm: Split off doveadm_cmd_redirect_finish()
Timo Sirainen [Thu, 17 Jun 2021 11:29:50 +0000 (14:29 +0300)]
doveadm: Split off doveadm_cmd_pass_reply_parse()
Timo Sirainen [Thu, 17 Jun 2021 11:21:04 +0000 (14:21 +0300)]
doveadm: doveadm_mail_server_user_get_host() - Return the full proxy settings
Timo Sirainen [Thu, 17 Jun 2021 09:30:27 +0000 (12:30 +0300)]
doveadm: Split off doveadm_cmd_pass_lookup()
Timo Sirainen [Thu, 17 Jun 2021 09:23:42 +0000 (12:23 +0300)]
doveadm: doveadm_mail_server_user() - Remove input parameter
All the necessary information is in the command context already. Also note
that mail_storage_service_init_settings() doesn't actually need anything but
the service.