]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wpa_supplicant: Allow disabling HT in AP mode without HT overrides
authorJohannes Berg <johannes.berg@intel.com>
Tue, 7 Mar 2017 16:20:59 +0000 (18:20 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 11 Mar 2017 09:11:55 +0000 (11:11 +0200)
Since VHT can be toggled explicitly, also expose being able to disable
HT explicitly, without requiring HT overrides. Continue making it
default to enabled though.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
wpa_supplicant/ap.c
wpa_supplicant/config.c
wpa_supplicant/config_file.c
wpa_supplicant/config_ssid.h
wpa_supplicant/wpa_cli.c

index d6aac3e0e447a4c0ee0d1333b644f8edd5e4083f..2866c043aaba351858e1a23f7af01f9190d8aa90 100644 (file)
@@ -145,12 +145,15 @@ int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
                }
 
 #ifdef CONFIG_HT_OVERRIDES
-               if (ssid->disable_ht) {
+               if (ssid->disable_ht)
+                       ssid->ht = 0;
+#endif /* CONFIG_HT_OVERRIDES */
+
+               if (!ssid->ht) {
                        conf->ieee80211n = 0;
                        conf->ht_capab = 0;
                        no_ht = 1;
                }
-#endif /* CONFIG_HT_OVERRIDES */
 
                if (!no_ht && mode && mode->ht_capab) {
                        conf->ieee80211n = 1;
index 95971ea9930ee1546193c44f5b4764cc23cd9565..676b618b2ab120925f03982e66643f8a0e39fc30 100644 (file)
@@ -1995,6 +1995,7 @@ static const struct parse_data ssid_fields[] = {
        { FUNC(auth_alg) },
        { FUNC(scan_freq) },
        { FUNC(freq_list) },
+       { INT_RANGE(ht, 0, 1) },
        { INT_RANGE(vht, 0, 1) },
        { INT_RANGE(ht40, -1, 1) },
        { INT_RANGE(max_oper_chwidth, VHT_CHANWIDTH_USE_HT,
@@ -2580,6 +2581,7 @@ void wpa_config_set_network_defaults(struct wpa_ssid *ssid)
        ssid->group_cipher = DEFAULT_GROUP;
        ssid->key_mgmt = DEFAULT_KEY_MGMT;
        ssid->bg_scan_period = DEFAULT_BG_SCAN_PERIOD;
+       ssid->ht = 1;
 #ifdef IEEE8021X_EAPOL
        ssid->eapol_flags = DEFAULT_EAPOL_FLAGS;
        ssid->eap_workaround = DEFAULT_EAP_WORKAROUND;
index e5808612eb42dfe2b55c8bfe53ce5d7ea3fced76..72e0a55eb02ab32002beefa56b258addd59236d6 100644 (file)
@@ -793,6 +793,7 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid)
        INT(peerkey);
        INT(mixed_cell);
        INT(vht);
+       INT_DEF(ht, 1);
        INT(ht40);
        INT(max_oper_chwidth);
        INT(vht_center_freq1);
index a2482d4d6851684abd2a57b2f8166cff381b7f2d..908b6415df7c33783a0126d296d650fc9328b91d 100644 (file)
@@ -470,6 +470,7 @@ struct wpa_ssid {
        int dot11MeshConfirmTimeout; /* msec */
        int dot11MeshHoldingTimeout; /* msec */
 
+       int ht;
        int ht40;
 
        int vht;
index 8ef7f4673fe29edb37d240515b5dbbce53b32bb8..c5091b5de7db001f71df03811372b6678605b406 100644 (file)
@@ -1372,7 +1372,7 @@ static const char *network_fields[] = {
        "bssid_whitelist", "psk", "proto", "key_mgmt",
        "bg_scan_period", "pairwise", "group", "auth_alg", "scan_freq",
        "freq_list", "max_oper_chwidth", "ht40", "vht", "vht_center_freq1",
-       "vht_center_freq2",
+       "vht_center_freq2", "ht",
 #ifdef IEEE8021X_EAPOL
        "eap", "identity", "anonymous_identity", "password", "ca_cert",
        "ca_path", "client_cert", "private_key", "private_key_passwd",