From: Alan T. DeKok Date: Tue, 15 Nov 2022 15:11:04 +0000 (-0500) Subject: add main_config_migrate_option_get() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b4c944edec223fc243171fa96d191866dd3de04;p=thirdparty%2Ffreeradius-server.git add main_config_migrate_option_get() so that various things in the code can query what they should do, without having global variables all over the place --- diff --git a/src/lib/server/main_config.c b/src/lib/server/main_config.c index 45757b52422..ec2c11c375c 100644 --- a/src/lib/server/main_config.c +++ b/src/lib/server/main_config.c @@ -1444,7 +1444,7 @@ static fr_table_num_ordered_t config_arg_table[] = { { L("parse_new_conditions"), offsetof(main_config_t, parse_new_conditions) }, { L("use_new_conditions"), offsetof(main_config_t, use_new_conditions) }, { L("tmpl_tokenize_all_nested"), offsetof(main_config_t, tmpl_tokenize_all_nested) }, - { L("rewrite_update"), offsetof(main_config_t, rewrite_update) }, + { L("rewrite_update"), offsetof(main_config_t, rewrite_update) }, }; static size_t config_arg_table_len = NUM_ELEMENTS(config_arg_table); @@ -1480,3 +1480,16 @@ int main_config_parse_option(char const *value) return 0; } + +/* + * Allow other pieces of the code to examine the migration options. + */ +bool main_config_migrate_option_get(char const *name) +{ + size_t offset; + + offset = fr_table_value_by_substr(config_arg_table, name, strlen(name), 0); + if (!offset) return false; + + return *(bool *) (((uintptr_t) main_config) + offset); +} diff --git a/src/lib/server/main_config.h b/src/lib/server/main_config.h index f2363961178..4bd204304b3 100644 --- a/src/lib/server/main_config.h +++ b/src/lib/server/main_config.h @@ -173,6 +173,8 @@ void main_config_dict_dir_set(main_config_t *config, char const *path); int main_config_parse_option(char const *value); /* flat / nested migration */ +bool main_config_migrate_option_get(char const *name); + void main_config_exclusive_proc_done(main_config_t const *config); int main_config_exclusive_proc_child(main_config_t const *config); int main_config_exclusive_proc(main_config_t *config);