]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
6 months agolib-http: http_client_init_shared() - Require set to be non-NULL
Timo Sirainen [Tue, 27 Jun 2023 12:06:45 +0000 (15:06 +0300)] 
lib-http: http_client_init_shared() - Require set to be non-NULL

All the callers already provided it, except in unit tests.

6 months agolib-settings, config: Add setting_parser_info.default_filter_settings
Timo Sirainen [Mon, 24 Jul 2023 14:11:11 +0000 (17:11 +0300)] 
lib-settings, config: Add setting_parser_info.default_filter_settings

This can be used to add filter_name/key default settings. Trying to do it
with setting_parser_info.default_settings causes crashes, because they're
attempted to be applied to all the settings structs. An alternative could
have been to just ignore unknown prefix/ settings, but that could have
caused accidentally ignoring real bugs.

6 months agoconfig: Support filter_name/ prefixes in default settings
Timo Sirainen [Mon, 24 Jul 2023 14:10:21 +0000 (17:10 +0300)] 
config: Support filter_name/ prefixes in default settings

This allows giving defaults to specific filters in the code. For example
to specify defaults for auth_policy { ... } :

static const struct setting_keyvalue auth_default_filter_settings_keyvalue[] = {
       { "auth_policy/http_client_request_absolute_timeout", "2s" },
       { NULL, NULL }
};

The earlier code supported only named array filters, not named filters.

6 months agoconfig: config_add_new_parser() - Add explicit root parameter
Timo Sirainen [Mon, 24 Jul 2023 14:09:35 +0000 (17:09 +0300)] 
config: config_add_new_parser() - Add explicit root parameter

This is needed by the next commit.

6 months agolib-ssl-iostream: Reference ssl_*settings instead of duplicating its strings
Timo Sirainen [Fri, 16 Jun 2023 20:07:37 +0000 (23:07 +0300)] 
lib-ssl-iostream: Reference ssl_*settings instead of duplicating its strings

6 months agolib-storage: Remove unused mail_storage_service_user_init_ssl_client_settings()
Timo Sirainen [Fri, 16 Jun 2023 19:57:52 +0000 (22:57 +0300)] 
lib-storage: Remove unused mail_storage_service_user_init_ssl_client_settings()

6 months agolib-storage: Remove mail_user.ssl_set
Timo Sirainen [Fri, 16 Jun 2023 19:56:57 +0000 (22:56 +0300)] 
lib-storage: Remove mail_user.ssl_set

6 months agodoveadm: Remove unused doveadm_get_ssl_settings()
Timo Sirainen [Fri, 16 Jun 2023 19:53:14 +0000 (22:53 +0300)] 
doveadm: Remove unused doveadm_get_ssl_settings()

6 months agolib-fs, global: Remove fs_settings.ssl_client_set
Timo Sirainen [Fri, 16 Jun 2023 19:52:10 +0000 (22:52 +0300)] 
lib-fs, global: Remove fs_settings.ssl_client_set

The fs-drivers are now expected to let lib-ssl-iostream pull the settings.

6 months agologin-common: Use io_stream_autocreate_ssl_client()
Timo Sirainen [Fri, 16 Jun 2023 19:43:49 +0000 (22:43 +0300)] 
login-common: Use io_stream_autocreate_ssl_client()

6 months agolib-ssl-iostream: Add SSL_IOSTREAM_FLAG_DISABLE_CA_FILES
Timo Sirainen [Fri, 16 Jun 2023 19:41:51 +0000 (22:41 +0300)] 
lib-ssl-iostream: Add SSL_IOSTREAM_FLAG_DISABLE_CA_FILES

6 months agopop3c: Use io_stream_autocreate_ssl_client()
Timo Sirainen [Fri, 16 Jun 2023 19:32:32 +0000 (22:32 +0300)] 
pop3c: Use io_stream_autocreate_ssl_client()

6 months agolib-imap-client: Use io_stream_autocreate_ssl_client()
Timo Sirainen [Fri, 16 Jun 2023 19:26:22 +0000 (22:26 +0300)] 
lib-imap-client: Use io_stream_autocreate_ssl_client()

