]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
3 years agolib-storage: LAYOUT=index: Fix accessing freed memory when deleting \Noselect parents
Markus Valentin [Thu, 27 Jan 2022 20:40:25 +0000 (21:40 +0100)] 
lib-storage: LAYOUT=index: Fix accessing freed memory when deleting \Noselect parents

Broken by f5328d6f7e4a8e460c736fa0336f5766aa58abda

3 years agofts: Use fts_backend_is_uid_indexed() instead of fts_backend_get_last_uid()
Timo Sirainen [Mon, 14 May 2018 20:59:02 +0000 (23:59 +0300)] 
fts: Use fts_backend_is_uid_indexed() instead of fts_backend_get_last_uid()

If the highest UID currently known to the view is already indexed, we don't
care whether there are other higher UIDs that have already been indexed.

3 years agofts: Add fts_backend_is_uid_indexed() and fts_backend_vfuncs.is_uid_indexed()
Timo Sirainen [Mon, 14 May 2018 20:32:08 +0000 (23:32 +0300)] 
fts: Add fts_backend_is_uid_indexed() and fts_backend_vfuncs.is_uid_indexed()

Backends may be able to optimize this better than get_last_uid(), because
they only need to verify whether the given UID is indexed or not. This
allows e.g. caching internally without having to refresh the index to see
whether another mail was just recently indexed.

If the new vfunc isn't implemented by the backend, get_last_uid() is used to
implement it.

3 years agofts-*: Use named initializers for fts_backend_vfuncs
Timo Sirainen [Mon, 14 May 2018 20:26:07 +0000 (23:26 +0300)] 
fts-*: Use named initializers for fts_backend_vfuncs

3 years agoplugins/fts: Allow plugins to carry state across calls during search session
Marco Bettini [Fri, 17 Dec 2021 08:27:07 +0000 (09:27 +0100)] 
plugins/fts: Allow plugins to carry state across calls during search session

3 years agoindexer: Fix memory leak - worker_requests were never freed
Timo Sirainen [Wed, 26 Jan 2022 18:28:33 +0000 (19:28 +0100)] 
indexer: Fix memory leak - worker_requests were never freed

Broken by 141766b24f885259508ae39f2e18811018373bc7

3 years agoindexer: Fix memory leak - session IDs were never freed
Timo Sirainen [Tue, 25 Jan 2022 22:31:34 +0000 (23:31 +0100)] 
indexer: Fix memory leak - session IDs were never freed

Broken by a8dcd4e2332c73087e9b148d34259230a77edb28

3 years agolib-storage: Add unit tests for mail_parse_human_timestamp()
Karl Fleischmann [Mon, 24 Jan 2022 13:51:41 +0000 (14:51 +0100)] 
lib-storage: Add unit tests for mail_parse_human_timestamp()

Add one test for one of each branches in mail_parse_human_timestamp()
which include:
- ISO dates,
- IMAP dates,
- UNIX timestamps, and
- relative time intervals.

3 years agolib-storage: mail_parse_human_timestamp() - Make ISO date conversion UTC specific
Karl Fleischmann [Mon, 24 Jan 2022 13:50:46 +0000 (14:50 +0100)] 
lib-storage: mail_parse_human_timestamp() - Make ISO date conversion UTC specific

3 years agolib-sql: pgsql: Added correct notice processor
Dmitry Yakunin [Mon, 16 Apr 2018 10:43:03 +0000 (13:43 +0300)] 
lib-sql: pgsql: Added correct notice processor

3 years agolib-storage: mailbox-list: index_list_rename_mailbox() - Support NO-NOSELECT
Markus Valentin [Fri, 14 Jan 2022 07:07:50 +0000 (08:07 +0100)] 
lib-storage: mailbox-list: index_list_rename_mailbox() - Support NO-NOSELECT

When NO-NOSELECT is configured delete parent mailboxes which are not
selectable or existant when renaming child mailboxes.

3 years agolib-storage: mailbox-list: index_list_delete_mailbox() - Support NO-NOSELECT
Markus Valentin [Fri, 14 Jan 2022 07:04:09 +0000 (08:04 +0100)] 
lib-storage: mailbox-list: index_list_delete_mailbox() - Support NO-NOSELECT

When NO-NOSELECT is configured delete parent mailboxes which are not
selectable or not existant when deleting child mailboxes.

