diff options
author | Hakan Olsson <ho@cvs.openbsd.org> | 2003-12-18 09:23:15 +0000 |
---|---|---|
committer | Hakan Olsson <ho@cvs.openbsd.org> | 2003-12-18 09:23:15 +0000 |
commit | 500d47bdcfc062c26442b82c44d9c2763124417e (patch) | |
tree | c55eff1e1083ab927cc786ba89407151712213e5 /sys | |
parent | 455f4c4db1979d203380c14a8e5f8ddcc1ff4ff1 (diff) |
Permit ethernet multicast addresses, as used by some HA/failover solutions. Suggested by and ok markus@.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/if_ether.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index a7de46f9948..7153125e150 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ether.c,v 1.52 2003/12/10 07:22:43 itojun Exp $ */ +/* $OpenBSD: if_ether.c,v 1.53 2003/12/18 09:23:14 ho Exp $ */ /* $NetBSD: if_ether.c,v 1.31 1996/05/11 12:59:58 mycroft Exp $ */ /* @@ -601,18 +601,13 @@ in_arpinput(m) if (!bcmp((caddr_t)ea->arp_sha, enaddr, sizeof (ea->arp_sha))) goto out; /* it's from me, ignore it. */ - if (ETHER_IS_MULTICAST (&ea->arp_sha[0])) { + if (ETHER_IS_MULTICAST (&ea->arp_sha[0])) if (!bcmp((caddr_t)ea->arp_sha, (caddr_t)etherbroadcastaddr, - sizeof (ea->arp_sha))) - log(LOG_ERR, - "arp: ether address is broadcast for IP address %s!\n", - inet_ntoa(isaddr)); - else - log(LOG_ERR, - "arp: ether address is multicast for IP address %s!\n", - inet_ntoa(isaddr)); - goto out; - } + sizeof (ea->arp_sha))) { + log(LOG_ERR, "arp: ether address is broadcast for " + "IP address %s!\n", inet_ntoa(isaddr)); + goto out; + } if (myaddr.s_addr && isaddr.s_addr == myaddr.s_addr) { log(LOG_ERR, "duplicate IP address %s sent from ethernet address %s\n", |