diff options
author | sam <sam@FreeBSD.org> | 2005-01-18 19:52:36 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-01-18 19:52:36 +0000 |
commit | 5d86ecca9fc1ae8d87d4f8078545386648502074 (patch) | |
tree | 074ddca363800bf22350d6da8ec4fc366fee23b8 | |
parent | 6d14143c5830ded2a2a898b92264e5d68d6d2762 (diff) | |
download | FreeBSD-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.c | 14 |
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. |