]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
17 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}

17 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}

17 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").

17 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"

17 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

17 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

17 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

17 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.

17 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.

17 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

17 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()

17 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".

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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
}

17 months agolib-settings, config: Prepare "strlist" code/comments to be more generic "list"
Timo Sirainen [Wed, 7 Jun 2023 08:31:54 +0000 (11:31 +0300)] 
lib-settings, config: Prepare "strlist" code/comments to be more generic "list"

17 months agoconfig: Support parsing "quoted key"
Timo Sirainen [Wed, 7 Jun 2023 08:27:29 +0000 (11:27 +0300)] 
config: Support parsing "quoted key"

This will be needed for the boolean-list setting type.

17 months agoconfig: Apply setting_parser_info.default_settings to default config
Timo Sirainen [Wed, 7 Jun 2023 08:23:04 +0000 (11:23 +0300)] 
config: Apply setting_parser_info.default_settings to default config

17 months agolib-ssl-iostream: Don't try to load ssl_iostream_openssl module twice
Timo Sirainen [Wed, 7 Jun 2023 09:35:59 +0000 (12:35 +0300)] 
lib-ssl-iostream: Don't try to load ssl_iostream_openssl module twice

Error handling was also not working as expected, because the first load
attempt already called i_fatal()

Forgotten in fe4058e6f01bf0e104c44815b6df7cfefb80634c

17 months agoglobal: Remove support for building without support for modules
Timo Sirainen [Wed, 7 Jun 2023 08:55:29 +0000 (11:55 +0300)] 
global: Remove support for building without support for modules

dlopen() must be supported now.

17 months agoglobal: Remove remaining traces of userdb nss
Timo Sirainen [Wed, 7 Jun 2023 08:54:29 +0000 (11:54 +0300)] 
global: Remove remaining traces of userdb nss

Forgotten in e1abe6d11a9e63995a7e0ff40261973ebc17ad37

17 months agoconfig: Panic if a string type setting has NULL as default
Timo Sirainen [Wed, 7 Jun 2023 10:58:48 +0000 (13:58 +0300)] 
config: Panic if a string type setting has NULL as default

17 months agomaster: Change *_listener_settings.type default to "" instead of NULL
Timo Sirainen [Wed, 7 Jun 2023 10:58:11 +0000 (13:58 +0300)] 
master: Change *_listener_settings.type default to "" instead of NULL

17 months agoconfig: config_all_parsers_check() - Add data stack frame
Timo Sirainen [Mon, 5 Jun 2023 20:32:01 +0000 (23:32 +0300)] 
config: config_all_parsers_check() - Add data stack frame

17 months agoglobal: Use SET_VALUE_INFINITE for infinite idle_time
Timo Sirainen [Sun, 4 Jun 2023 22:16:43 +0000 (01:16 +0300)] 
global: Use SET_VALUE_INFINITE for infinite idle_time

17 months agolib-settings, config: Add "unlimited" value for uint/size and "infinite" for time...
Timo Sirainen [Sun, 4 Jun 2023 21:48:57 +0000 (00:48 +0300)] 
lib-settings, config: Add "unlimited" value for uint/size and "infinite" for time/time_msecs

This is converted to the maximum size of the number.

17 months agomaster: Remove default_* numeric service settings
Timo Sirainen [Sun, 4 Jun 2023 22:13:37 +0000 (01:13 +0300)] 
master: Remove default_* numeric service settings

The global service_* settings are used instead.

The default_internal_user, default_internal_group and default_login_user
settigs are kept for now, since they're used as variables for listeners.

17 months agoglobal: Remove default service settings from structs
Timo Sirainen [Sun, 4 Jun 2023 22:12:31 +0000 (01:12 +0300)] 
global: Remove default service settings from structs

17 months agoconfig: Don't add numeric default service settings that are 0
Timo Sirainen [Sun, 4 Jun 2023 22:07:07 +0000 (01:07 +0300)] 
config: Don't add numeric default service settings that are 0

