summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-03-26 07:11:31 +0000
committersam <sam@FreeBSD.org>2005-03-26 07:11:31 +0000
commit262d2351824b888de35991ddaa533e69ab510076 (patch)
tree654466f53cc1e9ee60ce271af14a21e47dff82b5 /sys/net80211
parent43981486c2b741116e1d7d2f92ec4e43329292e3 (diff)
downloadFreeBSD-src-262d2351824b888de35991ddaa533e69ab510076.zip
FreeBSD-src-262d2351824b888de35991ddaa533e69ab510076.tar.gz
don't include wme ie in probe request frames; it was meant for probe response
frames--move it there Noticed by: Ghislain Mary Submitted by: Michael Wong
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_output.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index e8e59fd..919b413 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -944,14 +944,12 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
* [tlv] ssid
* [tlv] supported rates
* [tlv] extended supported rates
- * [tlv] WME (optional)
* [tlv] user-specified ie's
*/
m = ieee80211_getmgtframe(&frm,
2 + IEEE80211_NWID_LEN
+ 2 + IEEE80211_RATE_SIZE
+ 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE)
- + sizeof(struct ieee80211_wme_param)
+ (ic->ic_opt_ie != NULL ? ic->ic_opt_ie_len : 0)
);
if (m == NULL)
@@ -961,8 +959,6 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
mode = ieee80211_chan2mode(ic, ni->ni_chan);
frm = ieee80211_add_rates(frm, &ic->ic_sup_rates[mode]);
frm = ieee80211_add_xrates(frm, &ic->ic_sup_rates[mode]);
- if (ic->ic_flags & IEEE80211_F_WME)
- frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
if (ic->ic_opt_ie != NULL) {
memcpy(frm, ic->ic_opt_ie, ic->ic_opt_ie_len);
frm += ic->ic_opt_ie_len;
@@ -987,6 +983,7 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
* [tlv] extended rate phy (ERP)
* [tlv] extended supported rates
* [tlv] WPA
+ * [tlv] WME (optional)
*/
m = ieee80211_getmgtframe(&frm,
8
@@ -1001,6 +998,7 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
/* XXX !WPA1+WPA2 fits w/o a cluster */
+ (ic->ic_flags & IEEE80211_F_WPA ?
2*sizeof(struct ieee80211_ie_wpa) : 0)
+ + sizeof(struct ieee80211_wme_param)
);
if (m == NULL)
senderr(ENOMEM, is_tx_nobuf);
@@ -1053,6 +1051,8 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
if (ic->ic_curmode == IEEE80211_MODE_11G)
frm = ieee80211_add_erp(frm, ic);
frm = ieee80211_add_xrates(frm, &ni->ni_rates);
+ if (ic->ic_flags & IEEE80211_F_WME)
+ frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *);
break;
OpenPOWER on IntegriCloud