This removes passdb imap's ssl-specific args.

6 months agolib-doveadm, doveadm: Use io_stream_autocreate_ssl_client()
Timo Sirainen [Fri, 16 Jun 2023 15:05:43 +0000 (18:05 +0300)] 
lib-doveadm, doveadm: Use io_stream_autocreate_ssl_client()

This also removes doveadm_client_settings.{ssl_set|ssl_ctx}

6 months agoglobal: Avoid specifying http_client_settings.ssl when possible
Timo Sirainen [Fri, 16 Jun 2023 14:35:11 +0000 (17:35 +0300)] 
global: Avoid specifying http_client_settings.ssl when possible

lib-http will now automatically pull the ssl settings.

6 months agolib-http: If http_client_settings.ssl is NULL, lookup settings automatically
Timo Sirainen [Fri, 16 Jun 2023 14:25:30 +0000 (17:25 +0300)] 
lib-http: If http_client_settings.ssl is NULL, lookup settings automatically

Remove the "unconfigured ssl" unit tests, since these are no longer
relevant.

6 months agolib-master: Remove unused master_service.ssl_ctx_initialized
Timo Sirainen [Fri, 16 Jun 2023 14:11:22 +0000 (17:11 +0300)] 
lib-master: Remove unused master_service.ssl_ctx_initialized

master_service_ssl_ctx_init() is called only once at startup, so there is no
need to support calling it multiple times.

6 months agolib-master: Use ssl_server_settings_to_iostream_set() to get server context settings
Timo Sirainen [Fri, 16 Jun 2023 14:08:18 +0000 (17:08 +0300)] 
lib-master: Use ssl_server_settings_to_iostream_set() to get server context settings

6 months agolib-master: Store initialized ssl context into iostream-ssl-context-cache
Timo Sirainen [Fri, 16 Jun 2023 14:05:00 +0000 (17:05 +0300)] 
lib-master: Store initialized ssl context into iostream-ssl-context-cache

6 months agolib-master: Remove unused master_service_ssl_init()
Timo Sirainen [Fri, 16 Jun 2023 14:04:17 +0000 (17:04 +0300)] 
lib-master: Remove unused master_service_ssl_init()

6 months agodoveadm: Use io_stream_autocreate_ssl_server()
Timo Sirainen [Fri, 16 Jun 2023 14:02:14 +0000 (17:02 +0300)] 
doveadm: Use io_stream_autocreate_ssl_server()

6 months agolib-http: Use io_stream_autocreate_ssl_server()
Timo Sirainen [Fri, 16 Jun 2023 13:59:35 +0000 (16:59 +0300)] 
lib-http: Use io_stream_autocreate_ssl_server()

6 months agolib-smtp: Remove smtp_submit_input.ssl
Timo Sirainen [Fri, 16 Jun 2023 19:48:26 +0000 (22:48 +0300)] 
lib-smtp: Remove smtp_submit_input.ssl

The ssl settings are no longer passed through to lib-smtp. Instead,
lib-ssl-iostream will pull the settings automatically.

6 months agoglobal: Avoid specifying smtp_client_settings.ssl when possible
Timo Sirainen [Fri, 16 Jun 2023 15:00:11 +0000 (18:00 +0300)] 
global: Avoid specifying smtp_client_settings.ssl when possible

lib-smtp will now automatically pull the ssl settings.

6 months agolib-smtp: If smtp_client_settings.ssl is NULL, lookup settings automatically
Timo Sirainen [Fri, 16 Jun 2023 14:54:39 +0000 (17:54 +0300)] 
lib-smtp: If smtp_client_settings.ssl is NULL, lookup settings automatically

Remove the "unconfigured ssl" unit tests, since these are no longer
relevant.

6 months agolib-smtp: Add smtp_client_settings.ssl_allow_invalid_cert
Timo Sirainen [Fri, 16 Jun 2023 14:51:18 +0000 (17:51 +0300)] 
lib-smtp: Add smtp_client_settings.ssl_allow_invalid_cert