This will allow using glboal service_* settings when they're not
explicitly overridden by service { .. } settings.

17 months agoimap: Fix sending unexpanded mail_log_prefix to imap-hibernate
Timo Sirainen [Sun, 4 Jun 2023 20:59:46 +0000 (23:59 +0300)] 
imap: Fix sending unexpanded mail_log_prefix to imap-hibernate

imap-hibernate is supposed to expand it itself, otherwise at least %{pid}
contains the old imap process's pid rather than imap-hibernate's.

Broken by recent changes.

17 months agolib-settings: Remove unnecessary includes and macro
Timo Sirainen [Fri, 2 Jun 2023 20:03:24 +0000 (23:03 +0300)] 
lib-settings: Remove unnecessary includes and macro

17 months agolib-settings: Remove unused settings_parser_dup()
Timo Sirainen [Fri, 2 Jun 2023 20:02:17 +0000 (23:02 +0300)] 
lib-settings: Remove unused settings_parser_dup()

17 months agolib-settings: Remove setting change tracking
Timo Sirainen [Fri, 2 Jun 2023 20:01:01 +0000 (23:01 +0300)] 
lib-settings: Remove setting change tracking

It was used only by config process, which now does it internally.

17 months agolib-settings: Remove SETTING_DEFINE_STRUCT_STR_VARS*() macros
Timo Sirainen [Thu, 1 Jun 2023 21:47:01 +0000 (00:47 +0300)] 
lib-settings: Remove SETTING_DEFINE_STRUCT_STR_VARS*() macros

17 months agoglobal: Replace all STR_VARS settings with STR
Timo Sirainen [Thu, 1 Jun 2023 21:36:13 +0000 (00:36 +0300)] 
global: Replace all STR_VARS settings with STR

17 months agolib: Remove [CONST_]STRUCT_MEMBER_P() macros
Timo Sirainen [Wed, 31 May 2023 21:42:52 +0000 (00:42 +0300)] 
lib: Remove [CONST_]STRUCT_MEMBER_P() macros

Use [CONST_]PTR_OFFSET() instead.

17 months agoglobal: Replace STRUCT_MEMBER_P() with PTR_OFFSET()
Timo Sirainen [Wed, 31 May 2023 21:42:15 +0000 (00:42 +0300)] 
global: Replace STRUCT_MEMBER_P() with PTR_OFFSET()

These macros do the same thing.

17 months agolib-settings, config: Support %variables for all setting types
Timo Sirainen [Wed, 31 May 2023 00:42:16 +0000 (03:42 +0300)] 
lib-settings, config: Support %variables for all setting types

17 months agoconfig: Remove config_module_parser.parser
Timo Sirainen [Wed, 31 May 2023 00:36:30 +0000 (03:36 +0300)] 
config: Remove config_module_parser.parser

17 months agoconfig: test-config-parser - Change to work without config_module_parser.parser
Timo Sirainen [Wed, 31 May 2023 00:19:04 +0000 (03:19 +0300)] 
config: test-config-parser - Change to work without config_module_parser.parser

17 months agoconfig: Build a new setting_parser_context when checking settings
Timo Sirainen [Wed, 31 May 2023 00:07:18 +0000 (03:07 +0300)] 
config: Build a new setting_parser_context when checking settings

17 months agoconfig: config_export_type() - Remove unnecessary parameters
Timo Sirainen [Tue, 30 May 2023 23:38:37 +0000 (02:38 +0300)] 
config: config_export_type() - Remove unnecessary parameters

17 months agoconfig: Export settings without setting_parser_context
Timo Sirainen [Tue, 30 May 2023 22:33:46 +0000 (01:33 +0300)] 
config: Export settings without setting_parser_context

17 months agoconfig: Change setting lookup functions to work without setting_parser_context
Timo Sirainen [Tue, 30 May 2023 21:52:38 +0000 (00:52 +0300)] 
config: Change setting lookup functions to work without setting_parser_context

