From 5ee0d575f390253f2d7cc66b3516194729c69eee Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Tue, 27 Aug 2024 19:49:44 +0200 Subject: [PATCH] lib-sieve: Drop old settings infrastructure --- src/lib-sieve-tool/sieve-tool.c | 19 -- src/lib-sieve/Makefile.am | 2 - .../environment/ext-vnd-environment-items.c | 1 - src/lib-sieve/sieve-actions.c | 1 - src/lib-sieve/sieve-address-source.c | 19 -- src/lib-sieve/sieve-address-source.h | 3 - src/lib-sieve/sieve-common.h | 17 ++ src/lib-sieve/sieve-script.c | 1 - src/lib-sieve/sieve-settings.old.c | 191 ------------------ src/lib-sieve/sieve-settings.old.h | 51 ----- src/lib-sieve/sieve-storage-sync.c | 1 - src/lib-sieve/sieve-storage.c | 1 - src/lib-sieve/sieve-types.h | 3 - src/lib-sieve/sieve.c | 1 - .../storage/file/sieve-file-storage.c | 1 - src/managesieve/managesieve-capabilities.c | 58 +----- src/managesieve/managesieve-client.c | 21 +- src/managesieve/managesieve-settings.c | 17 -- src/managesieve/managesieve-settings.h | 6 - src/plugins/doveadm-sieve/doveadm-sieve-cmd.c | 19 +- .../doveadm-sieve/doveadm-sieve-sync.c | 18 +- .../imap-filter-sieve/imap-filter-sieve.c | 18 +- src/plugins/imapsieve/imap-sieve.c | 18 +- src/plugins/lda-sieve/lda-sieve-plugin.c | 33 +-- .../sieve-extprograms-common.c | 1 - src/testsuite/cmd-test-config.c | 1 - src/testsuite/testsuite-settings.c | 44 ---- src/testsuite/testsuite-settings.h | 2 - src/testsuite/testsuite.c | 3 - 29 files changed, 27 insertions(+), 544 deletions(-) delete mode 100644 src/lib-sieve/sieve-settings.old.c delete mode 100644 src/lib-sieve/sieve-settings.old.h diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 6937c9f3f..6765082c6 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -70,24 +70,6 @@ struct sieve_tool *sieve_tool; * Settings management */ -static const char * -sieve_tool_sieve_get_setting(struct sieve_instance *svinst, void *context, - const char *identifier) -{ - struct sieve_tool *tool = (struct sieve_tool *)context; - - if (tool->setting_callback != NULL) { - return tool->setting_callback(svinst, - tool->setting_callback_context, - identifier); - } - - if (tool->mail_user_dovecot == NULL) - return NULL; - - return mail_user_plugin_getenv(tool->mail_user_dovecot, identifier); -} - static const char * sieve_tool_sieve_get_homedir(struct sieve_instance *svinst ATTR_UNUSED, void *context) @@ -99,7 +81,6 @@ sieve_tool_sieve_get_homedir(struct sieve_instance *svinst ATTR_UNUSED, const struct sieve_callbacks sieve_tool_callbacks = { sieve_tool_sieve_get_homedir, - sieve_tool_sieve_get_setting, }; /* diff --git a/src/lib-sieve/Makefile.am b/src/lib-sieve/Makefile.am index d697ee9d6..a0a1199b8 100644 --- a/src/lib-sieve/Makefile.am +++ b/src/lib-sieve/Makefile.am @@ -97,7 +97,6 @@ libdovecot_sieve_la_LIBADD = \ $(LIBDOVECOT) libdovecot_sieve_la_SOURCES = \ - sieve-settings.old.c \ sieve-settings.c \ sieve-message.c \ sieve-smtp.c \ @@ -147,7 +146,6 @@ headers = \ sieve-common.h \ sieve-limits.h \ sieve-settings.h \ - sieve-settings.old.h \ sieve-message.h \ sieve-smtp.h \ sieve-lexer.h \ diff --git a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c index f1113e37c..6f5dab8fc 100644 --- a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c +++ b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c @@ -4,7 +4,6 @@ #include "lib.h" #include "array.h" -#include "sieve-settings.old.h" #include "sieve-extensions.h" #include "sieve-commands.h" #include "sieve-comparators.h" diff --git a/src/lib-sieve/sieve-actions.c b/src/lib-sieve/sieve-actions.c index f7e01ff8d..b2d3110dc 100644 --- a/src/lib-sieve/sieve-actions.c +++ b/src/lib-sieve/sieve-actions.c @@ -19,7 +19,6 @@ #include "rfc2822.h" #include "sieve-code.h" -#include "sieve-settings.old.h" #include "sieve-extensions.h" #include "sieve-binary.h" #include "sieve-interpreter.h" diff --git a/src/lib-sieve/sieve-address-source.c b/src/lib-sieve/sieve-address-source.c index db8979a2d..ce591d8c4 100644 --- a/src/lib-sieve/sieve-address-source.c +++ b/src/lib-sieve/sieve-address-source.c @@ -5,7 +5,6 @@ #include "sieve-common.h" #include "sieve-error.h" -#include "sieve-settings.old.h" #include "sieve-address.h" #include "sieve-message.h" @@ -49,24 +48,6 @@ bool sieve_address_source_parse(pool_t pool, const char *value, return TRUE; } -bool sieve_address_source_parse_from_setting(struct sieve_instance *svinst, - pool_t pool, const char *setting, - struct sieve_address_source *asrc) -{ - const char *value; - - value = sieve_setting_get(svinst, setting); - if (value == NULL) - return FALSE; - - if (!sieve_address_source_parse(pool, value, asrc)) { - e_warning(svinst->event, "Invalid value for setting '%s': '%s'", - setting, value); - return FALSE; - } - return TRUE; -} - int sieve_address_source_get_address(struct sieve_address_source *asrc, struct sieve_instance *svinst, const struct sieve_script_env *senv, diff --git a/src/lib-sieve/sieve-address-source.h b/src/lib-sieve/sieve-address-source.h index 5bfd5ff7d..7df6f2909 100644 --- a/src/lib-sieve/sieve-address-source.h +++ b/src/lib-sieve/sieve-address-source.h @@ -23,9 +23,6 @@ struct sieve_address_source { bool sieve_address_source_parse(pool_t pool, const char *value, struct sieve_address_source *asrc); -bool sieve_address_source_parse_from_setting(struct sieve_instance *svinst, - pool_t pool, const char *setting, - struct sieve_address_source *asrc); int sieve_address_source_get_address(struct sieve_address_source *asrc, struct sieve_instance *svinst, diff --git a/src/lib-sieve/sieve-common.h b/src/lib-sieve/sieve-common.h index d9f49b0a4..095b44780 100644 --- a/src/lib-sieve/sieve-common.h +++ b/src/lib-sieve/sieve-common.h @@ -242,4 +242,21 @@ const struct smtp_address * sieve_get_postmaster_smtp(const struct sieve_script_env *senv); const char *sieve_get_postmaster_address(const struct sieve_script_env *senv); +/* + * Home directory + */ + +static inline const char * +sieve_environment_get_homedir(struct sieve_instance *svinst) +{ + const struct sieve_callbacks *callbacks = svinst->callbacks; + + if (svinst->home_dir != NULL) + return svinst->home_dir; + if (callbacks == NULL || callbacks->get_homedir == NULL) + return NULL; + + return callbacks->get_homedir(svinst, svinst->context); +} + #endif diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c index 1816eae58..c61458d06 100644 --- a/src/lib-sieve/sieve-script.c +++ b/src/lib-sieve/sieve-script.c @@ -14,7 +14,6 @@ #include "sieve-common.h" #include "sieve-limits.h" -#include "sieve-settings.old.h" #include "sieve-error.h" #include "sieve-dump.h" #include "sieve-binary.h" diff --git a/src/lib-sieve/sieve-settings.old.c b/src/lib-sieve/sieve-settings.old.c deleted file mode 100644 index adf2752c4..000000000 --- a/src/lib-sieve/sieve-settings.old.c +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) 2002-2018 Pigeonhole authors, see the included COPYING file - */ - -#include "lib.h" - -#include "sieve-common.h" -#include "sieve-limits.h" -#include "sieve-error.h" -#include "sieve-address.h" -#include "sieve-address-source.h" -#include "sieve-settings.old.h" - -#include <ctype.h> - -/* - * Access to settings - */ - -bool sieve_setting_get_uint_value(struct sieve_instance *svinst, - const char *setting, - unsigned long long int *value_r) -{ - const char *str_value; - - str_value = sieve_setting_get(svinst, setting); - - if (str_value == NULL || *str_value == '\0') - return FALSE; - - if (str_to_ullong(str_value, value_r) < 0) { - e_warning(svinst->event, - "invalid unsigned integer value for setting '%s': " - "'%s'", setting, str_value); - return FALSE; - } - return TRUE; -} - -bool sieve_setting_get_int_value(struct sieve_instance *svinst, - const char *setting, long long int *value_r) -{ - const char *str_value; - - str_value = sieve_setting_get(svinst, setting); - if (str_value == NULL || *str_value == '\0') - return FALSE; - - if (str_to_llong(str_value, value_r) < 0) { - e_warning(svinst->event, - "invalid integer value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - return TRUE; -} - -bool sieve_setting_get_size_value(struct sieve_instance *svinst, - const char *setting, size_t *value_r) -{ - const char *str_value; - uintmax_t value, multiply = 1; - const char *endp; - - str_value = sieve_setting_get(svinst, setting); - if (str_value == NULL || *str_value == '\0') - return FALSE; - - if (str_parse_uintmax(str_value, &value, &endp) < 0) { - e_warning(svinst->event, - "invalid size value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - switch (i_toupper(*endp)) { - case '\0': /* default */ - case 'B': /* byte (useless) */ - multiply = 1; - break; - case 'K': /* kilobyte */ - multiply = 1024; - break; - case 'M': /* megabyte */ - multiply = 1024*1024; - break; - case 'G': /* gigabyte */ - multiply = 1024*1024*1024; - break; - case 'T': /* terabyte */ - multiply = 1024ULL*1024*1024*1024; - break; - default: - e_warning(svinst->event, - "invalid size value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - - if (value > SSIZE_T_MAX / multiply) { - e_warning(svinst->event, - "overflowing size value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - - *value_r = (size_t)(value * multiply); - return TRUE; -} - -bool sieve_setting_get_bool_value(struct sieve_instance *svinst, - const char *setting, bool *value_r) -{ - const char *str_value; - - str_value = sieve_setting_get(svinst, setting); - if (str_value == NULL) - return FALSE; - - str_value = t_str_trim(str_value, "\t "); - if (*str_value == '\0') - return FALSE; - - if (strcasecmp(str_value, "yes") == 0) { - *value_r = TRUE; - return TRUE; - } - - if (strcasecmp(str_value, "no") == 0) { - *value_r = FALSE; - return TRUE; - } - - e_warning(svinst->event, - "invalid boolean value for setting '%s': '%s'", - setting, str_value); - return FALSE; -} - -bool sieve_setting_get_duration_value(struct sieve_instance *svinst, - const char *setting, - sieve_number_t *value_r) -{ - const char *str_value; - uintmax_t value, multiply = 1; - const char *endp; - - str_value = sieve_setting_get(svinst, setting); - if (str_value == NULL) - return FALSE; - - str_value = t_str_trim(str_value, "\t "); - if (*str_value == '\0') - return FALSE; - - if (str_parse_uintmax(str_value, &value, &endp) < 0) { - e_warning(svinst->event, - "invalid duration value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - - switch (i_tolower(*endp)) { - case '\0': /* default */ - case 's': /* seconds */ - multiply = 1; - break; - case 'm': /* minutes */ - multiply = 60; - break; - case 'h': /* hours */ - multiply = 60*60; - break; - case 'd': /* days */ - multiply = 24*60*60; - break; - default: - e_warning(svinst->event, - "invalid duration value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - - if (value > SIEVE_MAX_NUMBER / multiply) { - e_warning(svinst->event, - "overflowing duration value for setting '%s': '%s'", - setting, str_value); - return FALSE; - } - - *value_r = (unsigned int)(value * multiply); - return TRUE; -} diff --git a/src/lib-sieve/sieve-settings.old.h b/src/lib-sieve/sieve-settings.old.h deleted file mode 100644 index 4038299ef..000000000 --- a/src/lib-sieve/sieve-settings.old.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef SIEVE_SETTINGS_OLD_H -#define SIEVE_SETTINGS_OLD_H - -#include "sieve-common.h" - -/* - * Access to settings - */ - -static inline const char * -sieve_setting_get(struct sieve_instance *svinst, const char *identifier) -{ - const struct sieve_callbacks *callbacks = svinst->callbacks; - - if (callbacks == NULL || callbacks->get_setting == NULL) - return NULL; - - return callbacks->get_setting(svinst, svinst->context, identifier); -} - -bool sieve_setting_get_uint_value(struct sieve_instance *svinst, - const char *setting, - unsigned long long int *value_r); -bool sieve_setting_get_int_value(struct sieve_instance *svinst, - const char *setting, long long int *value_r); -bool sieve_setting_get_size_value(struct sieve_instance *svinst, - const char *setting, size_t *value_r); -bool sieve_setting_get_bool_value(struct sieve_instance *svinst, - const char *setting, bool *value_r); -bool sieve_setting_get_duration_value(struct sieve_instance *svinst, - const char *setting, - sieve_number_t *value_r); - -/* - * Home directory - */ - -static inline const char * -sieve_environment_get_homedir(struct sieve_instance *svinst) -{ - const struct sieve_callbacks *callbacks = svinst->callbacks; - - if (svinst->home_dir != NULL) - return svinst->home_dir; - if (callbacks == NULL || callbacks->get_homedir == NULL) - return NULL; - - return callbacks->get_homedir(svinst, svinst->context); -} - -#endif diff --git a/src/lib-sieve/sieve-storage-sync.c b/src/lib-sieve/sieve-storage-sync.c index e9369b959..a3840f103 100644 --- a/src/lib-sieve/sieve-storage-sync.c +++ b/src/lib-sieve/sieve-storage-sync.c @@ -11,7 +11,6 @@ #include "mail-storage-private.h" #include "sieve-common.h" -#include "sieve-settings.old.h" #include "sieve-error-private.h" #include "sieve-script-private.h" diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 1020880f3..007d3e68d 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -13,7 +13,6 @@ #include "settings.h" #include "sieve-common.h" -#include "sieve-settings.old.h" #include "sieve-error-private.h" #include "sieve-script-private.h" diff --git a/src/lib-sieve/sieve-types.h b/src/lib-sieve/sieve-types.h index fbdf53397..2643a3877 100644 --- a/src/lib-sieve/sieve-types.h +++ b/src/lib-sieve/sieve-types.h @@ -81,9 +81,6 @@ struct sieve_environment { struct sieve_callbacks { const char * (*get_homedir)(struct sieve_instance *svinst, void *context); - const char * - (*get_setting)(struct sieve_instance *svinst, void *context, - const char *identifier); }; /* diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c index a0ba62f79..237d6a320 100644 --- a/src/lib-sieve/sieve.c +++ b/src/lib-sieve/sieve.c @@ -14,7 +14,6 @@ #include "message-address.h" #include "mail-user.h" -#include "sieve-settings.old.h" #include "sieve-extensions.h" #include "sieve-plugins.h" diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c index da6459cd8..c496a46e1 100644 --- a/src/lib-sieve/storage/file/sieve-file-storage.c +++ b/src/lib-sieve/storage/file/sieve-file-storage.c @@ -13,7 +13,6 @@ #include "sieve.h" #include "sieve-common.h" -#include "sieve-settings.old.h" #include "sieve-error-private.h" #include "sieve-file-storage.h" diff --git a/src/managesieve/managesieve-capabilities.c b/src/managesieve/managesieve-capabilities.c index 8558e1981..c274d9965 100644 --- a/src/managesieve/managesieve-capabilities.c +++ b/src/managesieve/managesieve-capabilities.c @@ -2,85 +2,30 @@ */ #include "lib.h" -#include "array.h" -#include "hostpid.h" -#include "var-expand.h" -#include "settings.h" -#include "settings-parser.h" -#include "master-service.h" #include "sieve.h" -#include "managesieve-settings.h" #include "managesieve-capabilities.h" #include <stddef.h> #include <unistd.h> -/* - * Global plugin settings - */ - - -static const char * -plugin_settings_get(const struct plugin_settings *set, const char *identifier) -{ - const char *const *envs; - unsigned int i, count; - - if ( !array_is_created(&set->plugin_envs) ) - return NULL; - - envs = array_get(&set->plugin_envs, &count); - for ( i = 0; i < count; i += 2 ) { - if ( strcmp(envs[i], identifier) == 0 ) - return envs[i+1]; - } - return NULL; -} - -/* - * Sieve environment - */ - -static const char * -sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, void *context, - const char *identifier) -{ - const struct plugin_settings *set = context; - - return plugin_settings_get(set, identifier); -} - -static const struct sieve_callbacks sieve_callbacks = { - NULL, - sieve_get_setting, -}; - /* * Capability dumping */ void managesieve_capabilities_dump(void) { - const struct plugin_settings *global_plugin_settings; struct sieve_environment svenv; struct sieve_instance *svinst; const char *sieve_cap, *notify_cap; - /* Read plugin settings */ - - global_plugin_settings = settings_get_or_fatal( - master_service_get_event(master_service), - &managesieve_plugin_setting_parser_info); - /* Initialize Sieve engine */ i_zero(&svenv); svenv.home_dir = "/tmp"; - if (sieve_init(&svenv, &sieve_callbacks, (void *)global_plugin_settings, - FALSE, &svinst) < 0) + if (sieve_init(&svenv, NULL, NULL, FALSE, &svinst) < 0) i_fatal("Failed to initialize Sieve"); /* Dump capabilities */ @@ -93,6 +38,5 @@ void managesieve_capabilities_dump(void) else printf("SIEVE: %s, NOTIFY: %s\n", sieve_cap, notify_cap); - settings_free(global_plugin_settings); sieve_deinit(&svinst); } diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c index 09e204edd..7f30acc1a 100644 --- a/src/managesieve/managesieve-client.c +++ b/src/managesieve/managesieve-client.c @@ -34,23 +34,6 @@ struct managesieve_module_register managesieve_module_register = { 0 }; struct client *managesieve_clients = NULL; unsigned int managesieve_client_count = 0; -static const char * -managesieve_sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, - void *context, const char *identifier) -{ - struct mail_user *mail_user = (struct mail_user *) context; - - if (mail_user == NULL) - return NULL; - - return mail_user_plugin_getenv(mail_user, identifier); -} - -static const struct sieve_callbacks managesieve_sieve_callbacks = { - NULL, - managesieve_sieve_get_setting -}; - static void client_idle_timeout(struct client *client) { if (client->cmd.func != NULL) { @@ -128,8 +111,8 @@ int client_create(int fd_in, int fd_out, const char *session_id, svenv.event_parent = event; svenv.flags = SIEVE_FLAG_HOME_RELATIVE; - if (sieve_init(&svenv, &managesieve_sieve_callbacks, user, - user->set->mail_debug, &svinst) < 0) { + if (sieve_init(&svenv, NULL, user, user->set->mail_debug, + &svinst) < 0) { *error_r = "Failed to initialize Sieve interpreter"; return -1; } diff --git a/src/managesieve/managesieve-settings.c b/src/managesieve/managesieve-settings.c index 818c56614..ff8e0d4a4 100644 --- a/src/managesieve/managesieve-settings.c +++ b/src/managesieve/managesieve-settings.c @@ -94,25 +94,8 @@ const struct setting_parser_info managesieve_setting_parser_info = { .check_func = managesieve_settings_verify, }; -static const struct setting_define plugin_setting_defines[] = { - { .type = SET_STRLIST, .key = "plugin", - .offset = offsetof(struct plugin_settings, plugin_envs) }, - - SETTING_DEFINE_LIST_END -}; - -const struct setting_parser_info managesieve_plugin_setting_parser_info = { - .name = "managesieve_plugin", - - .defines = plugin_setting_defines, - - .struct_size = sizeof(struct plugin_settings), - .pool_offset1 = 1 + offsetof(struct plugin_settings, pool), -}; - const struct setting_parser_info *managesieve_settings_set_infos[] = { &managesieve_setting_parser_info, - &managesieve_plugin_setting_parser_info, NULL }; diff --git a/src/managesieve/managesieve-settings.h b/src/managesieve/managesieve-settings.h index 976e18e3e..ad474769a 100644 --- a/src/managesieve/managesieve-settings.h +++ b/src/managesieve/managesieve-settings.h @@ -24,12 +24,6 @@ struct managesieve_settings { enum managesieve_client_workarounds parsed_workarounds; }; -struct plugin_settings { - pool_t pool; - ARRAY(const char *) plugin_envs; -}; - extern const struct setting_parser_info managesieve_setting_parser_info; -extern const struct setting_parser_info managesieve_plugin_setting_parser_info; #endif diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c b/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c index be3915c7f..2bead92dc 100644 --- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c +++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c @@ -61,21 +61,6 @@ void doveadm_sieve_cmd_failed_storage(struct doveadm_sieve_cmd_context *ctx, doveadm_sieve_cmd_failed_error(ctx, error_code); } -static const char * -doveadm_sieve_cmd_get_setting(struct sieve_instance *svinst ATTR_UNUSED, - void *context, const char *identifier) -{ - struct doveadm_sieve_cmd_context *ctx = - (struct doveadm_sieve_cmd_context *)context; - - return mail_user_plugin_getenv(ctx->ctx.cur_mail_user, identifier); -} - -static const struct sieve_callbacks sieve_callbacks = { - NULL, - doveadm_sieve_cmd_get_setting, -}; - void doveadm_sieve_cmd_scriptname_check(const char *arg) { if (!uni_utf8_str_is_valid(arg)) @@ -113,8 +98,8 @@ doveadm_sieve_cmd_run(struct doveadm_mail_cmd_context *_ctx, svenv.base_dir = user->set->base_dir; svenv.flags = SIEVE_FLAG_HOME_RELATIVE; - if (sieve_init(&svenv, &sieve_callbacks, ctx, - user->set->mail_debug, &ctx->svinst) < 0) + if (sieve_init(&svenv, NULL, ctx, user->set->mail_debug, + &ctx->svinst) < 0) return -1; if (sieve_storage_create_personal(ctx->svinst, user, diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c index baec83ebf..9e2f096e6 100644 --- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c +++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c @@ -44,20 +44,6 @@ static MODULE_CONTEXT_DEFINE_INIT(sieve_storage_module, static MODULE_CONTEXT_DEFINE_INIT(sieve_user_module, &mail_user_module_register); -static const char * -mail_sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, void *context, - const char *identifier) -{ - struct mail_user *mail_user = context; - - return mail_user_plugin_getenv(mail_user, identifier); -} - -static const struct sieve_callbacks mail_sieve_callbacks = { - NULL, - mail_sieve_get_setting -}; - static void mail_sieve_user_deinit(struct mail_user *user) { struct sieve_mail_user *suser = SIEVE_USER_CONTEXT(user); @@ -95,8 +81,8 @@ mail_sieve_user_init(struct mail_user *user, struct sieve_storage **svstorage_r) svenv.base_dir = user->set->base_dir; svenv.flags = SIEVE_FLAG_HOME_RELATIVE; - if (sieve_init(&svenv, &mail_sieve_callbacks, user, - user->set->mail_debug, &suser->svinst) < 0) + if (sieve_init(&svenv, NULL, user, user->set->mail_debug, + &suser->svinst) < 0) return -1; if (sieve_storage_create_personal(suser->svinst, user, diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c index 0057dcd79..3525b4939 100644 --- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c +++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c @@ -57,21 +57,6 @@ static MODULE_CONTEXT_DEFINE_INIT(imap_filter_sieve_user_module, * */ -static const char * -imap_filter_sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, - void *context, const char *identifier) -{ - struct imap_filter_sieve_user *ifsuser = context; - struct mail_user *user = ifsuser->client->user; - - return mail_user_plugin_getenv(user, identifier); -} - -static const struct sieve_callbacks imap_filter_sieve_callbacks = { - NULL, - imap_filter_sieve_get_setting -}; - static struct sieve_instance * imap_filter_sieve_get_svinst(struct imap_filter_sieve_context *sctx) { @@ -96,8 +81,7 @@ imap_filter_sieve_get_svinst(struct imap_filter_sieve_context *sctx) svenv.location = SIEVE_ENV_LOCATION_MS; svenv.delivery_phase = SIEVE_DELIVERY_PHASE_POST; - if (sieve_init(&svenv, &imap_filter_sieve_callbacks, ifsuser, debug, - &ifsuser->svinst) < 0) + if (sieve_init(&svenv, NULL, ifsuser, debug, &ifsuser->svinst) < 0) return NULL; ifsuser->master_ehandler = diff --git a/src/plugins/imapsieve/imap-sieve.c b/src/plugins/imapsieve/imap-sieve.c index bb1a7e0a8..8bfa139f4 100644 --- a/src/plugins/imapsieve/imap-sieve.c +++ b/src/plugins/imapsieve/imap-sieve.c @@ -47,21 +47,6 @@ struct imap_sieve { struct sieve_error_handler *master_ehandler; }; -static const char * -mail_sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, void *context, - const char *identifier) -{ - struct imap_sieve *isieve = context; - struct mail_user *user = isieve->client->user; - - return mail_user_plugin_getenv(user, identifier); -} - -static const struct sieve_callbacks mail_sieve_callbacks = { - NULL, - mail_sieve_get_setting -}; - struct imap_sieve *imap_sieve_init(struct client *client) { struct sieve_environment svenv; @@ -89,8 +74,7 @@ struct imap_sieve *imap_sieve_init(struct client *client) isieve->home_dir = p_strdup(pool, svenv.home_dir); - if (sieve_init(&svenv, &mail_sieve_callbacks, isieve, - debug, &isieve->svinst) < 0) + if (sieve_init(&svenv, NULL, isieve, debug, &isieve->svinst) < 0) return isieve; if (sieve_extension_replace(isieve->svinst, &imapsieve_extension, diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index fd5e0a47c..def4fdec7 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -40,36 +40,6 @@ static deliver_mail_func_t *next_deliver_mail; -/* - * Settings handling - */ - -static const char * -lda_sieve_get_setting(struct sieve_instance *svinst ATTR_UNUSED, void *context, - const char *identifier) -{ - struct mail_deliver_context *mdctx = - (struct mail_deliver_context *)context; - const char *value = NULL; - - if (mdctx == NULL) - return NULL; - - if (mdctx->rcpt_user == NULL || - (value = mail_user_plugin_getenv( - mdctx->rcpt_user, identifier)) == NULL) { - if (strcmp(identifier, "recipient_delimiter") == 0) - value = mdctx->set->recipient_delimiter; - } - - return value; -} - -static const struct sieve_callbacks lda_sieve_callbacks = { - NULL, - lda_sieve_get_setting -}; - /* * Mail transmission */ @@ -1029,8 +999,7 @@ lda_sieve_deliver_mail(struct mail_deliver_context *mdctx, svenv.location = SIEVE_ENV_LOCATION_MDA; svenv.delivery_phase = SIEVE_DELIVERY_PHASE_DURING; - if (sieve_init(&svenv, &lda_sieve_callbacks, mdctx, debug, - &srctx.svinst) < 0) + if (sieve_init(&svenv, NULL, mdctx, debug, &srctx.svinst) < 0) return -1; /* Initialize master error handler */ diff --git a/src/plugins/sieve-extprograms/sieve-extprograms-common.c b/src/plugins/sieve-extprograms/sieve-extprograms-common.c index a4f7b33c7..57f6a0445 100644 --- a/src/plugins/sieve-extprograms/sieve-extprograms-common.c +++ b/src/plugins/sieve-extprograms/sieve-extprograms-common.c @@ -21,7 +21,6 @@ #include "program-client.h" #include "sieve-common.h" -#include "sieve-settings.old.h" #include "sieve-error.h" #include "sieve-extensions.h" #include "sieve-ast.h" diff --git a/src/testsuite/cmd-test-config.c b/src/testsuite/cmd-test-config.c index 8392f34d5..8a720a3a6 100644 --- a/src/testsuite/cmd-test-config.c +++ b/src/testsuite/cmd-test-config.c @@ -2,7 +2,6 @@ */ #include "sieve-common.h" -#include "sieve-settings.old.h" #include "sieve-extensions.h" #include "sieve-commands.h" #include "sieve-validator.h" diff --git a/src/testsuite/testsuite-settings.c b/src/testsuite/testsuite-settings.c index 025b4dbdb..411c899f3 100644 --- a/src/testsuite/testsuite-settings.c +++ b/src/testsuite/testsuite-settings.c @@ -3,56 +3,12 @@ #include "lib.h" #include "settings.h" -#include "mail-user.h" #include "sieve-common.h" -#include "sieve-settings.h" -#include "sieve-tool.h" #include "testsuite-common.h" -#include "testsuite-mailstore.h" #include "testsuite-settings.h" -static const char * -testsuite_setting_get(struct sieve_instance *svinst, void *context, - const char *identifier); - -void testsuite_settings_init(void) -{ - sieve_tool_set_setting_callback(sieve_tool, - testsuite_setting_get, NULL); -} - -static const char * -testsuite_setting_get(struct sieve_instance *svinst, void *context ATTR_UNUSED, - const char *identifier) -{ - const struct sieve_settings *svset = svinst->set; - struct mail_user *user; - - if (strcmp(identifier, "sieve_max_script_size") == 0) - return t_strdup_printf("%zu", svset->max_script_size); - else if (strcmp(identifier, "sieve_max_actions") == 0) - return t_strdup_printf("%u", svset->max_actions); - else if (strcmp(identifier, "sieve_max_redirects") == 0) - return t_strdup_printf("%u", svset->max_redirects); - else if (strcmp(identifier, "sieve_max_cpu_time") == 0) - return t_strdup_printf("%u", svset->max_cpu_time); - else if (strcmp(identifier, "sieve_resource_usage_timeout") == 0) - return t_strdup_printf("%u", svset->resource_usage_timeout); - else if (strcmp(identifier, "sieve_redirect_envelope_from") == 0) - return svset->redirect_envelope_from; - else if (strcmp(identifier, "sieve_redirect_duplicate_period") == 0) - return t_strdup_printf("%u", svset->redirect_duplicate_period); - else if (strcmp(identifier, "sieve_user_email") == 0) - return svset->user_email; - - user = testsuite_mailstore_get_user(); - if (user == NULL) - return NULL; - return mail_user_plugin_getenv(user, identifier); -} - void testsuite_setting_set(const char *identifier, const char *value) { struct sieve_instance *svinst = testsuite_sieve_instance; diff --git a/src/testsuite/testsuite-settings.h b/src/testsuite/testsuite-settings.h index 1a205ce6b..34adfd451 100644 --- a/src/testsuite/testsuite-settings.h +++ b/src/testsuite/testsuite-settings.h @@ -3,8 +3,6 @@ #include "sieve-common.h" -void testsuite_settings_init(void); - void testsuite_setting_set(const char *identifier, const char *value); void testsuite_setting_unset(const char *identifier); diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index 5e3ad78ec..75db234bc 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -145,9 +145,6 @@ int main(int argc, char **argv) i_fatal("Failed to get working directory: %s", error); sieve_tool_set_homedir(sieve_tool, cwd); - /* Initialize settings environment */ - testsuite_settings_init(); - /* Manually setup the absolute sieve storage path for the executed test script. */ if (t_abspath(scriptfile, &abspath, &error) < 0) -- GitLab