6 months agolib-smtp: Use io_stream_autocreate_ssl_server()
Timo Sirainen [Fri, 16 Jun 2023 13:25:38 +0000 (16:25 +0300)] 
lib-smtp: Use io_stream_autocreate_ssl_server()

6 months agologin-common: Use io_stream_autocreate_ssl_server()
Timo Sirainen [Wed, 14 Jun 2023 12:06:43 +0000 (15:06 +0300)] 
login-common: Use io_stream_autocreate_ssl_server()

6 months agolib-ssl-iostream, global: io_stream_*create_ssl_client() - Add flags parameter
Timo Sirainen [Fri, 16 Jun 2023 14:44:33 +0000 (17:44 +0300)] 
lib-ssl-iostream, global: io_stream_*create_ssl_client() - Add flags parameter

Add SSL_IOSTREAM_FLAG_ALLOW_INVALID_CERT initially, which allows enabling
ssl_iostream_settings.allow_invalid_cert after context is already created.

6 months agolib-ssl-iostream: Add io_stream_autocreate_ssl_client/server()
Timo Sirainen [Wed, 14 Jun 2023 11:58:48 +0000 (14:58 +0300)] 
lib-ssl-iostream: Add io_stream_autocreate_ssl_client/server()

6 months agolib-ssl-iostream, global: ssl_iostream_*_context_cache_get() - Return error message...
Timo Sirainen [Fri, 16 Jun 2023 13:34:26 +0000 (16:34 +0300)] 
lib-ssl-iostream, global: ssl_iostream_*_context_cache_get() - Return error message prefix

Callers no longer have to prefix the returned error with e.g.
"Couldn't initialize SSL context:"

6 months agolib-master, global: Move master-service-ssl-settings to lib-ssl-iostream/ssl-settings
Timo Sirainen [Fri, 16 Jun 2023 13:04:31 +0000 (16:04 +0300)] 
lib-master, global: Move master-service-ssl-settings to lib-ssl-iostream/ssl-settings

6 months agolib-master, global: Rename master_service_ssl_*settings to just ssl_*settings
Timo Sirainen [Fri, 16 Jun 2023 12:57:39 +0000 (15:57 +0300)] 
lib-master, global: Rename master_service_ssl_*settings to just ssl_*settings

6 months agolib-ssl-iostream: Add ssl_iostream_get_allow_invalid_cert()
Timo Sirainen [Fri, 16 Jun 2023 14:30:22 +0000 (17:30 +0300)] 
lib-ssl-iostream: Add ssl_iostream_get_allow_invalid_cert()

6 months agolib-ssl-iostream: ssl_iostream_settings_equals() - Rewrite to be simpler
Timo Sirainen [Fri, 16 Jun 2023 12:31:18 +0000 (15:31 +0300)] 
lib-ssl-iostream: ssl_iostream_settings_equals() - Rewrite to be simpler

The ssl_iostream_settings_string_offsets[] table was unnecessarily confusing
especially now that this function was the only user of the table.

6 months agolib-ssl-iostream: Remove unused ssl_iostream_settings_dup() and ssl_iostream_settings...
Timo Sirainen [Fri, 16 Jun 2023 12:21:49 +0000 (15:21 +0300)] 
lib-ssl-iostream: Remove unused ssl_iostream_settings_dup() and ssl_iostream_settings_init_from()

6 months agolib-ssl-iostream: test-iostream-ssl - Avoid ssl_iostream_settings_dup()
Timo Sirainen [Fri, 16 Jun 2023 12:20:23 +0000 (15:20 +0300)] 
lib-ssl-iostream: test-iostream-ssl - Avoid ssl_iostream_settings_dup()

This is the only place still using the function, and it's not really
necessary.

6 months agolib-ssl-iostream: ssl_iostream_*_context_cache_get() - Reference settings instead...
Timo Sirainen [Fri, 16 Jun 2023 12:19:59 +0000 (15:19 +0300)] 
lib-ssl-iostream: ssl_iostream_*_context_cache_get() - Reference settings instead of copying

