From 6334330ed682c3a462fbe0543ac238b5dd6aec4d Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 10 Jan 2015 12:52:50 +0200 Subject: [PATCH] mesh: Use a separate variable to track whether HT is enabled A network profile parameter should not be used to check whether the currently operating mesh has HT enabled. Signed-off-by: Jouni Malinen --- wpa_supplicant/mesh.c | 1 + wpa_supplicant/mesh_mpm.c | 6 ++---- wpa_supplicant/wpa_supplicant_i.h | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) 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;