List all interfaces by default
This commit is contained in:
parent
a4f09633f9
commit
9851a6c3f0
@ -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 <contyk@redhat.com> - 3.6.0-2
|
||||
- List all interfaces by default
|
||||
|
||||
* Wed Oct 03 2012 Petr Šabata <contyk@redhat.com> - 3.6.0-1
|
||||
- 3.6.0 bump
|
||||
|
||||
|
@ -0,0 +1,87 @@
|
||||
From 7f747fd9377b8538adeba7332d25905ba08ac156 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
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: <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
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <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
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST> 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: <BROADCAST,MULTICAST> 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ř <ppisar@redhat.com>
|
||||
Signed-off-by: Petr Šabata <contyk@redhat.com>
|
||||
---
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user