6 months agolib-ssl-iostream, global: Add ssl_iostream_settings.pool
Timo Sirainen [Fri, 16 Jun 2023 00:00:41 +0000 (03:00 +0300)] 
lib-ssl-iostream, global: Add ssl_iostream_settings.pool

Change all callers to set and use the pool properly.

6 months agoglobal: unit tests - Add ssl_iostream_context_cache_free() calls
Timo Sirainen [Fri, 16 Jun 2023 13:51:20 +0000 (16:51 +0300)] 
global: unit tests - Add ssl_iostream_context_cache_free() calls

These will be necessary after the following commit, because unit tests are
using ssl_iostream_test_settings_*() calls to fill settings into a variable
in stack. However, the settings pointers may be added to
iostream-ssl-context-cache where they would become invalid.

6 months agolib-ssl-iostream: Don't make a copy of ssl_iostream_settings
Timo Sirainen [Fri, 16 Jun 2023 12:13:39 +0000 (15:13 +0300)] 
lib-ssl-iostream: Don't make a copy of ssl_iostream_settings

Only two booleans are needed from the settings, so there's no need to keep a
copy of everything.

6 months agolib-ssl-iostream: Add comments to struct ssl_iostream_settings
Timo Sirainen [Thu, 15 Jun 2023 23:36:08 +0000 (02:36 +0300)] 
lib-ssl-iostream: Add comments to struct ssl_iostream_settings

6 months agologin-common: Don't set allow_invalid_cert=TRUE anymore for SSL server
Timo Sirainen [Thu, 15 Jun 2023 23:20:12 +0000 (02:20 +0300)] 
login-common: Don't set allow_invalid_cert=TRUE anymore for SSL server

It's now done automatically.

6 months agolib-ssl-iostream: Always set allow_invalid_cert=TRUE for SSL servers
Timo Sirainen [Thu, 15 Jun 2023 21:51:54 +0000 (00:51 +0300)] 
lib-ssl-iostream: Always set allow_invalid_cert=TRUE for SSL servers

The callers are now always expected to check if the client certificates were
valid.

Currently the only servers that even supports client certificates are the
login processes, and they had already set this.

6 months agolib: Add null_pool memory pool
Timo Sirainen [Thu, 15 Jun 2023 17:48:48 +0000 (20:48 +0300)] 
lib: Add null_pool memory pool

6 months agolib-ldap: Support ssl_cipher_list, ssl_min_protocol and ssl_curve_list settings
Timo Sirainen [Wed, 14 Jun 2023 19:02:46 +0000 (22:02 +0300)] 
lib-ldap: Support ssl_cipher_list, ssl_min_protocol and ssl_curve_list settings

6 months agolib-ldap: Fix using ssl_client_cert/key
Timo Sirainen [Wed, 14 Jun 2023 18:54:45 +0000 (21:54 +0300)] 
lib-ldap: Fix using ssl_client_cert/key

The cert/key is in the string itself, they're not paths to files.

6 months agolib: pool_add_external_ref() - Assert-crash if pool/ref_pool is datastack or system...
Timo Sirainen [Wed, 14 Jun 2023 12:18:13 +0000 (15:18 +0300)] 
lib: pool_add_external_ref() - Assert-crash if pool/ref_pool is datastack or system pool

These pools aren't unreferenced, so the reference would leak.

6 months agolib-ssl-iostream, global: io_stream_create_ssl_client/server() - Remove set parameter
Timo Sirainen [Wed, 14 Jun 2023 11:52:22 +0000 (14:52 +0300)] 
lib-ssl-iostream, global: io_stream_create_ssl_client/server() - Remove set parameter

All settings are now context-only.

6 months agolib-ssl-iostream: Remove unnecessary ssl_iostream_settings_drop_stream_only()
Timo Sirainen [Wed, 14 Jun 2023 11:31:36 +0000 (14:31 +0300)] 
lib-ssl-iostream: Remove unnecessary ssl_iostream_settings_drop_stream_only()

