X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=blobmsg_json.c;h=f16635834fb9ccc53ba76515dd08e4f04ab4e2f2;hp=badf87e6394cadcaf05a428bc2b0df0f0a558350;hb=d01922625d21f97fcab757d0299586178333f1e0;hpb=6a2e4f449d978e75c839b7794409af3b695ef14e diff --git a/blobmsg_json.c b/blobmsg_json.c index badf87e..f166358 100644 --- a/blobmsg_json.c +++ b/blobmsg_json.c @@ -16,7 +16,7 @@ #include "blobmsg.h" #include "blobmsg_json.h" -static bool blobmsg_add_object(struct blob_buf *b, json_object *obj) +bool blobmsg_add_object(struct blob_buf *b, json_object *obj) { json_object_object_foreach(obj, key, val) { if (!blobmsg_add_json_element(b, key, val)) @@ -108,7 +108,7 @@ static bool blobmsg_puts(struct strbuf *s, const char *c, int len) return true; if (s->pos + len >= s->len) { - s->len += 16; + s->len += 16 + len; s->buf = realloc(s->buf, s->len); if (!s->buf) return false; @@ -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;