diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2002-03-31 01:01:45 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2002-03-31 01:01:45 +0000 |
commit | 595bb929923125b1f951e13b9730b53ca59e5185 (patch) | |
tree | 8314cc4bc265f3af25fbb17196f371c7d713eb35 /sys/dev/ic/if_wi.c | |
parent | 68031ef80c7c4b90a04aa30c1ad68768360e3d48 (diff) |
Fix logic thinko. In AP mode we were never calling wihap_check_tx() if
the IFF_PROMISC flag was set (e.g. in bridge mode). Found by mickey@
There still seems to be an issue with Lucent stations reporting
1Mbs when the AP is in bridge mode though.
Diffstat (limited to 'sys/dev/ic/if_wi.c')
-rw-r--r-- | sys/dev/ic/if_wi.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/ic/if_wi.c b/sys/dev/ic/if_wi.c index dd8f0a21b41..16c6e580573 100644 --- a/sys/dev/ic/if_wi.c +++ b/sys/dev/ic/if_wi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_wi.c,v 1.33 2002/03/31 00:33:42 mickey Exp $ */ +/* $OpenBSD: if_wi.c,v 1.34 2002/03/31 01:01:44 millert Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -124,7 +124,7 @@ u_int32_t widebug = WIDEBUG; #if !defined(lint) && !defined(__OpenBSD__) static const char rcsid[] = - "$OpenBSD: if_wi.c,v 1.33 2002/03/31 00:33:42 mickey Exp $"; + "$OpenBSD: if_wi.c,v 1.34 2002/03/31 01:01:44 millert Exp $"; #endif /* lint */ #ifdef foo @@ -1673,9 +1673,8 @@ nextpkt: eh = mtod(m0, struct ether_header *); if (sc->wi_ptype == WI_PORTTYPE_AP) { - if (!(ifp->if_flags & IFF_PROMISC) && - !wihap_check_tx(&sc->wi_hostap_info, - eh->ether_dhost, &tx_frame.wi_tx_rate)) { + if (!wihap_check_tx(&sc->wi_hostap_info, eh->ether_dhost, + &tx_frame.wi_tx_rate) && !(ifp->if_flags & IFF_PROMISC)) { if (ifp->if_flags & IFF_DEBUG) printf("wi_start: dropping unassoc dst %s\n", ether_sprintf(eh->ether_dhost)); |