svn commit: r210811 - projects/sv/sys/net
Attilio Rao
attilio at FreeBSD.org
Tue Aug 3 16:12:24 UTC 2010
Author: attilio
Date: Tue Aug 3 16:12:23 2010
New Revision: 210811
URL: http://svn.freebsd.org/changeset/base/210811
Log:
Add debugging knob and sync with in_arpinput(), noting it is already in
sync with arpintr().
Modified:
projects/sv/sys/net/netdump_client.c
Modified: projects/sv/sys/net/netdump_client.c
==============================================================================
--- projects/sv/sys/net/netdump_client.c Tue Aug 3 16:08:58 2010 (r210810)
+++ projects/sv/sys/net/netdump_client.c Tue Aug 3 16:12:23 2010 (r210811)
@@ -922,7 +922,10 @@ nd_handle_arp(struct mbuf **mb)
}
ah = mtod(m, struct arphdr *);
- if (ntohs(ah->ar_hrd) != ARPHRD_ETHER) {
+ if (ntohs(ah->ar_hrd) != ARPHRD_ETHER &&
+ ntohs(ar->ar_hrd) != ARPHRD_IEEE802 &&
+ ntohs(ar->ar_hrd) != ARPHRD_ARCNET &&
+ ntohs(ar->ar_hrd) != ARPHRD_IEEE1394) {
NETDDEBUG("nd_handle_arp: unknown hardware address fmt "
"0x%2D)\n", (unsigned char *)&ah->ar_hrd, "");
return;
@@ -952,6 +955,13 @@ nd_handle_arp(struct mbuf **mb)
return;
}
+#ifdef INVARIANTS
+ if (!bcmp(ar_sha(ah), ifp->if_broadcastaddr, ifp->if_addrlen)) {
+ NETDDEBUG("nd_handle_arp: ignoring ARP as link address is "
+ "broadcast.\n");
+ return;
+ }
+
if (isaddr.s_addr == nd_client.s_addr) {
printf("nd_handle_arp: %*D is using my IP address %s!\n",
ifp->if_addrlen, (u_char *)ar_sha(ah), ":",
More information about the svn-src-projects
mailing list