blobmsg: remove the unnecessary name argument from blobmsg_check_attr_list, infer...
authorFelix Fietkau <nbd@openwrt.org>
Sun, 24 Jun 2012 19:11:06 +0000 (21:11 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 24 Jun 2012 19:11:06 +0000 (21:11 +0200)
blobmsg.c
blobmsg.h

index 12f603c774ab39a985982d88340344f61b619674..2d584a110294708758987135d618d74c9f349fef 100644 (file)
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -61,11 +61,23 @@ 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, bool name)
+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;
index f5043510b04fceecc3161841f01e0ecb98fc0014..94b145c2d47a5ac0b62a6569ef838ae99ebb4451 100644 (file)
--- a/blobmsg.h
+++ b/blobmsg.h
@@ -78,7 +78,7 @@ static inline int blobmsg_data_len(const struct blob_attr *attr)
 }
 
 bool blobmsg_check_attr(const struct blob_attr *attr, bool name);
-bool blobmsg_check_attr_list(const struct blob_attr *attr, int type, bool name);
+bool blobmsg_check_attr_list(const struct blob_attr *attr, int type);
 int blobmsg_parse(const struct blobmsg_policy *policy, int policy_len,
                   struct blob_attr **tb, void *data, int len);