aboutsummaryrefslogtreecommitdiffstats
path: root/src/ap/beacon.c
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2015-01-21 13:19:05 -0800
committerDmitry Shmidt <dimitrysh@google.com>2015-01-21 13:26:50 -0800
commit2f74e36e84064ffa32f82f3decf36b653c7e4fad (patch)
tree184eb654d7eeb89fbca4b8735baf64c07c1c721d /src/ap/beacon.c
parentff787d557db719adea0fdf2679667500c65cf74d (diff)
downloadandroid_external_wpa_supplicant_8-2f74e36e84064ffa32f82f3decf36b653c7e4fad.tar.gz
android_external_wpa_supplicant_8-2f74e36e84064ffa32f82f3decf36b653c7e4fad.tar.bz2
android_external_wpa_supplicant_8-2f74e36e84064ffa32f82f3decf36b653c7e4fad.zip
Cumulative patch from commit fb09ed338919db09f3990196171fa73b37e7a17f (DO NOT MERGE)
fb09ed3 Interworking: Notify the ANQP parsing status d10b01d HS20: Provide appropriate permission to the OSU related files 73f1ee0 HS20: Fix TrustRoot path for PolicyUpdate node in PPS MO 54a0ac0 HS20: Return result of cmd_sub_rem in hs20-osu-client b62b0cb WNM: Fix possible memory leak by free buf 9bd0273 EAP: Fix possible memory leak in eap_ttls_process_decrypted() b760e64 eap_server: Avoid NULL pointer dereference in eap_fast_encrypt_phase2() 948d3a8 hostapd: Remove unused variable from hostapd_get_hw_features dd09e42 Fix memory leak in wpa_supplicant global bgscan configuration 30f459c wpa_cli: Fix NULL dereference on printf string argument 414f23d Avoid NULL string in printf on EAP method names in authenticator b72b2ad P2P: Stop p2p_listen/find on wpas_p2p_invite 7b7b444 nl80211: Fix reading of the extended capabilities mask 7e608d1 P2P: Use the correct wpa_s interface to handle P2P state flush fd83335 AP: Enable HT Tx STBC for AP/GO if supported by driver d90bfa9 Move external_scan_running to wpa_radio 0c5f01f Clear reattach flag in fast associate flow 8ad8bc5 NFC: Redirect NFC commands on global control interface 57ae1f5 P2P: Fix P2P invitation with NFC 07565ab WNM: Fix the length of WNM_BSS_QUERY control interface command 2d9c99e Retry scan-for-connect if driver trigger fails 911942e Add a test framework for various wpa_supplicant failure cases 6b46bfa WPS: Re-fix an interoperability issue with mixed mode and AP Settings 1648cc6 ACS: Allow subset of channels to be configured 95ff306 nl80211: Allow HT/VHT to be disabled for IBSS 7451a21 mesh: Return negative value on join failed 5a2a6de mesh: Make inactivity timer configurable b9749ba AP: Expire STA without entry in kernel a114c72 AP: Remove redundant condition for STA expiration 0d787f0 Fix RADIUS client with out-of-memory and missing shared secret 0efcad2 Print in debug log whether attached monitor is for global interface 8266e6c HS 2.0: Try to use same BSS entry for storing GAS results 6c69991 Make wpa_supplicant FLUSH command more likely to clear all BSS entries 2dbe63a Write reason for scan only_new_results into debug log 242b83a eapol_test: Fix cert_cb() function arguments a8826b1 Interworking: Avoid busy loop in scan result mismatch corner cases edd5939 Interworking: Start ANQP fetch from eloop callback cbc210d RADIUS DAS: Allow PMKSA cache entry to be removed without association 4e871ed RADIUS DAS: Support Acct-Multi-Session-Id as a session identifier b52c0d4 Add authMultiSessionId into hostapd STA info 861beb7 RADIUS DAS: Check for single session match for Disconnect-Request 783b2a9 Interworking: Fix INTERWORKING_CONNECT with zero-length SSID BSS entry 1fef85c nl80211: Fix AP-scan-in-STA-mode error path behavior cebee30 Add domain_match network profile parameter d07d3fb Add peer certificate alt subject name information to EAP events 98a4cd4 D-Bus: Clear cached EAP data on network profile changes 483dd6a Include peer certificate always in EAP events dd5f902 Get rid of a compiler warning d29fa3a Extend VENDOR_ELEM parameters to cover non-P2P Association Request e7d0e97 hostapd: Add vendor specific VHT extension for the 2.4 GHz band Change-Id: I45436c49986cd6bddbd869db3f474871a29ce1dc Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/ap/beacon.c')
-rw-r--r--src/ap/beacon.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/ap/beacon.c b/src/ap/beacon.c
index 4a8703ac..b0a74e01 100644
--- a/src/ap/beacon.c
+++ b/src/ap/beacon.c
@@ -379,6 +379,10 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
#endif /* CONFIG_P2P */
if (hapd->conf->vendor_elements)
buflen += wpabuf_len(hapd->conf->vendor_elements);
+ if (hapd->conf->vendor_vht) {
+ buflen += 5 + 2 + sizeof(struct ieee80211_vht_capabilities) +
+ 2 + sizeof(struct ieee80211_vht_operation);
+ }
resp = os_zalloc(buflen);
if (resp == NULL)
return NULL;
@@ -446,8 +450,12 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
pos = hostapd_add_csa_elems(hapd, pos, (u8 *)resp,
&hapd->cs_c_off_proberesp);
#ifdef CONFIG_IEEE80211AC
- pos = hostapd_eid_vht_capabilities(hapd, pos);
- pos = hostapd_eid_vht_operation(hapd, pos);
+ if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac) {
+ pos = hostapd_eid_vht_capabilities(hapd, pos);
+ pos = hostapd_eid_vht_operation(hapd, pos);
+ }
+ if (hapd->conf->vendor_vht)
+ pos = hostapd_eid_vendor_vht(hapd, pos);
#endif /* CONFIG_IEEE80211AC */
/* Wi-Fi Alliance WMM */
@@ -776,6 +784,14 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd,
#endif /* CONFIG_P2P */
if (hapd->conf->vendor_elements)
tail_len += wpabuf_len(hapd->conf->vendor_elements);
+
+#ifdef CONFIG_IEEE80211AC
+ if (hapd->conf->vendor_vht) {
+ tail_len += 5 + 2 + sizeof(struct ieee80211_vht_capabilities) +
+ 2 + sizeof(struct ieee80211_vht_operation);
+ }
+#endif /* CONFIG_IEEE80211AC */
+
tailpos = tail = os_malloc(tail_len);
if (head == NULL || tail == NULL) {
wpa_printf(MSG_ERROR, "Failed to set beacon data");
@@ -865,8 +881,12 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd,
tailpos = hostapd_add_csa_elems(hapd, tailpos, tail,
&hapd->cs_c_off_beacon);
#ifdef CONFIG_IEEE80211AC
- tailpos = hostapd_eid_vht_capabilities(hapd, tailpos);
- tailpos = hostapd_eid_vht_operation(hapd, tailpos);
+ if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac) {
+ tailpos = hostapd_eid_vht_capabilities(hapd, tailpos);
+ tailpos = hostapd_eid_vht_operation(hapd, tailpos);
+ }
+ if (hapd->conf->vendor_vht)
+ tailpos = hostapd_eid_vendor_vht(hapd, tailpos);
#endif /* CONFIG_IEEE80211AC */
/* Wi-Fi Alliance WMM */