diff --git a/src/testsuite/testsuite-settings.c b/src/testsuite/testsuite-settings.c index a1b6b5c6ca85982d1861176af32c27bfe31fed38..025b4dbdb56ca62b8c4e4715cce0c9dbd458596e 100644 --- a/src/testsuite/testsuite-settings.c +++ b/src/testsuite/testsuite-settings.c @@ -2,9 +2,6 @@ */ #include "lib.h" -#include "hash.h" -#include "imem.h" -#include "strfuncs.h" #include "settings.h" #include "mail-user.h" @@ -16,49 +13,21 @@ #include "testsuite-mailstore.h" #include "testsuite-settings.h" -struct testsuite_setting { - char *identifier; - char *value; -}; - -static HASH_TABLE(const char *, struct testsuite_setting *) settings; - static const char * testsuite_setting_get(struct sieve_instance *svinst, void *context, const char *identifier); void testsuite_settings_init(void) { - hash_table_create(&settings, default_pool, 0, str_hash, strcmp); - sieve_tool_set_setting_callback(sieve_tool, testsuite_setting_get, NULL); } -void testsuite_settings_deinit(void) -{ - struct hash_iterate_context *itx = - hash_table_iterate_init(settings); - const char *key; - struct testsuite_setting *setting; - - while (hash_table_iterate(itx, settings, &key, &setting)) { - i_free(setting->identifier); - i_free(setting->value); - i_free(setting); - } - - hash_table_iterate_deinit(&itx); - - hash_table_destroy(&settings); -} - 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 testsuite_setting *setting; struct mail_user *user; if (strcmp(identifier, "sieve_max_script_size") == 0) @@ -78,10 +47,6 @@ testsuite_setting_get(struct sieve_instance *svinst, void *context ATTR_UNUSED, else if (strcmp(identifier, "sieve_user_email") == 0) return svset->user_email; - setting = hash_table_lookup(settings, identifier); - if (setting != NULL) - return setting->value; - user = testsuite_mailstore_get_user(); if (user == NULL) return NULL; @@ -92,51 +57,28 @@ void testsuite_setting_set(const char *identifier, const char *value) { struct sieve_instance *svinst = testsuite_sieve_instance; - if (svinst != NULL) { - struct settings_root *set_root; - - set_root = settings_root_find(svinst->event); - settings_root_override_remove(set_root, identifier, - SETTINGS_OVERRIDE_TYPE_CODE); - settings_root_override(set_root, identifier, value, - SETTINGS_OVERRIDE_TYPE_CODE); - } - - struct testsuite_setting *setting = - hash_table_lookup(settings, identifier); - - if (setting != NULL) { - i_free(setting->value); - setting->value = i_strdup(value); - } else { - setting = i_new(struct testsuite_setting, 1); - setting->identifier = i_strdup(identifier); - setting->value = i_strdup(value); - - hash_table_insert(settings, identifier, setting); - } + if (svinst == NULL) + return; + + struct settings_root *set_root; + + set_root = settings_root_find(svinst->event); + settings_root_override_remove(set_root, identifier, + SETTINGS_OVERRIDE_TYPE_CODE); + settings_root_override(set_root, identifier, value, + SETTINGS_OVERRIDE_TYPE_CODE); } void testsuite_setting_unset(const char *identifier) { struct sieve_instance *svinst = testsuite_sieve_instance; - if (svinst != NULL) { - struct settings_root *set_root; - - set_root = settings_root_find(svinst->event); - settings_root_override_remove(set_root, identifier, - SETTINGS_OVERRIDE_TYPE_CODE); - } - - struct testsuite_setting *setting = - hash_table_lookup(settings, identifier); + if (svinst == NULL) + return; - if (setting != NULL) { - i_free(setting->identifier); - i_free(setting->value); - i_free(setting); + struct settings_root *set_root; - hash_table_remove(settings, identifier); - } + set_root = settings_root_find(svinst->event); + settings_root_override_remove(set_root, identifier, + SETTINGS_OVERRIDE_TYPE_CODE); } diff --git a/src/testsuite/testsuite-settings.h b/src/testsuite/testsuite-settings.h index b84e62095371944cb74f7a92e6ca1a3854a6bab6..1a205ce6b95a3ffaf354e2c3578e7473b0b8f12e 100644 --- a/src/testsuite/testsuite-settings.h +++ b/src/testsuite/testsuite-settings.h @@ -4,7 +4,6 @@ #include "sieve-common.h" void testsuite_settings_init(void); -void testsuite_settings_deinit(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 d556297eec71478fd843296f0e6698e2d367bd7b..5e3ad78ecb695c56c188aa3b5bb04f11e102f150 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -309,7 +309,6 @@ int main(int argc, char **argv) /* De-initialize testsuite */ testsuite_deinit(); - testsuite_settings_deinit(); sieve_tool_deinit(&sieve_tool);