X-Git-Url: http://git.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=ubus.c;h=f5fd8c4b7a217767be7499565c60e4194c08a561;hp=ec6d84f89c0873f714893c044475cf374b6ede1a;hb=7cb94b9e3f669a62272d07747d346f5393d71c1d;hpb=b99104d3ab99077cdce312e1c0a8e605844b525c diff --git a/ubus.c b/ubus.c index ec6d84f..f5fd8c4 100644 --- a/ubus.c +++ b/ubus.c @@ -23,11 +23,12 @@ static struct blob_attr *interfaces = NULL; static void dump_cb(struct ubus_request *req, int type, struct blob_attr *msg) { + static const struct blobmsg_policy policy = { "interface", BLOBMSG_TYPE_ARRAY }; struct blob_attr *cur; - unsigned rem = blob_len(msg); - __blob_for_each_attr(cur, blob_data(msg), rem) - if (!strcmp(blobmsg_name(cur), "interface")) - interfaces = blob_memdup(cur); + + blobmsg_parse(&policy, 1, &cur, blob_data(msg), blob_len(msg)); + if (cur) + interfaces = blob_memdup(cur); } bool