6 months agolib-ssl-iostream: Handle empty setting strings as "unset"
Timo Sirainen [Sun, 25 Jun 2023 19:07:00 +0000 (22:07 +0300)] 
lib-ssl-iostream: Handle empty setting strings as "unset"

NULL and empty strings are now handled the same.

6 months agolib-ssl-iostream: Change ssl_iostream_settings.allow_invalid_cert to be context-only
Timo Sirainen [Wed, 14 Jun 2023 11:30:09 +0000 (14:30 +0300)] 
lib-ssl-iostream: Change ssl_iostream_settings.allow_invalid_cert to be context-only

All the callers already set it for context.

6 months agolib-ssl-iostream, global: Remove ssl_iostream_settings.verbose
Timo Sirainen [Wed, 14 Jun 2023 11:15:20 +0000 (14:15 +0300)] 
lib-ssl-iostream, global: Remove ssl_iostream_settings.verbose

This was unnecessary, because all the callers already set the parent event
to debug log level.

6 months agolib-master: Remove verbose_ssl setting
Timo Sirainen [Wed, 14 Jun 2023 11:08:02 +0000 (14:08 +0300)] 
lib-master: Remove verbose_ssl setting

It can be replaced by: log_debug = category=ssl

6 months agolib-ssl-iostream, global: Remove ssl_iostream_settings.verbose_invalid_cert
Timo Sirainen [Wed, 14 Jun 2023 11:04:35 +0000 (14:04 +0300)] 
lib-ssl-iostream, global: Remove ssl_iostream_settings.verbose_invalid_cert

The error about invalid certificate will be included in the SSL iostream's
error string, which the caller will eventually log. There's no need to
have a separate warning logged about it.

6 months agolib-ssl-iostream: Change "Received valid SSL certificate" log level to debug
Timo Sirainen [Wed, 14 Jun 2023 10:49:20 +0000 (13:49 +0300)] 
lib-ssl-iostream: Change "Received valid SSL certificate" log level to debug

There's no reason for it to be info-level. Originally it was intendend
only to be logged when client presented a certificate to server, but at
some point it became changed so that outgoing SSL connections always
logged it.

6 months agolib-ssl-iostream: Change ssl_iostream_settings.cert/alt_cert to be context-only
Timo Sirainen [Wed, 14 Jun 2023 09:34:09 +0000 (12:34 +0300)] 
lib-ssl-iostream: Change ssl_iostream_settings.cert/alt_cert to be context-only

For SSL servers they already had to be context-only. For SSL clients the
alt_cert was never used. The cert setting for SSL clients could
alternatively have been changed to stream-only, but that likely isn't
actually useful/necessary.

6 months agolib-ssl-iostream: Change ssl_iostream_settings.verify_remote_cert to be context-only
Timo Sirainen [Wed, 14 Jun 2023 09:28:35 +0000 (12:28 +0300)] 
lib-ssl-iostream: Change ssl_iostream_settings.verify_remote_cert to be context-only

6 months agolib-ssl-iostream: Change several settings to be context-only
Timo Sirainen [Wed, 14 Jun 2023 09:20:47 +0000 (12:20 +0300)] 
lib-ssl-iostream: Change several settings to be context-only

Changed min_protocol, cipher_list, ciphersuites, curve_list,
cert_username_field and prefer_server_ciphers to be context-only.
All the callers were already providing the same ones anyway to both
the context and the stream.

6 months agolib-ssl-iostream: Fix enabling compression
Timo Sirainen [Wed, 14 Jun 2023 08:54:05 +0000 (11:54 +0300)] 
lib-ssl-iostream: Fix enabling compression

ssl_options = compression didn't actually enable compression.
Although even with this option it may not work, since many OpenSSL packages
have been built without support for compression.

6 months agolib-ssl-iostream: Panic if SSL_CTX_set_tlsext_servername_callback() fails
Timo Sirainen [Wed, 14 Jun 2023 10:36:18 +0000 (13:36 +0300)] 
lib-ssl-iostream: Panic if SSL_CTX_set_tlsext_servername_callback() fails