17 months agoconfig: Expand $setting without setting_parser_context
Timo Sirainen [Tue, 30 May 2023 21:48:49 +0000 (00:48 +0300)] 
config: Expand $setting without setting_parser_context

17 months agoconfig: Track settings in config_module_parser independently of setting_parser_context
Timo Sirainen [Tue, 30 May 2023 21:46:09 +0000 (00:46 +0300)] 
config: Track settings in config_module_parser independently of setting_parser_context

17 months agolib-settings: Replace SETTINGS_EVENT_FILTER_NAME_REQUIRED with settings_try_get()
Timo Sirainen [Tue, 1 Aug 2023 11:29:03 +0000 (14:29 +0300)] 
lib-settings: Replace SETTINGS_EVENT_FILTER_NAME_REQUIRED with settings_try_get()

17 months agolib-settings: Support multiple filter names with strlist
Timo Sirainen [Tue, 1 Aug 2023 11:17:45 +0000 (14:17 +0300)] 
lib-settings: Support multiple filter names with strlist

17 months agolib-settings: Redesign settings override handling
Timo Sirainen [Thu, 8 Jun 2023 00:00:21 +0000 (03:00 +0300)] 
lib-settings: Redesign settings override handling

The previous method had too many assumptions that weren't always correct,
e.g. overriding strlist entries didn't work correctly.

17 months agolib-settings: Split off settings_key_part_find()
Timo Sirainen [Wed, 7 Jun 2023 23:57:40 +0000 (02:57 +0300)] 
lib-settings: Split off settings_key_part_find()

17 months agolib-settings, config: Replace SET_STR to be use %variables
Timo Sirainen [Fri, 26 May 2023 10:44:50 +0000 (13:44 +0300)] 
lib-settings, config: Replace SET_STR to be use %variables

This removes the SET_STR_VARS type, but leaves some macros.

17 months agolib, global: event_filter_merge*() - Support merging also with AND operator
Timo Sirainen [Wed, 7 Jun 2023 21:15:05 +0000 (00:15 +0300)] 
lib, global: event_filter_merge*() - Support merging also with AND operator

17 months agoglobal: Use SET_STR_NOVARS for settings that shouldn't be expanded by config
Timo Sirainen [Fri, 26 May 2023 10:41:30 +0000 (13:41 +0300)] 
global: Use SET_STR_NOVARS for settings that shouldn't be expanded by config

These settings are mostly expanded with explicit var_expand*() calls.
There are also two special cases:
 * log_timestamp - expansion happens with strftime()
 * listen & inet_listener { address } - These have trouble with %scope, so
   at least for now variables are completely disabled for them.

17 months agolib-settings: Add SET_STR_NOVARS type
Timo Sirainen [Fri, 26 May 2023 10:37:42 +0000 (13:37 +0300)] 
lib-settings: Add SET_STR_NOVARS type

This is in preparation for making SET_STR_VARS the default string type,
except for a few problematic cases.

17 months agolib-settings, global: Remove SETTING_STRVAR_* prefix from variable strings
Timo Sirainen [Sun, 28 May 2023 21:06:24 +0000 (00:06 +0300)] 
lib-settings, global: Remove SETTING_STRVAR_* prefix from variable strings

17 months agolib-storage: Track unexpanded_[mail_]location overrides without the use of SETTING_ST...
Timo Sirainen [Sun, 28 May 2023 21:02:21 +0000 (00:02 +0300)] 
lib-storage: Track unexpanded_[mail_]location overrides without the use of SETTING_STRVAR_* prefix

This is in preparation for removing the prefix.

17 months agolib-settings: Remove unused settings_var_expand*()
Timo Sirainen [Sun, 28 May 2023 20:48:23 +0000 (23:48 +0300)] 
lib-settings: Remove unused settings_var_expand*()

