[<prev] [next>] [day] [month] [year] [list]
Message-Id: <200812100033.28850.ben@differentialschokolade.org>
Date: Wed, 10 Dec 2008 00:33:28 +0100
From: Benedikt Gollatz <ben@...ferentialschokolade.org>
To: netdev@...r.kernel.org
Subject: Minor bug in "ip addr" output
There is a minor problem in iproute2 regarding the output of "ip -6 addr".
Preferred lifetimes of IPv6 prefixes are printed as unsigned integers even
though they may become negative (for deprecated prefixes).
As I've argued in <http://bugzilla.kernel.org/show_bug.cgi?id=10880>, I think
this is partly because of an inconsistency in the kernel APIs, but since
nobody seemed interested, I guess it has to be dealt with by application
developers.
The following patch fixes the problem.
--- a/ip/ipaddress.c 2008-07-25 22:46:07.000000000 +0200
+++ b/ip/ipaddress.c 2008-12-08 03:29:27.000000000 +0100
@@ -360,4 +360,5 @@
struct ifaddrmsg *ifa = NLMSG_DATA(n);
int len = n->nlmsg_len;
+ int deprecated = 0;
struct rtattr * rta_tb[IFA_MAX+1];
char abuf[256];
@@ -489,4 +490,5 @@
if (ifa->ifa_flags&IFA_F_DEPRECATED) {
ifa->ifa_flags &= ~IFA_F_DEPRECATED;
+ deprecated = 1;
fprintf(fp, "deprecated ");
}
@@ -517,7 +519,12 @@
if (ci->ifa_prefered == INFINITY_LIFE_TIME)
sprintf(buf+strlen(buf), " preferred_lft forever");
- else
- sprintf(buf+strlen(buf), " preferred_lft %usec",
- ci->ifa_prefered);
+ else {
+ if (deprecated)
+ sprintf(buf+strlen(buf), " preferred_lft %dsec",
+ ci->ifa_prefered);
+ else
+ sprintf(buf+strlen(buf), " preferred_lft %usec",
+ ci->ifa_prefered);
+ }
fprintf(fp, " %s", buf);
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists