diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-12-23 07:15:38 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-28 16:54:58 -0500 |
commit | 8e664fb3fd2b04e3ac5fad7f046000ba54e0e275 (patch) | |
tree | cf811ffed7d7643b72608a5eebd25baffd57fcb3 /net/mac80211/ieee80211_i.h | |
parent | 77c8144ad3ee7fae834e13cb7e83f5b7c8c5329e (diff) |
mac80211: split up and insert custom IEs correctly
Currently, we insert all user-specified IEs before the HT
IE for association, and after the HT IE for probe requests.
For association, that's correct only if the user-specified
IEs are RSN only, incorrect in all other cases including
WPA. Change this to split apart the user-specified IEs in
two places for association: before the HT IE (e.g. RSN),
after the HT IE (generally empty right now I think?) and
after WMM (all other vendor-specific IEs). For probes,
split the IEs in different places to be correct according
to the spec.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 97b6076b492e..6ea4ffbf84d8 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1148,6 +1148,10 @@ int __ieee80211_request_smps(struct ieee80211_sub_if_data *sdata, | |||
1148 | void ieee80211_recalc_smps(struct ieee80211_local *local, | 1148 | void ieee80211_recalc_smps(struct ieee80211_local *local, |
1149 | struct ieee80211_sub_if_data *forsdata); | 1149 | struct ieee80211_sub_if_data *forsdata); |
1150 | 1150 | ||
1151 | size_t ieee80211_ie_split(const u8 *ies, size_t ielen, | ||
1152 | const u8 *ids, int n_ids, size_t offset); | ||
1153 | size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); | ||
1154 | |||
1151 | /* internal work items */ | 1155 | /* internal work items */ |
1152 | void ieee80211_work_init(struct ieee80211_local *local); | 1156 | void ieee80211_work_init(struct ieee80211_local *local); |
1153 | void ieee80211_add_work(struct ieee80211_work *wk); | 1157 | void ieee80211_add_work(struct ieee80211_work *wk); |