blobmsg: remove the unnecessary name argument from blobmsg_check_attr_list, infer...
[project/libubox.git] / blobmsg.c
index 61b6a08..2d584a1 100644 (file)
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -61,6 +61,34 @@ bool blobmsg_check_attr(const struct blob_attr *attr, bool name)
        return blob_check_type(data, len, blob_type[id]);
 }
 
+bool blobmsg_check_attr_list(const struct blob_attr *attr, int type)
+{
+       struct blob_attr *cur;
+       bool name;
+       int rem;
+
+       switch (blobmsg_type(attr)) {
+       case BLOBMSG_TYPE_TABLE:
+               name = true;
+               break;
+       case BLOBMSG_TYPE_ARRAY:
+               name = false;
+               break;
+       default:
+               return false;
+       }
+
+       blobmsg_for_each_attr(cur, attr, rem) {
+               if (blobmsg_type(cur) != type)
+                       return false;
+
+               if (!blobmsg_check_attr(cur, name))
+                       return false;
+       }
+
+       return true;
+}
+
 int blobmsg_parse(const struct blobmsg_policy *policy, int policy_len,
                   struct blob_attr **tb, void *data, int len)
 {