diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c index 7a4f3de06..8c5713f9d 100644 --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c @@ -319,6 +319,7 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s, params.meshid = ssid->ssid; params.meshid_len = ssid->ssid_len; params.freq = ssid->frequency; + wpa_s->mesh_ht_enabled = ssid->mesh_ht_mode > CHAN_NO_HT; if (ssid->beacon_int > 0) params.beacon_int = ssid->beacon_int; else if (wpa_s->conf->beacon_int > 0) diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c index e7c53eace..4a259ff4e 100644 --- a/wpa_supplicant/mesh_mpm.c +++ b/wpa_supplicant/mesh_mpm.c @@ -229,8 +229,7 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s, 2 + 96 + /* AMPE */ 2 + 16; /* MIC */ #ifdef CONFIG_IEEE80211N - if (type != PLINK_CLOSE && - wpa_s->current_ssid->mesh_ht_mode > CHAN_NO_HT) { + if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) { buf_len += 2 + 26 + /* HT capabilities */ 2 + 22; /* HT operation */ } @@ -323,8 +322,7 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s, } #ifdef CONFIG_IEEE80211N - if (type != PLINK_CLOSE && - wpa_s->current_ssid->mesh_ht_mode > CHAN_NO_HT) { + if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) { pos = hostapd_eid_ht_capabilities(bss, ht_capa_oper); pos = hostapd_eid_ht_operation(bss, pos); wpabuf_put_data(buf, ht_capa_oper, pos - ht_capa_oper); diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index c541ccb4e..68bdf51a5 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -703,6 +703,7 @@ struct wpa_supplicant { struct mesh_rsn *mesh_rsn; int mesh_if_idx; unsigned int mesh_if_created:1; + unsigned int mesh_ht_enabled:1; #endif /* CONFIG_MESH */ unsigned int off_channel_freq;