3 years agoimapc: Fix doveadm copy with imapc
Markus Valentin [Wed, 22 Dec 2021 11:12:51 +0000 (12:12 +0100)] 
imapc: Fix doveadm copy with imapc

When copying to a mailbox with imapc it does not sync the destination
mailbox when opening. This created "Error: Syncing mailbox '$mailboxname'
failed: Internal error occurred." Prevent this error by checking for the
MAILBOX_FLAG_SAVEONLY flag which is used by doveadm to create the
destination mailbox. If that flag is set ignore that there was no initial
fetching done.

3 years agodoveadm fetch/search: Use DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT
Timo Sirainen [Fri, 21 Jan 2022 14:31:04 +0000 (16:31 +0200)] 
doveadm fetch/search: Use DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT

These commands only write output to the client, so it's safe to stop
them if the client disconnects.

3 years agodoveadm: doveadm_mail_iter_init() - Add DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT
Timo Sirainen [Fri, 21 Jan 2022 14:29:48 +0000 (16:29 +0200)] 
doveadm: doveadm_mail_iter_init() - Add DOVEADM_MAIL_ITER_FLAG_STOP_WITH_CLIENT

When this flag is used, the iteration is stopped if print ostream has
reported an error, i.e. doveadm-client has disconnected.

3 years agodoveadm: doveadm_mail_iter_init() - Change bool parameter to flags
Timo Sirainen [Fri, 21 Jan 2022 14:24:39 +0000 (16:24 +0200)] 
doveadm: doveadm_mail_iter_init() - Change bool parameter to flags

3 years agodoveadm-server: Fix hang when flushing print output and client disconnects
Timo Sirainen [Thu, 20 Jan 2022 13:16:51 +0000 (14:16 +0100)] 
doveadm-server: Fix hang when flushing print output and client disconnects

3 years agolib: ostream-multiplex - Call flush callbacks also when stream has failed
Timo Sirainen [Thu, 20 Jan 2022 13:13:48 +0000 (14:13 +0100)] 
lib: ostream-multiplex - Call flush callbacks also when stream has failed

It may be important for the flush callbacks to know when ostream has been
closed. This is a partial fix to prevent doveadm-server hanging when it's
printing lots of output and doveadm client disconnects.

3 years agodoveadm: Fix assert-crash when proxying causes print buffer to be flushed
Timo Sirainen [Thu, 20 Jan 2022 12:34:50 +0000 (13:34 +0100)] 
doveadm: Fix assert-crash when proxying causes print buffer to be flushed

Fixes:
Panic: file ioloop.c: line 865 (io_loop_destroy): assertion failed: (ioloop == current_ioloop)

3 years agolib-master: Add process_shutdown_filter setting
sergey.kitov [Thu, 16 Dec 2021 09:49:24 +0000 (11:49 +0200)] 
lib-master: Add process_shutdown_filter setting

3 years agolib-master: Refactor parsing event filters from settings.
sergey.kitov [Thu, 16 Dec 2021 09:44:38 +0000 (11:44 +0200)] 
lib-master: Refactor parsing event filters from settings.

3 years agolib-master: Remove check for client->filter == NULL before event_filter_match().
sergey.kitov [Thu, 16 Dec 2021 09:38:53 +0000 (11:38 +0200)] 
lib-master: Remove check for client->filter == NULL before event_filter_match().

3 years agolib: Add check for NULL to event_filter_match().
sergey.kitov [Thu, 16 Dec 2021 09:38:08 +0000 (11:38 +0200)] 
lib: Add check for NULL to event_filter_match().

3 years agolib-master: Whitespace cleanup.
sergey.kitov [Wed, 15 Dec 2021 13:19:04 +0000 (15:19 +0200)] 
lib-master: Whitespace cleanup.

3 years agolib-storage: Emit event with process stat in mail_user_deinit().
sergey.kitov [Wed, 1 Dec 2021 11:35:12 +0000 (13:35 +0200)] 
lib-storage: Emit event with process stat in mail_user_deinit().

3 years agolib: Add event_add_int_non_zero()
sergey.kitov [Tue, 7 Dec 2021 14:58:43 +0000 (16:58 +0200)] 
lib: Add event_add_int_non_zero()

3 years agolib: Add functionality for acquiring process stat.
sergey.kitov [Wed, 1 Dec 2021 11:34:22 +0000 (13:34 +0200)] 
lib: Add functionality for acquiring process stat.

