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