]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add main_config_migrate_option_get()
authorAlan T. DeKok <aland@freeradius.org>
Tue, 15 Nov 2022 15:11:04 +0000 (10:11 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 17 Nov 2022 12:34:49 +0000 (07:34 -0500)
so that various things in the code can query what they should do,
without having global variables all over the place

src/lib/server/main_config.c
src/lib/server/main_config.h

index 45757b524224e9c864662a11854e754e1aa22aae..ec2c11c375c3439361898d7ea990fe32f08d30d2 100644 (file)
@@ -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);
+}
index f23639611787cd1833b370183081aac418c37fe1..4bd204304b3ec438ef1ff4c89dd063126eaf69cb 100644 (file)
@@ -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);