From: Matthew Newton Date: Mon, 17 Feb 2020 00:03:29 +0000 (+0000) Subject: lib/json: CONF_PARSER definition for json_format X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10ebda54fed2e2f2037afbacc3a330040041de2e;p=thirdparty%2Ffreeradius-server.git lib/json: CONF_PARSER definition for json_format --- diff --git a/src/lib/json/base.h b/src/lib/json/base.h index 0888ae3b70f..33a78791e8d 100644 --- a/src/lib/json/base.h +++ b/src/lib/json/base.h @@ -226,6 +226,8 @@ struct fr_json_format_s { typedef struct fr_json_format_s fr_json_format_t; +extern CONF_PARSER const fr_json_format_config[]; + /* jpath .c */ typedef struct fr_jpath_node fr_jpath_node_t; diff --git a/src/lib/json/json.c b/src/lib/json/json.c index 5b9c2a2331e..87e82523bf2 100644 --- a/src/lib/json/json.c +++ b/src/lib/json/json.c @@ -43,6 +43,28 @@ static fr_json_format_t const default_json_format = { .value = { .value_as_array = true }, }; +CONF_PARSER const json_format_attr_config[] = { + { FR_CONF_OFFSET("prefix", FR_TYPE_STRING, fr_json_format_attr_t, prefix) }, + CONF_PARSER_TERMINATOR +}; + +CONF_PARSER const json_format_value_config[] = { + { FR_CONF_OFFSET("single_value_as_array", FR_TYPE_BOOL, fr_json_format_value_t, value_as_array), .dflt = "no" }, + { FR_CONF_OFFSET("enum_as_integer", FR_TYPE_BOOL, fr_json_format_value_t, enum_as_int), .dflt = "no" }, + { FR_CONF_OFFSET("always_string", FR_TYPE_BOOL, fr_json_format_value_t, always_string), .dflt = "no" }, + CONF_PARSER_TERMINATOR +}; + +CONF_PARSER const fr_json_format_config[] = { + { FR_CONF_OFFSET("output_mode", FR_TYPE_STRING, fr_json_format_t, output_mode_str), .dflt = "object" }, + { FR_CONF_OFFSET("attribute", FR_TYPE_SUBSECTION, fr_json_format_t, attr), + .subcs = (void const *) json_format_attr_config }, + { FR_CONF_OFFSET("value", FR_TYPE_SUBSECTION, fr_json_format_t, value), + .subcs = (void const *) json_format_value_config }, + + CONF_PARSER_TERMINATOR +}; + /** Convert json object to fr_value_box_t *