summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_input.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2006-03-06 17:23:26 +0000
committersam <sam@FreeBSD.org>2006-03-06 17:23:26 +0000
commitd3539a10d4a53f5fd3a54756999431b21064ff5e (patch)
tree6b913e3d2fa3db34c737f663875e5a355a66e686 /sys/net80211/ieee80211_input.c
parent042a9c9ce37225467a4d0b0a5a8198a135aff48c (diff)
downloadFreeBSD-src-d3539a10d4a53f5fd3a54756999431b21064ff5e.zip
FreeBSD-src-d3539a10d4a53f5fd3a54756999431b21064ff5e.tar.gz
when scanning channels marked passive defer probe request until
802.11 traffic is seen; fixes problems with ap's hiding their ssid Obtained from: atheros MFC after: 1 week
Diffstat (limited to 'sys/net80211/ieee80211_input.c')
-rw-r--r--sys/net80211/ieee80211_input.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 1c2fa86..965e372 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -1953,6 +1953,18 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
* If scanning, just pass information to the scan module.
*/
if (ic->ic_flags & IEEE80211_F_SCAN) {
+ if (ic->ic_flags_ext & IEEE80211_FEXT_PROBECHAN) {
+ /*
+ * Actively scanning a channel marked passive;
+ * send a probe request now that we know there
+ * is 802.11 traffic present.
+ *
+ * XXX check if the beacon we recv'd gives
+ * us what we need and suppress the probe req
+ */
+ ieee80211_probe_curchan(ic, 1);
+ ic->ic_flags_ext &= ~IEEE80211_FEXT_PROBECHAN;
+ }
ieee80211_add_scan(ic, &scan, wh,
subtype, rssi, rstamp);
return;
OpenPOWER on IntegriCloud