From 4b5f278195c4bda222759682a2f9167646d05c77 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 13 Jan 2013 09:02:47 +0100 Subject: [PATCH] blobmsg: allow BLOBMSG_TYPE_UNSPEC attributes, treat them as null for JSON conversion Signed-off-by: Felix Fietkau --- blobmsg.c | 3 ++- blobmsg_json.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/blobmsg.c b/blobmsg.c index e04fa53..8e2d73a 100644 --- a/blobmsg.c +++ b/blobmsg.c @@ -21,6 +21,7 @@ static const int blob_type[__BLOBMSG_TYPE_LAST] = { [BLOBMSG_TYPE_INT32] = BLOB_ATTR_INT32, [BLOBMSG_TYPE_INT64] = BLOB_ATTR_INT64, [BLOBMSG_TYPE_STRING] = BLOB_ATTR_STRING, + [BLOBMSG_TYPE_UNSPEC] = BLOB_ATTR_BINARY, }; static uint16_t @@ -52,7 +53,7 @@ bool blobmsg_check_attr(const struct blob_attr *attr, bool name) len = blobmsg_data_len(attr); data = blobmsg_data(attr); - if (!id || id > BLOBMSG_TYPE_LAST) + if (id > BLOBMSG_TYPE_LAST) return false; if (!blob_type[id]) diff --git a/blobmsg_json.c b/blobmsg_json.c index f629d76..d4f6846 100644 --- a/blobmsg_json.c +++ b/blobmsg_json.c @@ -228,6 +228,9 @@ static void blobmsg_format_element(struct strbuf *s, struct blob_attr *attr, boo data_str = buf; switch(blob_id(attr)) { + case BLOBMSG_TYPE_UNSPEC: + sprintf(buf, "null"); + break; case BLOBMSG_TYPE_BOOL: sprintf(buf, "%s", *(uint8_t *)data ? "true" : "false"); break;