17 months agolib-settings: Expand variables without the use of SETTING_STRVAR_* prefix
Timo Sirainen [Sun, 28 May 2023 20:30:33 +0000 (23:30 +0300)] 
lib-settings: Expand variables without the use of SETTING_STRVAR_* prefix

This is in preparation for removing the prefix.

17 months agolib-settings: Apply settings in reverse order of filter specificity
Timo Sirainen [Mon, 29 May 2023 21:02:11 +0000 (00:02 +0300)] 
lib-settings: Apply settings in reverse order of filter specificity

Instead of going from least specific filter to most specific, do it in
reverse. This is going to help with variable expansions in a following
commit.

17 months agolib-settings: Move struct settings_mmap_pool earlier
Timo Sirainen [Mon, 29 May 2023 20:30:34 +0000 (23:30 +0300)] 
lib-settings: Move struct settings_mmap_pool earlier

17 months agolib-settings: settings_override_get_value() - Unalias the returned key
Timo Sirainen [Sun, 4 Jun 2023 21:19:30 +0000 (00:19 +0300)] 
lib-settings: settings_override_get_value() - Unalias the returned key

17 months agolib-settings: Lookup override setting keys only once
Timo Sirainen [Sun, 28 May 2023 20:09:55 +0000 (23:09 +0300)] 
lib-settings: Lookup override setting keys only once

After the key is found, remember its index so it can be directly used.

17 months agoconfig: Use setting_parser_info_get_define_count()
Timo Sirainen [Tue, 30 May 2023 15:15:49 +0000 (18:15 +0300)] 
config: Use setting_parser_info_get_define_count()

17 months agolib-settings: Add setting_parser_info_get_define_count()
Timo Sirainen [Tue, 30 May 2023 15:14:02 +0000 (18:14 +0300)] 
lib-settings: Add setting_parser_info_get_define_count()

17 months agolib-settings: If we already found out setting doesn't exist, don't try to parse it
Timo Sirainen [Sun, 28 May 2023 20:09:10 +0000 (23:09 +0300)] 
lib-settings: If we already found out setting doesn't exist, don't try to parse it

17 months agolib-settings: Remove unnecessary data stack frames
Timo Sirainen [Sun, 28 May 2023 19:33:33 +0000 (22:33 +0300)] 
lib-settings: Remove unnecessary data stack frames

settings_get_full() already has the only necessary data stack frame.

17 months agolib-settings: Remove unused setting_parser_info.expand_check_func()
Timo Sirainen [Sat, 27 May 2023 22:22:38 +0000 (01:22 +0300)] 
lib-settings: Remove unused setting_parser_info.expand_check_func()

check_func() can now be used instead.

17 months agolib-storage: Avoid using setting_parser_info.expand_check_func()
Timo Sirainen [Sat, 27 May 2023 22:21:28 +0000 (01:21 +0300)] 
lib-storage: Avoid using setting_parser_info.expand_check_func()

It can now be done in check_func().

17 months agolib-storage: Move parse_postmaster_address() earlier
Timo Sirainen [Sat, 27 May 2023 22:20:28 +0000 (01:20 +0300)] 
lib-storage: Move parse_postmaster_address() earlier

17 months agolib-settings: settings_get*() - Call check_func()s only after variable expansion
Timo Sirainen [Sat, 27 May 2023 22:02:24 +0000 (01:02 +0300)] 
lib-settings: settings_get*() - Call check_func()s only after variable expansion

17 months agolib-storage: Set unexpanded_[mail_]location using setting_apply()
Timo Sirainen [Sat, 27 May 2023 20:52:19 +0000 (23:52 +0300)] 
lib-storage: Set unexpanded_[mail_]location using setting_apply()

It's always expected to be called, because config sends also the default
settings.

17 months agolib-settings: Call setting_apply() for default settings
Timo Sirainen [Mon, 5 Jun 2023 08:37:42 +0000 (11:37 +0300)] 
lib-settings: Call setting_apply() for default settings

