diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2021-11-17 11:59:12 +0100 | 
|---|---|---|
| committer | David Lamparter <equinox@opensourcerouting.org> | 2021-11-17 16:01:30 +0100 | 
| commit | 2c4dfddb01cd7dfb28f410dca866738486981ca6 (patch) | |
| tree | aeef9d54486a5b3d83ea3444d0da36d3d1f8dcc0 /lib/json.c | |
| parent | a8dfd147a0373fb0430ec3bf3499a952ee6f593a (diff) | |
lib: add printfrr to json string helpers
... these should probably have been added ages ago.
`json_object_string_addf(json, "key", "%pFX", prefix)` is super useful.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'lib/json.c')
| -rw-r--r-- | lib/json.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/json.c b/lib/json.c index cfba6ea3b6..854a3d59d1 100644 --- a/lib/json.c +++ b/lib/json.c @@ -39,17 +39,41 @@ bool use_json(const int argc, struct cmd_token *argv[])  	return false;  } +struct json_object *json_object_new_stringv(const char *fmt, va_list args) +{ +	struct json_object *ret; +	char *text, buf[256]; + +	text = vasnprintfrr(MTYPE_TMP, buf, sizeof(buf), fmt, args); +	ret = json_object_new_string(text); + +	if (text != buf) +		XFREE(MTYPE_TMP, text); +	return ret; +} +  void json_array_string_add(json_object *json, const char *str)  {  	json_object_array_add(json, json_object_new_string(str));  } +void json_array_string_addv(json_object *json, const char *fmt, va_list args) +{ +	json_object_array_add(json, json_object_new_stringv(fmt, args)); +} +  void json_object_string_add(struct json_object *obj, const char *key,  			    const char *s)  {  	json_object_object_add(obj, key, json_object_new_string(s));  } +void json_object_string_addv(struct json_object *obj, const char *key, +			     const char *fmt, va_list args) +{ +	json_object_object_add(obj, key, json_object_new_stringv(fmt, args)); +} +  void json_object_int_add(struct json_object *obj, const char *key, int64_t i)  {  	json_object_object_add(obj, key, json_object_new_int64(i));  | 
