mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
mesh: Move mesh frequency setting to its own function
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
This commit is contained in:
parent
3806ad73e1
commit
89ad24379d
@ -204,6 +204,40 @@ static int wpas_mesh_init_rsn(struct wpa_supplicant *wpa_s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int wpas_mesh_update_freq_params(struct wpa_supplicant *wpa_s)
|
||||||
|
{
|
||||||
|
struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params;
|
||||||
|
struct hostapd_iface *ifmsh = wpa_s->ifmsh;
|
||||||
|
struct he_capabilities *he_capab = NULL;
|
||||||
|
|
||||||
|
if (ifmsh->current_mode)
|
||||||
|
he_capab = &ifmsh->current_mode->he_capab[IEEE80211_MODE_MESH];
|
||||||
|
|
||||||
|
if (hostapd_set_freq_params(
|
||||||
|
¶ms->freq,
|
||||||
|
ifmsh->conf->hw_mode,
|
||||||
|
ifmsh->freq,
|
||||||
|
ifmsh->conf->channel,
|
||||||
|
ifmsh->conf->enable_edmg,
|
||||||
|
ifmsh->conf->edmg_channel,
|
||||||
|
ifmsh->conf->ieee80211n,
|
||||||
|
ifmsh->conf->ieee80211ac,
|
||||||
|
ifmsh->conf->ieee80211ax,
|
||||||
|
ifmsh->conf->secondary_channel,
|
||||||
|
hostapd_get_oper_chwidth(ifmsh->conf),
|
||||||
|
hostapd_get_oper_centr_freq_seg0_idx(ifmsh->conf),
|
||||||
|
hostapd_get_oper_centr_freq_seg1_idx(ifmsh->conf),
|
||||||
|
ifmsh->conf->vht_capab,
|
||||||
|
he_capab)) {
|
||||||
|
wpa_printf(MSG_ERROR, "Error updating mesh frequency params");
|
||||||
|
wpa_supplicant_mesh_deinit(wpa_s, true);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int wpas_mesh_complete(struct wpa_supplicant *wpa_s)
|
static int wpas_mesh_complete(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
struct hostapd_iface *ifmsh = wpa_s->ifmsh;
|
struct hostapd_iface *ifmsh = wpa_s->ifmsh;
|
||||||
@ -222,37 +256,11 @@ static int wpas_mesh_complete(struct wpa_supplicant *wpa_s)
|
|||||||
* initial setting, i.e., due to DFS radar detection during CAC.
|
* initial setting, i.e., due to DFS radar detection during CAC.
|
||||||
*/
|
*/
|
||||||
if (ifmsh->freq > 0 && ifmsh->freq != params->freq.freq) {
|
if (ifmsh->freq > 0 && ifmsh->freq != params->freq.freq) {
|
||||||
struct he_capabilities *he_capab = NULL;
|
|
||||||
|
|
||||||
wpa_s->assoc_freq = ifmsh->freq;
|
wpa_s->assoc_freq = ifmsh->freq;
|
||||||
ssid->frequency = ifmsh->freq;
|
ssid->frequency = ifmsh->freq;
|
||||||
|
if (wpas_mesh_update_freq_params(wpa_s) < 0)
|
||||||
if (ifmsh->current_mode)
|
|
||||||
he_capab = &ifmsh->current_mode->he_capab[
|
|
||||||
IEEE80211_MODE_MESH];
|
|
||||||
|
|
||||||
if (hostapd_set_freq_params(
|
|
||||||
¶ms->freq,
|
|
||||||
ifmsh->conf->hw_mode,
|
|
||||||
ifmsh->freq,
|
|
||||||
ifmsh->conf->channel,
|
|
||||||
ifmsh->conf->enable_edmg,
|
|
||||||
ifmsh->conf->edmg_channel,
|
|
||||||
ifmsh->conf->ieee80211n,
|
|
||||||
ifmsh->conf->ieee80211ac,
|
|
||||||
ifmsh->conf->ieee80211ax,
|
|
||||||
ifmsh->conf->secondary_channel,
|
|
||||||
hostapd_get_oper_chwidth(ifmsh->conf),
|
|
||||||
hostapd_get_oper_centr_freq_seg0_idx(ifmsh->conf),
|
|
||||||
hostapd_get_oper_centr_freq_seg1_idx(ifmsh->conf),
|
|
||||||
ifmsh->conf->vht_capab,
|
|
||||||
he_capab)) {
|
|
||||||
wpa_printf(MSG_ERROR,
|
|
||||||
"Error updating mesh frequency params");
|
|
||||||
wpa_supplicant_mesh_deinit(wpa_s, true);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (ifmsh->mconf->security != MESH_CONF_SEC_NONE &&
|
if (ifmsh->mconf->security != MESH_CONF_SEC_NONE &&
|
||||||
wpas_mesh_init_rsn(wpa_s)) {
|
wpas_mesh_init_rsn(wpa_s)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user