diff mbox series

[OpenWrt-Devel] Subject: [PATCH 1/1] blobmsg_json: allow to add full json files

Message ID DM5PR17MB09230F70AD09E8304B20C222DBEE0@DM5PR17MB0923.namprd17.prod.outlook.com
State New
Headers show
Series [OpenWrt-Devel] Subject: [PATCH 1/1] blobmsg_json: allow to add full json files | expand

Commit Message

Adrian Panella Feb. 22, 2020, 8:11 p.m. UTC
Current function "blobmsg_add_json_from_file" only adds json file if it
is an object,  and it only returns the properties, not a full object
attribute.
This version allows to read any valid json file and returns the complete
corresponding attribute.

Signed-off-by: Adrian Panella <ianchi74@outlook.com>
---
 blobmsg_json.c | 16 ++++++++++++++++
 blobmsg_json.h |  1 +
 2 files changed, 17 insertions(+)
diff mbox series

Patch

diff --git a/blobmsg_json.c b/blobmsg_json.c
index dce81e9..b8f91f1 100644
--- a/blobmsg_json.c
+++ b/blobmsg_json.c
@@ -87,6 +87,22 @@  bool blobmsg_add_json_element(struct blob_buf *b, const char *name, json_object
 	return ret;
 }
 
+bool blobmsg_add_json_file(struct blob_buf *b,  const char *name, const char *file)
+{
+	struct json_object *obj;
+	bool ret;
+	
+	obj = json_object_from_file(file);
+
+	if (!obj)
+		return false;
+
+	ret = blobmsg_add_json_element(b, name, obj);
+
+	json_object_put(obj);
+	return ret;
+}
+
 static bool __blobmsg_add_json(struct blob_buf *b, json_object *obj)
 {
 	bool ret = false;
diff --git a/blobmsg_json.h b/blobmsg_json.h
index 9dfc02d..61cdbe5 100644
--- a/blobmsg_json.h
+++ b/blobmsg_json.h
@@ -23,6 +23,7 @@  struct json_object;
 
 bool blobmsg_add_object(struct blob_buf *b, struct json_object *obj);
 bool blobmsg_add_json_element(struct blob_buf *b, const char *name, struct json_object *obj);
+bool blobmsg_add_json_file(struct blob_buf *b,  const char *name, const char *file);
 bool blobmsg_add_json_from_string(struct blob_buf *b, const char *str);
 bool blobmsg_add_json_from_file(struct blob_buf *b, const char *file);