summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_carp.c
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2015-11-09 10:35:33 +0000
committermelifaro <melifaro@FreeBSD.org>2015-11-09 10:35:33 +0000
commit90aacc3eb3f432db004a9ee2b93ce58c0ac7a188 (patch)
tree7cf9586dd8a7f503c743a143724be1df8764fdc7 /sys/netinet/ip_carp.c
parenta0ced91366c8e5d12333b1c0cc8cb100fd209fa2 (diff)
downloadFreeBSD-src-90aacc3eb3f432db004a9ee2b93ce58c0ac7a188.zip
FreeBSD-src-90aacc3eb3f432db004a9ee2b93ce58c0ac7a188.tar.gz
Decompose arp_ifinit() into arp_add_ifa_lle() and arp_announce_ifaddr().
Rename arp_ifinit2() into arp_announce_ifaddr(). Eliminate zeroing ifa_rtrequest: it was used for calling arp_rtrequest() which was responsible for handling route cloning requests. It became obsolete since r186119 (L2/L3 split).
Diffstat (limited to 'sys/netinet/ip_carp.c')
-rw-r--r--sys/netinet/ip_carp.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index c09d895..849d7d2 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -1009,10 +1009,14 @@ static void
carp_send_arp(struct carp_softc *sc)
{
struct ifaddr *ifa;
+ struct in_addr addr;
- CARP_FOREACH_IFA(sc, ifa)
- if (ifa->ifa_addr->sa_family == AF_INET)
- arp_ifinit2(sc->sc_carpdev, ifa, LLADDR(&sc->sc_addr));
+ CARP_FOREACH_IFA(sc, ifa) {
+ if (ifa->ifa_addr->sa_family != AF_INET)
+ continue;
+ addr = ((struct sockaddr_in *)ifa->ifa_addr)->sin_addr;
+ arp_announce_ifaddr(sc->sc_carpdev, addr, LLADDR(&sc->sc_addr));
+ }
}
int
OpenPOWER on IntegriCloud