It shouldn't fail in OpenSSL v1.0.2+.

6 months agolib-master: Remove obsolete comment
Timo Sirainen [Mon, 12 Jun 2023 13:47:50 +0000 (16:47 +0300)] 
lib-master: Remove obsolete comment

6 months agolib-master: Clarify master_service_ssl_server_settings groupings with empty lines
Timo Sirainen [Mon, 26 Jun 2023 21:10:39 +0000 (00:10 +0300)] 
lib-master: Clarify master_service_ssl_server_settings groupings with empty lines

6 months agolib-master, global: Move all SSL server-specific settings to master_service_ssl_serve...
Timo Sirainen [Mon, 12 Jun 2023 13:45:53 +0000 (16:45 +0300)] 
lib-master, global: Move all SSL server-specific settings to master_service_ssl_server_settings

6 months agolib-master: Rename ssl_verify_client_cert setting to ssl_request_client_cert
Timo Sirainen [Mon, 12 Jun 2023 12:24:23 +0000 (15:24 +0300)] 
lib-master: Rename ssl_verify_client_cert setting to ssl_request_client_cert

This clarifies how it works. It's only a request - not a requirement.

6 months agolib-master: Split ssl_client_ca out of ssl_ca
Timo Sirainen [Mon, 12 Jun 2023 10:39:54 +0000 (13:39 +0300)] 
lib-master: Split ssl_client_ca out of ssl_ca

ssl_ca is now used only for server side.

ssl_verify_client_cert also had to be moved to server settings side so
ssl_ca could be verified to be non-empty when ssl_verify_client_cert is set.

6 months agolib-ssl-iostream, login-common: Rename ssl_iostream_get_peer_name() to _get_peer_user...
Timo Sirainen [Thu, 8 Jun 2023 20:26:03 +0000 (23:26 +0300)] 
lib-ssl-iostream, login-common: Rename ssl_iostream_get_peer_name() to _get_peer_username()

It's always using the ssl_cert_username_field to get it, so make it
explicit.

6 months agoauth: Change passdb/userdb events' identifier fields
Timo Sirainen [Sat, 24 Jun 2023 21:22:36 +0000 (00:22 +0300)] 
auth: Change passdb/userdb events' identifier fields

Rename "passdb" and "userdb" to "passdb_driver" and "userdb_driver".

Rename "passdb_name" and "userdb_name" to "passdb" and "userdb".
Additionally this no longer replaces empty name with the driver name.
Now that passdb/userdb { .. } require a name anyway, this wasn't really
relevant.

These changes are necessary to allow overriding any settings inside
passdb/userdb { .. } filters.

6 months agoimap-login: Implement client vfunc reload_config()
Karl Fleischmann [Thu, 13 Jul 2023 14:37:50 +0000 (16:37 +0200)] 
imap-login: Implement client vfunc reload_config()

6 months agoimap-login: imap-login-client - Replace casts with container_of() calls
Karl Fleischmann [Tue, 18 Jul 2023 11:32:14 +0000 (13:32 +0200)] 
imap-login: imap-login-client - Replace casts with container_of() calls

6 months agologin-common: client_sni_callback() - Call new reload_config() vfunc
Karl Fleischmann [Thu, 13 Jul 2023 14:36:50 +0000 (16:36 +0200)] 
login-common: client_sni_callback() - Call new reload_config() vfunc

6 months agodoveadm auth -x: Allow either service=name or protocol=name filters
Timo Sirainen [Sat, 24 Jun 2023 21:05:47 +0000 (00:05 +0300)] 
doveadm auth -x: Allow either service=name or protocol=name filters

It's a bit ambiguous which is correct, so allow both. The name is used for
mail_storage_service as "service", but it ends up going to auth as
"protocol".

6 months agoimap-urlauth-worker: Change protocol to "imap"
Timo Sirainen [Mon, 26 Jun 2023 09:06:06 +0000 (12:06 +0300)] 
imap-urlauth-worker: Change protocol to "imap"

