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