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 [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to