3 years agolib: add timeval_to_usecs()
sergey.kitov [Tue, 21 Dec 2021 08:47:54 +0000 (10:47 +0200)] 
lib: add timeval_to_usecs()

3 years agolib: Whitespace cleanup
sergey.kitov [Mon, 20 Dec 2021 14:17:54 +0000 (16:17 +0200)] 
lib: Whitespace cleanup

3 years agolib-storage: Fix search query that only contains SEARCH_MAILBOX_GUID
Timo Sirainen [Wed, 1 Dec 2021 10:21:48 +0000 (12:21 +0200)] 
lib-storage: Fix search query that only contains SEARCH_MAILBOX_GUID

Fixes assert-crash in virtual mailbox:

Panic: file virtual-search.c: line 77 (virtual_search_get_records): assertion failed: (result != 0)

3 years agolib-doveadm: Fix connect timeout from 30ms to 30s
Timo Sirainen [Thu, 20 Jan 2022 12:28:44 +0000 (13:28 +0100)] 
lib-doveadm: Fix connect timeout from 30ms to 30s

3 years agoconfig: old_settings_ssl_dh_read() - Replace while() from non-iterating code
Marco Bettini [Tue, 18 Jan 2022 13:26:30 +0000 (14:26 +0100)] 
config: old_settings_ssl_dh_read() - Replace while() from non-iterating code

Found by code analysis tool

3 years agodoveadm: doveadm_mailbox_list_iter_next() - Replace while() in non-iterating code
Marco Bettini [Tue, 18 Jan 2022 11:20:02 +0000 (12:20 +0100)] 
doveadm: doveadm_mailbox_list_iter_next() - Replace while() in non-iterating code

Found by code analysis tool

3 years agodsync: Log errors sent by remote tcp connection
Timo Sirainen [Thu, 10 Dec 2020 11:24:36 +0000 (13:24 +0200)] 
dsync: Log errors sent by remote tcp connection

3 years agodsync: Split off dsync_errors_finish()
Timo Sirainen [Thu, 10 Dec 2020 11:22:31 +0000 (13:22 +0200)] 
dsync: Split off dsync_errors_finish()

The logic changes a bit, but it's fine because either all of err_stream,
io_error and fd_err are set or none of them are.

3 years agolib-storage: Don't delay setting mail event's log prefix
Timo Sirainen [Thu, 20 Jan 2022 10:42:57 +0000 (12:42 +0200)] 
lib-storage: Don't delay setting mail event's log prefix

This caused crashes if the mail event was kept referenced and used for
logging after struct mail was already freed. With the delayed mail event
creation the log prefix shouldn't be much of a performance problem, so just
set the prefix immediately.

Partially reverts bc68e1c368db746557829f67556f3c72943b7956.

3 years agosubmission: submission-backend-relay - Make sure QUIT command yields 221 when relay...
Stephan Bosch [Fri, 14 Jan 2022 03:02:09 +0000 (04:02 +0100)] 
submission: submission-backend-relay - Make sure QUIT command yields 221 when relay connection is closed normally.

Before, it would sometimes erroneously treat the closing connection as a
"connection lost" 421 situation.

3 years agosubmission: submission-backend-relay - Fix segfault in QUIT command client-side destr...
Stephan Bosch [Fri, 14 Jan 2022 03:01:29 +0000 (04:01 +0100)] 
submission: submission-backend-relay - Fix segfault in QUIT command client-side destruction.

3 years agolib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete.
Stephan Bosch [Mon, 9 Nov 2020 01:29:04 +0000 (02:29 +0100)] 
lib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete.

A subsequent MAIL command could get reset in the middle otherwise. Before, it
only blocked input until a reply was submitted, but the transaction isn't reset
until the RSET command is complete (just before actually sending the reply)
which can cause issues when the subsequent MAIL command is already being
processed.

3 years agolib-smtp: smtp-server-cmd-helo - Stop processing pipeline until HELO/EHLO is complete.
Stephan Bosch [Sun, 8 Nov 2020 23:02:51 +0000 (00:02 +0100)] 
lib-smtp: smtp-server-cmd-helo - Stop processing pipeline until HELO/EHLO is complete.

A subsequent MAIL command could get reset in the middle otherwise. Before, it
only blocked input until a reply was submitted, but the transaction isn't reset
until the EHLO/HELO command is complete (just before actually sending the reply)
which can cause issues when the subsequent MAIL command is already
being processed.

3 years agolib-smtp: smtp-server-command - Add smtp_server_command_pipeline_block/unblock().
Stephan Bosch [Sun, 8 Nov 2020 02:58:06 +0000 (03:58 +0100)] 
lib-smtp: smtp-server-command - Add smtp_server_command_pipeline_block/unblock().

3 years agolib-smtp: smtp-client-transaction - Plug the command pipeline while transaction is...
Stephan Bosch [Mon, 10 Jan 2022 02:54:13 +0000 (03:54 +0100)] 
lib-smtp: smtp-client-transaction - Plug the command pipeline while transaction is pending.

This prevents commands submitted after creating the transaction from being
exectuted out-of-order before the transaction's MAIL command.

3 years agolib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after().
Stephan Bosch [Mon, 10 Jan 2022 02:53:41 +0000 (03:53 +0100)] 
lib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after().

3 years agolib-smtp: smtp-client-transaction - Prevent recursion for smtp_client_transaction_fai...
Stephan Bosch [Mon, 10 Jan 2022 00:18:56 +0000 (01:18 +0100)] 
lib-smtp: smtp-client-transaction - Prevent recursion for smtp_client_transaction_fail*().

3 years agolib-smtp: Reformat smtp-server-cmd-quit.c.
Stephan Bosch [Tue, 11 Jan 2022 01:05:26 +0000 (02:05 +0100)] 
lib-smtp: Reformat smtp-server-cmd-quit.c.

3 years agolib-dict: test-dict-client - Handle shutdown cleanly with ctrl-c
Timo Sirainen [Fri, 31 Dec 2021 09:29:02 +0000 (11:29 +0200)] 
lib-dict: test-dict-client - Handle shutdown cleanly with ctrl-c

3 years agolib: Fix assert-crash when using only non-delayed signals
Timo Sirainen [Fri, 31 Dec 2021 09:28:09 +0000 (11:28 +0200)] 
lib: Fix assert-crash when using only non-delayed signals

Fixes:
Panic: file lib-signals.c: line 190 (lib_signals_init_io): assertion failed: (sig_pipe_fd[0] != -1)

3 years agoutil: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:04:22 +0000 (17:04 +0200)] 
util: Remove unreachable code.

3 years agoplugins/fts-squat: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:03:54 +0000 (17:03 +0200)] 
plugins/fts-squat: Remove unreachable code.

3 years agolib: Replace compile time defined conditions with COMPILE_ERROR_IF_TRUE.
sergey.kitov [Mon, 3 Jan 2022 15:12:43 +0000 (17:12 +0200)] 
lib: Replace compile time defined conditions with COMPILE_ERROR_IF_TRUE.

3 years agolib: Remove unreachable code.
sergey.kitov [Mon, 3 Jan 2022 15:11:56 +0000 (17:11 +0200)] 
lib: Remove unreachable code.

3 years agolib-storage: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:03:08 +0000 (17:03 +0200)] 
lib-storage: Remove unreachable code.

3 years agolib-ssl-iostream: Replace unreachable error handling with i_unreached().
sergey.kitov [Mon, 3 Jan 2022 15:03:32 +0000 (17:03 +0200)] 
lib-ssl-iostream: Replace unreachable error handling with i_unreached().

SSL_CTX_set_eddh_auto() cannot return 0 when HAVE_ECDH is defined.

3 years agolib-smtp: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:01:46 +0000 (17:01 +0200)] 
lib-smtp: Remove unreachable code.

3 years agolib-settings: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:00:51 +0000 (17:00 +0200)] 
lib-settings: Remove unreachable code.

3 years agolib-oauth2: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 15:00:16 +0000 (17:00 +0200)] 
lib-oauth2: Remove unreachable code.

3 years agolib-imap: Replace compile time defined conditions with conditional compilation.
sergey.kitov [Thu, 30 Dec 2021 14:59:47 +0000 (16:59 +0200)] 
lib-imap: Replace compile time defined conditions with conditional compilation.

3 years agolib-http: Remove unreachable code.
sergey.kitov [Mon, 3 Jan 2022 15:40:33 +0000 (17:40 +0200)] 
lib-http: Remove unreachable code.

3 years agolib-http: Replace unreachable return statement with i_unreached().
sergey.kitov [Mon, 3 Jan 2022 15:39:57 +0000 (17:39 +0200)] 
lib-http: Replace unreachable return statement with i_unreached().