Otherwise if config process doesn't explicitly send the default setting,
setting_appy() isn't called. Also it won't happen if -O parameter is used
to disable reading configuration. This in turn causes assert-crashes after
following changes that rely on setting_apply() being called.

For now this is called only for strings with variables, since it's the only
thing needed for now, and there's no easy way to convert non-strings into
string in lib-settings. This could be changed later if necessary.

17 months agolib-storage: Don't generate postmaster_address if it's empty
Timo Sirainen [Sat, 27 May 2023 22:15:08 +0000 (01:15 +0300)] 
lib-storage: Don't generate postmaster_address if it's empty

The default postmaster_address is nowadays generated using %variables.
There is no need for the legacy method of generating it in a slightly
different way when its value is empty.

17 months agolib-settings: Add setting_parser_info.settings_apply()
Timo Sirainen [Sat, 27 May 2023 20:23:50 +0000 (23:23 +0300)] 
lib-settings: Add setting_parser_info.settings_apply()

17 months agolib-settings: Split off settings_mmap_apply_key()
Timo Sirainen [Mon, 29 May 2023 20:18:39 +0000 (23:18 +0300)] 
lib-settings: Split off settings_mmap_apply_key()

17 months agolib-settings: Add SETTINGS_EVENT_FILTER_NAME_REQUIRED
Timo Sirainen [Mon, 24 Jul 2023 11:12:12 +0000 (14:12 +0300)] 
lib-settings: Add SETTINGS_EVENT_FILTER_NAME_REQUIRED

17 months agolib-settings: Add struct settings_apply_ctx to pass around parameters
Timo Sirainen [Mon, 29 May 2023 20:02:51 +0000 (23:02 +0300)] 
lib-settings: Add struct settings_apply_ctx to pass around parameters

17 months agolib-settings: Set setting structs' pool field early on
Timo Sirainen [Mon, 29 May 2023 19:18:15 +0000 (22:18 +0300)] 
lib-settings: Set setting structs' pool field early on

17 months agosubmission[-login]: Change submission_backend_capabilities empty value handling
Timo Sirainen [Sun, 4 Jun 2023 19:21:50 +0000 (22:21 +0300)] 
submission[-login]: Change submission_backend_capabilities empty value handling

Empty value (instead of NULL) now means to propagate the backend
capabilities. To disable all capabilities, use "none".

17 months agoimap-urlauth: Change imap_urlauth_stream/submit_user default to ""
Timo Sirainen [Sun, 4 Jun 2023 19:16:48 +0000 (22:16 +0300)] 
imap-urlauth: Change imap_urlauth_stream/submit_user default to ""

There's no reason for it to be NULL. It's just complicating everything.

17 months agoglobal: Use namespace name in log messages instead of prefix
Timo Sirainen [Sun, 4 Jun 2023 19:07:52 +0000 (22:07 +0300)] 
global: Use namespace name in log messages instead of prefix

17 months agolib-storage: Change namespace/alias_for to point to namespace name, not prefix
Timo Sirainen [Sun, 4 Jun 2023 18:50:54 +0000 (21:50 +0300)] 
lib-storage: Change namespace/alias_for to point to namespace name, not prefix

The following changes require the default config to be sent to config
clients, and it doesn't differentiate between NULL and empty string.
Without this change, there would be no way to differentiate between
no alias_for vs. alias_for for prefix="" namespace. Also this makes
more sense anyway now that namespaces are required to have a name.

17 months agoconfig: Execute external hooks only when necessary
Timo Sirainen [Sun, 28 May 2023 19:10:26 +0000 (22:10 +0300)] 
config: Execute external hooks only when necessary

The hooks are used currently just by managesieve-login to get default Sieve
capabilities by running managesieve process. This is necessary only when
running the "config" process. Also do it when running "doveconf" manually.
Do not do it when running e.g. doveadm which executes doveconf to read
configuration.

