diff options
author | sam <sam@FreeBSD.org> | 2006-03-06 17:23:26 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2006-03-06 17:23:26 +0000 |
commit | d3539a10d4a53f5fd3a54756999431b21064ff5e (patch) | |
tree | 6b913e3d2fa3db34c737f663875e5a355a66e686 /sys/net80211/ieee80211_input.c | |
parent | 042a9c9ce37225467a4d0b0a5a8198a135aff48c (diff) | |
download | FreeBSD-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.c | 12 |
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; |