From owner-freebsd-net Mon Feb 5 16:47:57 2001 Delivered-To: freebsd-net@freebsd.org Received: from hera.drwilco.net (10dyn83.dh.casema.net [212.64.31.83]) by hub.freebsd.org (Postfix) with ESMTP id D117B37B684; Mon, 5 Feb 2001 16:47:36 -0800 (PST) Received: from ceres.drwilco.nl (ceres.drwilco.net [10.1.1.19]) by hera.drwilco.net (8.11.2/8.11.1) with ESMTP id f1619vo03970; Tue, 6 Feb 2001 02:09:59 +0100 (CET) (envelope-from drwilco@drwilco.nl) Message-Id: <4.3.2.7.0.20010206001535.00cd8530@mail.bsdchicks.com> X-Sender: lists@mail.bsdchicks.com X-Mailer: QUALCOMM Windows Eudora Version 4.3.2 Date: Tue, 06 Feb 2001 00:17:55 +0100 To: Julian Elischer From: "Rogier R. Mulhuijzen" Subject: Re: BRIDGE breaks ARP? (more info) Cc: Luigi Rizzo , Patrick Bihan-Faou , freebsd-net@FreeBSD.ORG, richw@webcom.com, julian@FreeBSD.ORG In-Reply-To: <3A7F0806.9B81D98@elischer.org> References: <200102052011.f15KBJb24985@iguana.aciri.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Not your culpa at all. It was my patch and I made a dumb mistake. *tries to hide face in shame* DocWilco At 12:07 5-2-01 -0800, you wrote: >Ok, mea culpa > >I figured it out.. >Luigi.. does this fix it? > > > (void)memcpy(&itaddr, ea->arp_tpa, sizeof (itaddr)); > TAILQ_FOREACH(ia, &in_ifaddrhead, ia_link) { >#ifdef BRIDGE > /* > * For a bridge, we want to check the address irrespective > * of the receive interface. (This will change slightly > * when we have clusters of interfaces). > */ >#define BRIDGE_TEST (do_bridge) >#else >#define BRIDGE_TEST 0 /* cc will optiise the test away */ >#endif > if ((BRIDGE_TEST) || (ia->ia_ifp == &ac->ac_if)) { > maybe_ia = ia; > if ((itaddr.s_addr == ia->ia_addr.sin_addr.s_addr) || > (isaddr.s_addr == > ia->ia_addr.sin_addr.s_addr)) { > break; > } > } > } > if (maybe_ia == 0) { > m_freem(m); > return; > } > myaddr = ia ? ia->ia_addr.sin_addr : maybe_ia->ia_addr.sin_addr; > if (!bcmp((caddr_t)ea->arp_sha, (caddr_t)ac->ac_enaddr, > sizeof (ea->arp_sha))) { > m_freem(m); /* it's from me, ignore it. */ > return; > } > > >To Unsubscribe: send mail to majordomo@FreeBSD.org >with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message