]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/json.c
Merge pull request #9906 from patrasar/2553196
[mirror_frr.git] / lib / json.c
index cfba6ea3b61ed4e1c669a82cbfa08456063cc402..854a3d59d1a86819920ffd91a1a9b325fe7e231c 100644 (file)
@@ -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));