summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-01-18 19:52:36 +0000
committersam <sam@FreeBSD.org>2005-01-18 19:52:36 +0000
commit5d86ecca9fc1ae8d87d4f8078545386648502074 (patch)
tree074ddca363800bf22350d6da8ec4fc366fee23b8
parent6d14143c5830ded2a2a898b92264e5d68d6d2762 (diff)
downloadFreeBSD-src-5d86ecca9fc1ae8d87d4f8078545386648502074.zip
FreeBSD-src-5d86ecca9fc1ae8d87d4f8078545386648502074.tar.gz
do fixed rate check when considering if a scan candidate is suitable so when
it's time to join the bss we can't get an error
-rw-r--r--sys/net80211/ieee80211_node.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index f6c49bd..d16a687 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -479,7 +479,8 @@ ieee80211_match_bss(struct ieee80211com *ic, struct ieee80211_node *ni)
if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY)
fail |= 0x04;
}
- rate = ieee80211_fix_rate(ic, ni, IEEE80211_F_DONEGO);
+ rate = ieee80211_fix_rate(ic, ni,
+ IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE);
if (rate & IEEE80211_RATE_BASIC)
fail |= 0x08;
if (ic->ic_des_esslen != 0 &&
@@ -749,15 +750,10 @@ ieee80211_sta_join(struct ieee80211com *ic, struct ieee80211_node *selbs)
if (ic->ic_opmode == IEEE80211_M_IBSS) {
/*
- * Check rate set before committing to this node.
+ * Delete unusable rates; we've already checked
+ * that the negotiated rate set is acceptable.
*/
- ieee80211_fix_rate(ic, selbs, IEEE80211_F_DOFRATE |
- IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
- if (selbs->ni_rates.rs_nrates == 0) {
- selbs->ni_fails++;
- ic->ic_stats.is_ibss_norate++;
- return 0;
- }
+ ieee80211_fix_rate(ic, selbs, IEEE80211_F_DODEL);
/*
* Create the neighbor table; it will already
* exist if we are simply switching mastership.
OpenPOWER on IntegriCloud