aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2015-11-24 15:31:00 +0100
committerStephen Hemminger <shemming@brocade.com>2015-11-29 11:47:29 -0800
commitc6995c48025233902a5b0c5fe88654e17ea934f6 (patch)
treebed3b27f93943b87f6e1160898b36a6c698009bf
parent68ef50724914e17ef47871e432618d73cce0c6c9 (diff)
downloadandroid_external_iproute2-c6995c48025233902a5b0c5fe88654e17ea934f6.tar.gz
android_external_iproute2-c6995c48025233902a5b0c5fe88654e17ea934f6.tar.bz2
android_external_iproute2-c6995c48025233902a5b0c5fe88654e17ea934f6.zip
ipaddress: simplify ipaddr_flush()
Since it's no longer relevant whether an IP address is primary or secondary when flushing, ipaddr_flush() can be simplified a bit. Signed-off-by: Phil Sutter <phil@nwl.cc>
-rw-r--r--ip/ipaddress.c38
1 files changed, 1 insertions, 37 deletions
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 05358c9..26e91c9 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1148,28 +1148,6 @@ brief_exit:
return 0;
}
-static int print_addrinfo_primary(const struct sockaddr_nl *who,
- struct nlmsghdr *n, void *arg)
-{
- struct ifaddrmsg *ifa = NLMSG_DATA(n);
-
- if (ifa->ifa_flags & IFA_F_SECONDARY)
- return 0;
-
- return print_addrinfo(who, n, arg);
-}
-
-static int print_addrinfo_secondary(const struct sockaddr_nl *who,
- struct nlmsghdr *n, void *arg)
-{
- struct ifaddrmsg *ifa = NLMSG_DATA(n);
-
- if (!(ifa->ifa_flags & IFA_F_SECONDARY))
- return 0;
-
- return print_addrinfo(who, n, arg);
-}
-
struct nlmsg_list
{
struct nlmsg_list *next;
@@ -1420,26 +1398,12 @@ static int ipaddr_flush(void)
filter.flushe = sizeof(flushb);
while ((max_flush_loops == 0) || (round < max_flush_loops)) {
- const struct rtnl_dump_filter_arg a[3] = {
- {
- .filter = print_addrinfo_secondary,
- .arg1 = stdout,
- },
- {
- .filter = print_addrinfo_primary,
- .arg1 = stdout,
- },
- {
- .filter = NULL,
- .arg1 = NULL,
- },
- };
if (rtnl_wilddump_request(&rth, filter.family, RTM_GETADDR) < 0) {
perror("Cannot send dump request");
exit(1);
}
filter.flushed = 0;
- if (rtnl_dump_filter_l(&rth, a) < 0) {
+ if (rtnl_dump_filter(&rth, print_addrinfo, stdout) < 0) {
fprintf(stderr, "Flush terminated\n");
exit(1);
}