3 years agolib-dcrypt: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 14:58:07 +0000 (16:58 +0200)] 
lib-dcrypt: Remove unreachable code.

3 years agodoveadm: Remove unreachable code.
sergey.kitov [Thu, 30 Dec 2021 14:57:13 +0000 (16:57 +0200)] 
doveadm: Remove unreachable code.

3 years agolib-smtp: Whitespace cleanup.
sergey.kitov [Thu, 30 Dec 2021 18:59:56 +0000 (20:59 +0200)] 
lib-smtp: Whitespace cleanup.

3 years agolib-http: Whitespace cleanup.
sergey.kitov [Thu, 30 Dec 2021 18:57:21 +0000 (20:57 +0200)] 
lib-http: Whitespace cleanup.

3 years agodoveadm: Whitespace cleanup.
sergey.kitov [Thu, 30 Dec 2021 13:48:51 +0000 (15:48 +0200)] 
doveadm: Whitespace cleanup.

3 years agodoc: Update Solr schema
Aki Tuomi [Fri, 17 Dec 2021 09:36:37 +0000 (11:36 +0200)] 
doc: Update Solr schema

Use ICU tokenization and normalization.
Reorder filters to make more sense.

3 years agopop3-login: client-authenticate - Send redirect reply upon referral nologin auth...
Stephan Bosch [Mon, 1 Nov 2021 01:33:50 +0000 (02:33 +0100)] 
pop3-login: client-authenticate - Send redirect reply upon referral nologin auth result.

3 years agopop3-login: proxy - Support parsing REFERRAL on remote auth failure.
Stephan Bosch [Mon, 1 Nov 2021 01:22:45 +0000 (02:22 +0100)] 
pop3-login: proxy - Support parsing REFERRAL on remote auth failure.

3 years agolib-pop3: Add definition for default service TCP ports.
Stephan Bosch [Mon, 1 Nov 2021 00:40:18 +0000 (01:40 +0100)] 
lib-pop3: Add definition for default service TCP ports.

3 years agopop3: Move pop3-capability.h to new lib-pop3.
Stephan Bosch [Sun, 31 Oct 2021 21:56:59 +0000 (22:56 +0100)] 
pop3: Move pop3-capability.h to new lib-pop3.

3 years agosubmission-login: submission-proxy - Properly handle IPv6 in redirect.
Stephan Bosch [Sat, 20 Nov 2021 22:43:28 +0000 (23:43 +0100)] 
submission-login: submission-proxy - Properly handle IPv6 in redirect.

3 years agoimap-login: client-authenticate - Make sure redirect IPv6 is handled correctly.
Stephan Bosch [Sat, 20 Nov 2021 22:41:17 +0000 (23:41 +0100)] 
imap-login: client-authenticate - Make sure redirect IPv6 is handled correctly.

Pass IP structure to URL API instead of only the hostname as a string.

3 years agoimap-login: imap-proxy - Fix parsing REFERRAL response with IPv6 URL.
Stephan Bosch [Sat, 20 Nov 2021 13:37:16 +0000 (14:37 +0100)] 
imap-login: imap-proxy - Fix parsing REFERRAL response with IPv6 URL.

3 years agoimap-login: imap-proxy - Sanitize response in REFERRAL parse error.
Stephan Bosch [Sat, 20 Nov 2021 15:31:31 +0000 (16:31 +0100)] 
imap-login: imap-proxy - Sanitize response in REFERRAL parse error.

3 years agoimap-login: imap-proxy - Restructure parsing of NO response.
Stephan Bosch [Sat, 20 Nov 2021 13:27:23 +0000 (14:27 +0100)] 
imap-login: imap-proxy - Restructure parsing of NO response.

Don't parse the closing ']' beforehand. This is needed for later commit in which
REFERRAL response code is parsed incrementally.

3 years agolmtp: lmtp-proxy - Always wrap IPv6 in [...] in log messages.
Stephan Bosch [Sat, 20 Nov 2021 23:35:50 +0000 (00:35 +0100)] 
lmtp: lmtp-proxy - Always wrap IPv6 in [...] in log messages.

3 years agolmtp: lmtp-proxy - Wrap IPv6 in [...] for redirect path.
Stephan Bosch [Sat, 20 Nov 2021 23:35:08 +0000 (00:35 +0100)] 
lmtp: lmtp-proxy - Wrap IPv6 in [...] for redirect path.

