diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-02-06 16:48:58 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-02-06 16:48:58 +0100 |
commit | 45c873325ec4ef2c2507906ef0b294a56d2931a1 (patch) | |
tree | d6e2e6a89f3edc0a3803a3a74effd679705afb4c /cli.c | |
parent | 8c81142828a58e661d91da4f513a32ca5a9038bf (diff) | |
download | ubus-45c873325ec4ef2c2507906ef0b294a56d2931a1.tar.gz |
cli: display proper types for the method signatures
Diffstat (limited to 'cli.c')
-rw-r--r-- | cli.c | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -3,6 +3,28 @@ static struct blob_buf b; +static const char *attr_types[] = { + [BLOBMSG_TYPE_INT32] = "\"Integer\"", + [BLOBMSG_TYPE_STRING] = "\"String\"", +}; + +static const char *format_type(void *priv, struct blob_attr *attr) +{ + const char *type = NULL; + int typeid; + + if (blob_id(attr) != BLOBMSG_TYPE_INT32) + return NULL; + + typeid = blobmsg_get_u32(attr); + if (typeid < ARRAY_SIZE(attr_types)) + type = attr_types[typeid]; + if (!type) + type = "\"(unknown)\""; + + return type; +} + static void receive_lookup(struct ubus_context *ctx, struct ubus_object_data *obj, void *priv) { struct blob_attr *cur; @@ -15,7 +37,7 @@ static void receive_lookup(struct ubus_context *ctx, struct ubus_object_data *ob return; blob_for_each_attr(cur, obj->signature, rem) { - s = blobmsg_format_json(cur, false); + s = blobmsg_format_json_with_cb(cur, false, format_type, NULL); fprintf(stderr, "\t%s\n", s); free(s); } |