The service is "imap-urlauth-worker", but the protocol is still "imap".

6 months agolib-storage: Add %{protocol} variable
Timo Sirainen [Mon, 26 Jun 2023 09:05:57 +0000 (12:05 +0300)] 
lib-storage: Add %{protocol} variable

6 months agodoveadm auth: Set mail_storage_service_input.protocol instead of service
Timo Sirainen [Mon, 26 Jun 2023 09:12:59 +0000 (12:12 +0300)] 
doveadm auth: Set mail_storage_service_input.protocol instead of service

The service will now be "doveadm" for the lookup, while protocol is what is
given in -x protocol parameter.

6 months agolib-storage, global: Add mail_user.protocol and mail_storage_service_input.protocol
Timo Sirainen [Mon, 26 Jun 2023 09:04:21 +0000 (12:04 +0300)] 
lib-storage, global: Add mail_user.protocol and mail_storage_service_input.protocol

It defaults to same as service, but can be overridden.

6 months agolib-storage: shared storage - Preserve shared user's mail_user.service
Timo Sirainen [Mon, 26 Jun 2023 09:01:08 +0000 (12:01 +0300)] 
lib-storage: shared storage - Preserve shared user's mail_user.service

6 months agolib-auth-client, auth: Rename "service" auth field to "protocol"
Timo Sirainen [Sat, 24 Jun 2023 20:59:37 +0000 (23:59 +0300)] 
lib-auth-client, auth: Rename "service" auth field to "protocol"

auth server still accepts "service" for backwards compatibility.

Increased minor auth protocol version to 3 because of this.

6 months agolib-auth-client, global: Rename auth_user_info.service to protocol
Timo Sirainen [Sat, 24 Jun 2023 20:45:37 +0000 (23:45 +0300)] 
lib-auth-client, global: Rename auth_user_info.service to protocol

This makes it clearer that there is some confusion about services and
protocols. They'll be fixed up in following commits.

6 months agolib-auth-client, global: Rename auth_request_info.service to protocol
Timo Sirainen [Sat, 24 Jun 2023 20:41:10 +0000 (23:41 +0300)] 
lib-auth-client, global: Rename auth_request_info.service to protocol

6 months agoauth: Rename %s / %{service} variables to %{protocol}
Timo Sirainen [Sat, 24 Jun 2023 20:35:25 +0000 (23:35 +0300)] 
auth: Rename %s / %{service} variables to %{protocol}

6 months agologin-common: Rename %s / %{service} variable to %{protocol}
Timo Sirainen [Sat, 24 Jun 2023 20:53:58 +0000 (23:53 +0300)] 
login-common: Rename %s / %{service} variable to %{protocol}

6 months agologin-common: Rename "service" event field to "protocol"
Timo Sirainen [Sat, 24 Jun 2023 20:39:06 +0000 (23:39 +0300)] 
login-common: Rename "service" event field to "protocol"

It already contained the protocol (e.g. "imap") rather than the service
(e.g. "imap-login").

6 months agolib-auth-client, auth: Rename "service" event field to "protocol"
Timo Sirainen [Sat, 24 Jun 2023 20:29:09 +0000 (23:29 +0300)] 
lib-auth-client, auth: Rename "service" event field to "protocol"

6 months agoauth: Rename auth_request.service to protocol
Timo Sirainen [Sat, 24 Jun 2023 20:21:26 +0000 (23:21 +0300)] 
auth: Rename auth_request.service to protocol

6 months agolib-oauth2: Rename X-Dovecot-Auth-Service header to X-Dovecot-Auth-Protocol
Timo Sirainen [Sat, 24 Jun 2023 20:19:08 +0000 (23:19 +0300)] 
lib-oauth2: Rename X-Dovecot-Auth-Service header to X-Dovecot-Auth-Protocol

6 months agolib-oauth2, auth: Rename oauth2_request_input.service to protocol
Timo Sirainen [Sat, 24 Jun 2023 20:18:52 +0000 (23:18 +0300)] 
lib-oauth2, auth: Rename oauth2_request_input.service to protocol

