[PATCH iproute2] iplink: display the value of IFLA_PROMISCUITY
From: Nicolas Dichtel <hidden>
Date: 2013-01-28 14:47:55
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Nicolas Dichtel <hidden>
Date: 2013-01-28 14:47:55
Subsystem:
the rest · Maintainer:
Linus Torvalds
This is usefull to know the 'real' status of an interface (the flag IFF_PROMISC is exported by the kernel only when the user set it explicitly, for example it will not be exported when a tcpdump is running). Note that I add a space after qlen (instead of before promiscuity) to be coherent with the rest of the code. Signed-off-by: Nicolas Dichtel <redacted> --- ip/ipaddress.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 5498f46..0d988ae 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c@@ -171,7 +171,7 @@ static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1]) qlen = ifr.ifr_qlen; } if (qlen) - fprintf(f, "qlen %d", qlen); + fprintf(f, "qlen %d ", qlen); } static const char *link_modes[] = {
@@ -438,6 +438,9 @@ int print_linkinfo(const struct sockaddr_nl *who, if (filter.showqueue) print_queuelen(fp, tb); + if (tb[IFLA_PROMISCUITY] && *(int*)RTA_DATA(tb[IFLA_PROMISCUITY]) > 0) + fprintf(fp, "promiscuity %u ", *(int*)RTA_DATA(tb[IFLA_PROMISCUITY])); + if (!filter.family || filter.family == AF_PACKET) { SPRINT_BUF(b1); fprintf(fp, "%s", _SL_);
--
1.8.0.1