mesh: Apply channel attributes before setup interface

This helps mesh interface initialization with correct channel
parameters.

Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
This commit is contained in:
Peter Oh 2018-08-27 14:28:40 -07:00 committed by Jouni Malinen
parent 3ba4a25e5d
commit 2564184440

View file

@ -251,7 +251,7 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
struct mesh_conf *mconf; struct mesh_conf *mconf;
int basic_rates_erp[] = { 10, 20, 55, 60, 110, 120, 240, -1 }; int basic_rates_erp[] = { 10, 20, 55, 60, 110, 120, 240, -1 };
int rate_len; int rate_len;
int frequency; int frequency, saved_freq;
if (!wpa_s->conf->user_mpm) { if (!wpa_s->conf->user_mpm) {
/* not much for us to do here */ /* not much for us to do here */
@ -372,6 +372,13 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
conf->basic_rates[rate_len] = -1; conf->basic_rates[rate_len] = -1;
} }
/* Handle pri/sec switch frequency within AP configuration parameter
* generation without changing the stored network profile in the end. */
saved_freq = ssid->frequency;
ssid->frequency = frequency;
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
ssid->frequency = saved_freq;
if (wpa_drv_init_mesh(wpa_s)) { if (wpa_drv_init_mesh(wpa_s)) {
wpa_msg(wpa_s, MSG_ERROR, "Failed to init mesh in driver"); wpa_msg(wpa_s, MSG_ERROR, "Failed to init mesh in driver");
return -1; return -1;
@ -383,8 +390,6 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
return -1; return -1;
} }
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
return 0; return 0;
out_free: out_free:
wpa_supplicant_mesh_deinit(wpa_s); wpa_supplicant_mesh_deinit(wpa_s);