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 <ianch...@outlook.com>
---
 blobmsg_json.c | 16 ++++++++++++++++
 blobmsg_json.h |  1 +
 2 files changed, 17 insertions(+)

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);
 
-- 
2.20.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to