17 months agolib: Add ARRAY_TYPE(bool)
Timo Sirainen [Sun, 28 May 2023 20:30:01 +0000 (23:30 +0300)] 
lib: Add ARRAY_TYPE(bool)

17 months agolib-storage: Replace mail_attribute_dict with mail_attribute filter
Timo Sirainen [Wed, 19 Apr 2023 21:18:56 +0000 (00:18 +0300)] 
lib-storage: Replace mail_attribute_dict with mail_attribute filter

Replace e.g.:

mail_attribute_dict = proxy::foo

with:

mail_attribute {
  dict_driver = proxy
  dict_proxy_name = foo
}

18 months agolib-mail: Explicitly return -1/1/0 for RFC2231 parameter comparisons
Fred Morcos [Mon, 10 Feb 2025 13:30:58 +0000 (14:30 +0100)] 
lib-mail: Explicitly return -1/1/0 for RFC2231 parameter comparisons

This avoids an out of range cast stemming from casting unsigned values to signed.

18 months agolib-mail: Check message boundary length when we have trailing dashes
Fred Morcos [Mon, 10 Feb 2025 13:29:55 +0000 (14:29 +0100)] 
lib-mail: Check message boundary length when we have trailing dashes

This avoids a subtraction resulting in values < 0 in an unsigned value.

18 months agolib: ostream-file - Unset TCP_NODELAY only when stream is written uncorked
Timo Sirainen [Mon, 21 Oct 2024 06:30:46 +0000 (09:30 +0300)] 
lib: ostream-file - Unset TCP_NODELAY only when stream is written uncorked

The previous behavior was always to set TCP_NODELAY and unset it immediately
when uncorking the stream. But if stream is only written to while it's
corked, this adds unnecessary setsockopt() calls for every uncork.

The current behavior is to unset TCP_NODELAY only if data is written to
ostream while it's not corked.

18 months agofts: Remove explicit handling of filename* parameter
Fred Morcos [Mon, 20 Jan 2025 15:33:36 +0000 (16:33 +0100)] 
fts: Remove explicit handling of filename* parameter

18 months agolib-mail: Add tests for attachment detection
Julien Arnoux [Wed, 3 May 2023 08:43:37 +0000 (10:43 +0200)] 
lib-mail: Add tests for attachment detection

18 months agolib-mail: Add more RFC2231 parser tests
Fred Morcos [Thu, 23 Jan 2025 13:52:26 +0000 (14:52 +0100)] 
lib-mail: Add more RFC2231 parser tests

18 months agolib-mail: Fix & unify RFC2231 parsing behavior
Fred Morcos [Mon, 20 Jan 2025 15:59:42 +0000 (16:59 +0100)] 
lib-mail: Fix & unify RFC2231 parsing behavior

Previously, this parser behaved a bit strangely:

- It parsed key* and key as separate pairs because "extended" keys are being kept in a
different container than classical keys.

- It also kept key*0,*1,*2,etc. pairs in that same separate container of extended keys.

- It treated the entire indexed parameter sequence as NOT rfc2231-parameters when key* and
key*0 were being provided. Meaning it treated key* and key*0,*1,*2 pairs as part of the
same sequence with an error in indexing, while they are in fact separate pairs with a key
naming clash.

This new implementation tries to avoid said pitfalls.

18 months agolib-mail: Fix comment formatting
Fred Morcos [Mon, 16 Dec 2024 12:56:33 +0000 (13:56 +0100)] 
lib-mail: Fix comment formatting

18 months agoglobal: Fix whitespace
Fred Morcos [Fri, 13 Dec 2024 14:57:37 +0000 (15:57 +0100)] 
global: Fix whitespace

18 months ago.gitignore: Ignore valgrind coredump files
Fred Morcos [Mon, 27 Jan 2025 10:51:33 +0000 (11:51 +0100)] 
.gitignore: Ignore valgrind coredump files