6 months agoauth: Rename service settings lookup functions/variables to protocol settings
Timo Sirainen [Sat, 24 Jun 2023 20:09:50 +0000 (23:09 +0300)] 
auth: Rename service settings lookup functions/variables to protocol settings

They already were using protocol name { .. } settings, so it's more correct
to call them "protocol" internally as well.

6 months agoglobal: Rename specific_services to specific_protocols
Timo Sirainen [Sat, 24 Jun 2023 20:13:58 +0000 (23:13 +0300)] 
global: Rename specific_services to specific_protocols

This describes the list of names better.

6 months agoglobal: Use settings_boollist_get() where possible
Timo Sirainen [Fri, 23 Jun 2023 08:37:39 +0000 (11:37 +0300)] 
global: Use settings_boollist_get() where possible

6 months agolib-settings: Add settings_boollist_get()
Timo Sirainen [Fri, 23 Jun 2023 08:32:20 +0000 (11:32 +0300)] 
lib-settings: Add settings_boollist_get()

6 months agolib-settings: Improve parsing strlist/key/child
Timo Sirainen [Thu, 8 Jun 2023 09:45:30 +0000 (12:45 +0300)] 
lib-settings: Improve parsing strlist/key/child

This is invalid in any case, but it's better to parse it as "key/child"
rather than ignoring the "key" part entirely. This was causing some
confusion when "plugin/mail_plugins/quota=yes" was used, since it was
handled the same as "plugin/quota=yes".

6 months agoauth: Change "passdb_mechanisms" setting to boolean-list
Timo Sirainen [Wed, 7 Jun 2023 11:33:00 +0000 (14:33 +0300)] 
auth: Change "passdb_mechanisms" setting to boolean-list

6 months agoauth: Change "auth_mechanisms" setting to boolean-list
Timo Sirainen [Wed, 7 Jun 2023 11:16:48 +0000 (14:16 +0300)] 
auth: Change "auth_mechanisms" setting to boolean-list

6 months agolib-storage: Change "mail_plugins" setting to boolean-list
Timo Sirainen [Wed, 7 Jun 2023 11:09:31 +0000 (14:09 +0300)] 
lib-storage: Change "mail_plugins" setting to boolean-list

6 months agolib, global: module_dir_*load*() - Change module_names to be an array of strings
Timo Sirainen [Wed, 7 Jun 2023 09:44:14 +0000 (12:44 +0300)] 
lib, global: module_dir_*load*() - Change module_names to be an array of strings

6 months agomaster: Change "protocols" setting to boolean-list
Timo Sirainen [Wed, 7 Jun 2023 08:33:52 +0000 (11:33 +0300)] 
master: Change "protocols" setting to boolean-list

6 months agodoveconf: Make empty boolean-list settings visible as empty strings
Timo Sirainen [Thu, 8 Jun 2023 00:44:51 +0000 (03:44 +0300)] 
doveconf: Make empty boolean-list settings visible as empty strings

6 months agolib-settings: Remove unused setting_parser_context.linenum
Timo Sirainen [Thu, 8 Jun 2023 00:29:07 +0000 (03:29 +0300)] 
lib-settings: Remove unused setting_parser_context.linenum

6 months agolib-settings, config: Add boolean-list (SET_BOOLLIST) type
Timo Sirainen [Tue, 6 Jun 2023 22:07:07 +0000 (01:07 +0300)] 
lib-settings, config: Add boolean-list (SET_BOOLLIST) type

The setting can also be configured as a comma/space separated list:

  list = key1 key2

It can further be modified with SET_STRLIST-like syntax:

list {
  key1 = no
  key3 = yes
  key4 = %{variable}
}

THe end result is an array of keys that were "yes". In this case key2, key3
and maybe key4 depending on the variable.

It's possible to have spaces also in keys, e.g.:

list = "key1 with space", key2
list {
  "key3 with space" = yes
}