3 years agolmtp: lmtp-proxy - Sanitize response in REFERRAL parse error.
Stephan Bosch [Sun, 21 Nov 2021 12:27:35 +0000 (13:27 +0100)] 
lmtp: lmtp-proxy - Sanitize response in REFERRAL parse error.

3 years agologin-common: client-common-auth - Wrap IPv6 in [...] for proxy_redirect_host_next...
Stephan Bosch [Sat, 20 Nov 2021 23:10:26 +0000 (00:10 +0100)] 
login-common: client-common-auth - Wrap IPv6 in [...] for proxy_redirect_host_next= field.

3 years agologin-common: login-proxy - Always wrap IPv6 in [...] in log messages.
Stephan Bosch [Sat, 20 Nov 2021 23:28:56 +0000 (00:28 +0100)] 
login-common: login-proxy - Always wrap IPv6 in [...] in log messages.

3 years agologin-common: login-proxy - Wrap IPv6 in [...] for redirect path.
Stephan Bosch [Sat, 20 Nov 2021 23:28:07 +0000 (00:28 +0100)] 
login-common: login-proxy - Wrap IPv6 in [...] for redirect path.

3 years agosubmission-login: submission-proxy - Rename target argument for submission_proxy_...
Stephan Bosch [Sun, 21 Nov 2021 12:15:59 +0000 (13:15 +0100)] 
submission-login: submission-proxy - Rename target argument for submission_proxy_*_redirect().

It makes more sense.

3 years agosubmission-login: submission-proxy - Sanitize response in REFERRAL parse error.
Stephan Bosch [Sun, 21 Nov 2021 12:28:07 +0000 (13:28 +0100)] 
submission-login: submission-proxy - Sanitize response in REFERRAL parse error.

3 years agolib-smtp: smtp-dovecot - Generate and parse referral data as URI authority.
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.

3 years agolib-smtp: smtp-dovecot - Return error from smtp_proxy_redirect_parse().
Stephan Bosch [Sun, 21 Nov 2021 12:03:59 +0000 (13:03 +0100)] 
lib-smtp: smtp-dovecot - Return error from smtp_proxy_redirect_parse().

3 years agolib-smtp: smtp-client-connection - Make sure IPv6 in log prefix is wrapped in [...].
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 [...].

3 years agolib-imap: imap-url - Add imap_url_parse_prefix().
Stephan Bosch [Sat, 20 Nov 2021 13:18:46 +0000 (14:18 +0100)] 
lib-imap: imap-url - Add imap_url_parse_prefix().

3 years agolib: uri-util - Add support for prefix parsing.
Stephan Bosch [Sat, 20 Nov 2021 14:53:36 +0000 (15:53 +0100)] 
lib: uri-util - Add support for prefix parsing.

3 years agolib: uri-util - Make construction of URI host name robust to IP literals.
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.

3 years agolib: uri-util - Use IP over host name string in construction of URI host name.
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.

3 years agolib: uri-util - Fix error message for invalid percent encoding in host name.
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.

3 years agolib: net - Change net_ipport2str() API to assert fail on invalid IP.
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.

3 years agolib-imap: test-imap-url - Split off test_imap_url_valid_check() to reduce indent.
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.

3 years agolib-imap: Reformat test-imap-url.c.
Stephan Bosch [Sat, 20 Nov 2021 14:11:36 +0000 (15:11 +0100)] 
lib-imap: Reformat test-imap-url.c.

3 years agolib-dict: Add dict_lookup_values()
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.

3 years agolib-dict: Change dict_vfuncs.lookup() to support multiple values
Timo Sirainen [Thu, 25 Nov 2021 10:53:26 +0000 (12:53 +0200)] 
lib-dict: Change dict_vfuncs.lookup() to support multiple values

3 years agolib-dict: dict_iterate() - Return NULL as value with DICT_ITERATE_FLAG_NO_VALUE
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().

3 years agolib-sql: Makefile.am - Fix linking unit tests
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.

3 years agolib-dns: Fix leaking idle timeout
Timo Sirainen [Thu, 25 Nov 2021 10:06:38 +0000 (12:06 +0200)] 
lib-dns: Fix leaking idle timeout

3 years agolib: var-expand - Support base64url for hash format
Aki Tuomi [Thu, 10 Oct 2019 09:57:08 +0000 (12:57 +0300)] 
lib: var-expand - Support base64url for hash format

3 years agolib-http: http-url - Improve error messages by showing which character is unexpected.
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.