diff options
author | bschmidt <bschmidt@FreeBSD.org> | 2010-04-10 13:54:00 +0000 |
---|---|---|
committer | bschmidt <bschmidt@FreeBSD.org> | 2010-04-10 13:54:00 +0000 |
commit | a98b1eb99d6bf1fe47d49c33fcdcab7c8709ed7c (patch) | |
tree | 54851ae20002dab4a38a642861b996e212912609 /sys/dev/ath/if_ath.c | |
parent | d89608b359c0241db9538907fc2d58a4d53e7109 (diff) | |
download | FreeBSD-src-a98b1eb99d6bf1fe47d49c33fcdcab7c8709ed7c.zip FreeBSD-src-a98b1eb99d6bf1fe47d49c33fcdcab7c8709ed7c.tar.gz |
Add WPA-None support:
* WPA-None requires ap_scan=2:
The major difference between ap_scan=1 (default) and 2 is, that no
IEEE80211_IOC_SCAN* ioctls/functions are called, though, there is a
dependency on those. For example the call to wpa_driver_bsd_scan()
sets the interface UP, this never happens, therefore the interface
must be marked up in wpa_driver_bsd_associate(). IEEE80211_IOC_SSID
also is not called, which means that the SSID has not been set prior
to the IEEE80211_MLME_ASSOC call.
* WPA-None has no support for sequence number updates, it doesn't make
sense to check for replay violations..
* I had some crashes right after the switch to RUN state, issue is
that sc->sc_lastrs was not yet defined.
Approved by: rpaulo (mentor)
MFC after: 3 weeks
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r-- | sys/dev/ath/if_ath.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index d1ddb2d..5847489 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -3654,8 +3654,14 @@ ath_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m, case IEEE80211_FC0_SUBTYPE_PROBE_RESP: if (vap->iv_opmode == IEEE80211_M_IBSS && vap->iv_state == IEEE80211_S_RUN) { - uint32_t rstamp = sc->sc_lastrs->rs_tstamp; - u_int64_t tsf = ath_extend_tsf(rstamp, + uint32_t rstamp; + uint64_t tsf; + + if (sc->sc_lastrs == NULL) + break; + + rstamp = sc->sc_lastrs->rs_tstamp; + tsf = ath_extend_tsf(rstamp, ath_hal_gettsf64(sc->sc_ah)); /* * Handle ibss merge as needed; check the tsf on the |