From e2af6ce3d5f97600e8c953612608523a4ff727bd Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 27 May 2013 20:30:49 +0200 Subject: examples: rtnl-link-dump: display HW address --- examples/rtnl/rtnl-link-dump.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'examples/rtnl/rtnl-link-dump.c') diff --git a/examples/rtnl/rtnl-link-dump.c b/examples/rtnl/rtnl-link-dump.c index 159f3b6..f717cea 100644 --- a/examples/rtnl/rtnl-link-dump.c +++ b/examples/rtnl/rtnl-link-dump.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,12 @@ static int data_attr_cb(const struct nlattr *attr, void *data) return MNL_CB_OK; switch(type) { + case IFLA_ADDRESS: + if (mnl_attr_validate(attr, MNL_TYPE_BINARY) < 0) { + perror("mnl_attr_validate"); + return MNL_CB_ERROR; + } + break; case IFLA_MTU: if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) { perror("mnl_attr_validate"); @@ -55,7 +62,18 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) printf("mtu=%d ", mnl_attr_get_u32(tb[IFLA_MTU])); } if (tb[IFLA_IFNAME]) { - printf("name=%s", mnl_attr_get_str(tb[IFLA_IFNAME])); + printf("name=%s ", mnl_attr_get_str(tb[IFLA_IFNAME])); + } + if (tb[IFLA_ADDRESS]) { + uint8_t *hwaddr = mnl_attr_get_payload(tb[IFLA_ADDRESS]); + int i; + + printf("hwaddr="); + for (i=0; i