summaryrefslogtreecommitdiffstats
path: root/sys/net/if_ethersubr.c
diff options
context:
space:
mode:
authorjason <jason@openbsd.org>1999-09-01 21:38:48 +0000
committerjason <jason@openbsd.org>1999-09-01 21:38:48 +0000
commitac4fbd9df1f842243037070297039d70e3df4ffc (patch)
tree4649508a5550e093f97b53e34d5dd8adb673d4fa /sys/net/if_ethersubr.c
parentincrease tcp_iss increment (diff)
downloadwireguard-openbsd-ac4fbd9df1f842243037070297039d70e3df4ffc.tar.xz
wireguard-openbsd-ac4fbd9df1f842243037070297039d70e3df4ffc.zip
o simpler handling of "forme" packets
o when ~IFF_UP, don't act like a bridge for output either
Diffstat (limited to 'sys/net/if_ethersubr.c')
-rw-r--r--sys/net/if_ethersubr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 088923828a4..c22ba6d04ea 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ethersubr.c,v 1.30 1999/08/08 02:42:58 niklas Exp $ */
+/* $OpenBSD: if_ethersubr.c,v 1.31 1999/09/01 21:38:48 jason Exp $ */
/* $NetBSD: if_ethersubr.c,v 1.19 1996/05/07 02:40:30 thorpej Exp $ */
/*
@@ -506,7 +506,7 @@ ether_input(ifp, eh, m)
{
register struct ifqueue *inq;
u_int16_t etype;
- int s, llcfound = 0, forme = 0;
+ int s, llcfound = 0;
register struct llc *l;
struct arpcom *ac = (struct arpcom *)ifp;
@@ -534,16 +534,18 @@ ether_input(ifp, eh, m)
* gets processed as normal.
*/
if (ifp->if_bridge) {
- m = bridge_input(ifp, eh, m, &forme);
+ m = bridge_input(ifp, eh, m);
if (m == NULL)
return;
+ /* The bridge has determined it's for us. */
+ goto decapsulate;
}
#endif
/*
* If packet is unicast and we're in promiscuous mode, make sure it
* is for us. Drop otherwise.
*/
- if (!forme && (m->m_flags & (M_BCAST|M_MCAST)) == 0 &&
+ if ((m->m_flags & (M_BCAST|M_MCAST)) == 0 &&
(ifp->if_flags & IFF_PROMISC)) {
if (bcmp(ac->ac_enaddr, (caddr_t)eh->ether_dhost,
ETHER_ADDR_LEN)) {