From owner-svn-src-projects@FreeBSD.ORG Tue Aug 3 16:12:24 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47DBF1065670; Tue, 3 Aug 2010 16:12:24 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 36DAF8FC17; Tue, 3 Aug 2010 16:12:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o73GCOlh094268; Tue, 3 Aug 2010 16:12:24 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o73GCOvQ094266; Tue, 3 Aug 2010 16:12:24 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201008031612.o73GCOvQ094266@svn.freebsd.org> From: Attilio Rao Date: Tue, 3 Aug 2010 16:12:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r210811 - projects/sv/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Aug 2010 16:12:24 -0000 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), ":",