summaryrefslogtreecommitdiffstats
path: root/examples/rtnl-route-dump.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2010-05-09 20:17:54 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2010-05-09 20:17:54 +0200
commita5f25889216411ad7492047fafe6de03b8408440 (patch)
tree3716ffb20863ecfd4edaf4ff33298c3e88bd1e42 /examples/rtnl-route-dump.c
parentcbded627a15baf792465c0cbe960b36cb9408fe2 (diff)
relax mnl_attr_type_valid() checkings and change errno value
This patch relaxes strict attribute checkings in the example files. I have also changed the errno value, now it's EOPNOTSUPP instead of EINVAL. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'examples/rtnl-route-dump.c')
-rw-r--r--examples/rtnl-route-dump.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/examples/rtnl-route-dump.c b/examples/rtnl-route-dump.c
index bc038cd..34c95cf 100644
--- a/examples/rtnl-route-dump.c
+++ b/examples/rtnl-route-dump.c
@@ -17,10 +17,10 @@
static int data_attr_cb2(const struct nlattr *attr, void *data)
{
- if (mnl_attr_type_valid(attr, RTAX_MAX) < 0) {
- perror("mnl_attr_type_valid");
- return MNL_CB_ERROR;
- }
+ /* skip unsupported attribute in user-space */
+ if (mnl_attr_type_valid(attr, RTAX_MAX) < 0)
+ return MNL_CB_OK;
+
if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) {
perror("mnl_attr_validate");
return MNL_CB_ERROR;
@@ -76,10 +76,9 @@ static int data_attr_cb(const struct nlattr *attr, void *data)
const struct nlattr **tb = (const struct nlattr **)data;
int type = mnl_attr_get_type(attr);
- if (mnl_attr_type_valid(attr, RTA_MAX) < 0) {
- perror("mnl_attr_type_valid");
- return MNL_CB_ERROR;
- }
+ /* skip unsupported attribute in user-space */
+ if (mnl_attr_type_valid(attr, RTA_MAX) < 0)
+ return MNL_CB_OK;
switch(type) {
case RTA_TABLE: