]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Fix regression with 'ip address show'
authorMike Frysinger <vapier@gentoo.org>
Mon, 13 Aug 2012 15:09:52 +0000 (08:09 -0700)
committerStephen Hemminger <shemminger@vyatta.com>
Mon, 13 Aug 2012 15:09:52 +0000 (08:09 -0700)
`ip a s` no longer shows addresses since 3.4.0 works, but 3.5.0,

the simple test case:
make clean && make -j -s && ./ip/ip a s lo

before that change, i would get:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

but after, i now get:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

seems like the bug was introduced in the middle of that patch:

- if (filter.family != AF_PACKET) {
+ if (filter.family && filter.family != AF_PACKET) {
+ if (filter.oneline)
+ no_link = 1;
+
  if (rtnl_wilddump_request(&rth, filter.family, RTM_GETADDR) < 0) {
  perror("Cannot send dump request");
  exit(1);

if i revert the change to the if statement there, `ip a s` works for me again.

ip/ipaddress.c

index 37deda50ae40a4c4385158e0b009c3a345f0fce5..69a63b3142f3d2340d2ee0bd6fb17516e0515559 100644 (file)
@@ -1018,7 +1018,7 @@ static int ipaddr_list_or_flush(int argc, char **argv, int flush)
                exit(1);
        }
 
-       if (filter.family && filter.family != AF_PACKET) {
+       if (filter.family != AF_PACKET) {
                if (filter.oneline)
                        no_link = 1;