Deleted Added
full compact
27c27
< __FBSDID("$FreeBSD: head/sys/net80211/ieee80211_scan_sta.c 173368 2007-11-05 17:24:28Z sam $");
---
> __FBSDID("$FreeBSD: head/sys/net80211/ieee80211_scan_sta.c 173862 2007-11-23 05:58:37Z sam $");
285c285,286
< if (ise->se_chan == NULL || !offchan) {
---
> if (offchan) {
> struct ieee80211_channel *c;
287,295c288,289
< * NB: this is not right when the frame is received
< * off-channel but se_chan is assumed set by code
< * elsewhere so we must assign something; the scan
< * entry should be ignored because the rssi will be
< * zero (because the frames are received off-channel).
< *
< * We could locate the correct channel using sp->chan
< * but it's not clear we should join an ap that we
< * never see on-channel during a scan.
---
> * Off-channel, locate the home/bss channel for the sta
> * using the value broadcast in the DSPARMS ie.
296a291,298
> c = ieee80211_find_channel_byieee(ic, sp->bchan,
> sp->curchan->ic_flags);
> if (c == NULL && ise->se_chan == NULL) {
> /* should not happen, pick something */
> c = sp->curchan;
> }
> ise->se_chan = c;
> } else
298d299
< }