From ac0c68e1db36d8c403ba5d34a3b2b27af044118e Mon Sep 17 00:00:00 2001 From: hpeyerl Date: Sun, 12 Dec 1993 20:24:37 +0000 Subject: [PATCH] ie. also pass up any packet with the multicast bit set in the ethernet >From: Havard Eidnes --- sys/arch/i386/isa/if_ed.c | 7 +++---- sys/dev/isa/if_ed.c | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/sys/arch/i386/isa/if_ed.c b/sys/arch/i386/isa/if_ed.c index 80748d48c210..8384c3af4247 100644 --- a/sys/arch/i386/isa/if_ed.c +++ b/sys/arch/i386/isa/if_ed.c @@ -20,7 +20,7 @@ */ /* - * $Id: if_ed.c,v 1.12 1993/12/10 10:57:47 cgd Exp $ + * $Id: if_ed.c,v 1.13 1993/12/12 20:24:37 hpeyerl Exp $ */ /* @@ -2089,14 +2089,13 @@ ed_get_packet(sc, buf, len) * Note that the interface cannot be in promiscuous mode if * there are no BPF listeners. And if we are in promiscuous * mode, we have to check if this packet is really ours. - * - * XXX This test does not support multicasts. */ if ((sc->arpcom.ac_if.if_flags & IFF_PROMISC) && bcmp(eh->ether_dhost, sc->arpcom.ac_enaddr, sizeof(eh->ether_dhost)) != 0 && bcmp(eh->ether_dhost, etherbroadcastaddr, - sizeof(eh->ether_dhost)) != 0) { + sizeof(eh->ether_dhost)) != 0 && + (eh->ether_dhost[0] & 1) == 0) { m_freem(head); return; diff --git a/sys/dev/isa/if_ed.c b/sys/dev/isa/if_ed.c index 80748d48c210..8384c3af4247 100644 --- a/sys/dev/isa/if_ed.c +++ b/sys/dev/isa/if_ed.c @@ -20,7 +20,7 @@ */ /* - * $Id: if_ed.c,v 1.12 1993/12/10 10:57:47 cgd Exp $ + * $Id: if_ed.c,v 1.13 1993/12/12 20:24:37 hpeyerl Exp $ */ /* @@ -2089,14 +2089,13 @@ ed_get_packet(sc, buf, len) * Note that the interface cannot be in promiscuous mode if * there are no BPF listeners. And if we are in promiscuous * mode, we have to check if this packet is really ours. - * - * XXX This test does not support multicasts. */ if ((sc->arpcom.ac_if.if_flags & IFF_PROMISC) && bcmp(eh->ether_dhost, sc->arpcom.ac_enaddr, sizeof(eh->ether_dhost)) != 0 && bcmp(eh->ether_dhost, etherbroadcastaddr, - sizeof(eh->ether_dhost)) != 0) { + sizeof(eh->ether_dhost)) != 0 && + (eh->ether_dhost[0] & 1) == 0) { m_freem(head); return;