diff --git a/iproute.spec b/iproute.spec index fd1faa1..f118a12 100644 --- a/iproute.spec +++ b/iproute.spec @@ -2,7 +2,7 @@ Summary: Advanced IP routing and network device configuration tools Name: iproute Version: 3.6.0 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/System URL: http://kernel.org/pub/linux/utils/net/%{name}2/ Source0: http://kernel.org/pub/linux/utils/net/%{name}2/%{name}2-%{version}.tar.gz @@ -18,6 +18,7 @@ Patch6: iproute2-example-cbq-service.patch Patch7: iproute2-2.6.35-print-route.patch Patch8: iproute2-2.6.39-create-peer-veth-without-a-name.patch Patch9: iproute2-2.6.39-lnstat-dump-to-stdout.patch +Patch10: iproute2-3.6.0-List-interfaces-without-net-address-by-default.patch License: GPLv2+ and Public Domain BuildRequires: tex(latex) tex(dvips) linuxdoc-tools BuildRequires: flex linux-atm-libs-devel psutils libdb-devel bison @@ -62,6 +63,7 @@ sed -i "s/_VERSION_/%{version}/" man/man8/ss.8 %patch7 -p1 -b .print-route %patch8 -p1 -b .peer-veth-without-name %patch9 -p1 -b .lnstat-dump-to-stdout +%patch10 -p1 -b .list-all %build export LIBDIR=/%{_libdir} @@ -168,6 +170,9 @@ done %{_includedir}/libnetlink.h %changelog +* Thu Oct 04 2012 Petr Šabata - 3.6.0-2 +- List all interfaces by default + * Wed Oct 03 2012 Petr Šabata - 3.6.0-1 - 3.6.0 bump diff --git a/iproute2-3.6.0-List-interfaces-without-net-address-by-default.patch b/iproute2-3.6.0-List-interfaces-without-net-address-by-default.patch new file mode 100644 index 0000000..242cc7c --- /dev/null +++ b/iproute2-3.6.0-List-interfaces-without-net-address-by-default.patch @@ -0,0 +1,87 @@ +From 7f747fd9377b8538adeba7332d25905ba08ac156 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Wed, 3 Oct 2012 16:42:41 +0200 +Subject: [PATCH] iproute2: List interfaces without net address by default +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes regression in iproute2-3.5.1 when `ip addr show' skipped +interfaces without network layer address. + +Wrong output: +1: lo: 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 +2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + link/ether 00:50:54:00:0f:03 brd ff:ff:ff:ff:ff:ff + inet 10.34.25.198/23 brd 10.34.25.255 scope global eth0 + inet6 2620:52:0:2219:250:54ff:fe00:f03/64 scope global dynamic + valid_lft 2591919sec preferred_lft 604719sec + inet6 fe80::250:54ff:fe00:f03/64 scope link + valid_lft forever preferred_lft forever + +Expected output: +1: lo: 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 +2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + link/ether 00:50:54:00:0f:03 brd ff:ff:ff:ff:ff:ff + inet 10.34.25.198/23 brd 10.34.25.255 scope global eth0 + inet6 2620:52:0:2219:250:54ff:fe00:f03/64 scope global dynamic + valid_lft 2591896sec preferred_lft 604696sec + inet6 fe80::250:54ff:fe00:f03/64 scope link + valid_lft forever preferred_lft forever +5: veth1: mtu 1500 qdisc noop state DOWN qlen 1000 + link/ether 8a:ec:35:34:1f:a8 brd ff:ff:ff:ff:ff:ff +6: veth0: mtu 1500 qdisc noop state DOWN qlen 1000 + link/ether 2e:97:ef:77:40:82 brd ff:ff:ff:ff:ff:ff + +Signed-off-by: Petr Písař +Signed-off-by: Petr Šabata +--- + ip/ipaddress.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/ip/ipaddress.c b/ip/ipaddress.c +index 6c11ce4..5498f46 100644 +--- a/ip/ipaddress.c ++++ b/ip/ipaddress.c +@@ -884,6 +884,7 @@ static void ipaddr_filter(struct nlmsg_chain *linfo, struct nlmsg_chain *ainfo) + lp = &linfo->head; + while ( (l = *lp) != NULL) { + int ok = 0; ++ int missing_net_address = 1; + struct ifinfomsg *ifi = NLMSG_DATA(&l->h); + struct nlmsg_list *a; + +@@ -891,8 +892,10 @@ static void ipaddr_filter(struct nlmsg_chain *linfo, struct nlmsg_chain *ainfo) + struct nlmsghdr *n = &a->h; + struct ifaddrmsg *ifa = NLMSG_DATA(n); + +- if (ifa->ifa_index != ifi->ifi_index || +- (filter.family && filter.family != ifa->ifa_family)) ++ if (ifa->ifa_index != ifi->ifi_index) ++ continue; ++ missing_net_address = 0; ++ if (filter.family && filter.family != ifa->ifa_family) + continue; + if ((filter.scope^ifa->ifa_scope)&filter.scopemask) + continue; +@@ -927,6 +930,9 @@ static void ipaddr_filter(struct nlmsg_chain *linfo, struct nlmsg_chain *ainfo) + ok = 1; + break; + } ++ if (missing_net_address && ++ (filter.family == AF_UNSPEC || filter.family == AF_PACKET)) ++ ok = 1; + if (!ok) { + *lp = l->next; + free(l); +-- +1.7.11.4 +