diff options
author | sam <sam@FreeBSD.org> | 2005-08-10 16:22:30 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-08-10 16:22:30 +0000 |
commit | 7d1366bf6d72fe0b21b589eee177dccbdccc5dc5 (patch) | |
tree | b9c0e277abb905c850c4e7b7e0d8615bf32983ff /sys/net80211/ieee80211_proto.c | |
parent | fcb7f09afa00151c86541bef3c214f25a101d786 (diff) | |
download | FreeBSD-src-7d1366bf6d72fe0b21b589eee177dccbdccc5dc5.zip FreeBSD-src-7d1366bf6d72fe0b21b589eee177dccbdccc5dc5.tar.gz |
Clarify/fix handling of the current channel:
o add ic_curchan and use it uniformly for specifying the current
channel instead of overloading ic->ic_bss->ni_chan (or in some
drivers ic_ibss_chan)
o add ieee80211_scanparams structure to encapsulate scanning-related
state captured for rx frames
o move rx beacon+probe response frame handling into separate routines
o change beacon+probe response handling to treat the scan table
more like a scan cache--look for an existing entry before adding
a new one; this combined with ic_curchan use corrects handling of
stations that were previously found at a different channel
o move adhoc neighbor discovery by beacon+probe response frames to
a new ieee80211_add_neighbor routine
Reviewed by: avatar
Tested by: avatar, Michal Mertl
MFC after: 2 weeks
Diffstat (limited to 'sys/net80211/ieee80211_proto.c')
-rw-r--r-- | sys/net80211/ieee80211_proto.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_proto.c b/sys/net80211/ieee80211_proto.c index b76d576..5537b33 100644 --- a/sys/net80211/ieee80211_proto.c +++ b/sys/net80211/ieee80211_proto.c @@ -922,7 +922,7 @@ ieee80211_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg * beacons on the channel. */ if ((ic->ic_flags & IEEE80211_F_ASCAN) && - (ni->ni_chan->ic_flags & IEEE80211_CHAN_PASSIVE) == 0) { + (ic->ic_curchan->ic_flags & IEEE80211_CHAN_PASSIVE) == 0) { ieee80211_send_probereq(ni, ic->ic_myaddr, ifp->if_broadcastaddr, ifp->if_broadcastaddr, @@ -1043,7 +1043,7 @@ ieee80211_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg ieee80211_print_essid(ic->ic_bss->ni_essid, ni->ni_esslen); printf(" channel %d start %uMb\n", - ieee80211_chan2ieee(ic, ni->ni_chan), + ieee80211_chan2ieee(ic, ic->ic_curchan), IEEE80211_RATE2MBS(ni->ni_rates.rs_rates[ni->ni_txrate])); } #endif |