Handle channel switch notification for other interface types
Channel switch notification was handled only for AP/GO interfaces. As the notification can be sent on other interface types as well, extend the handling to handle other interface types. Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
38d9048fa8
commit
61f121d925
1 changed files with 15 additions and 12 deletions
|
@ -3459,20 +3459,23 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
|
||||||
data->rx_from_unknown.wds);
|
data->rx_from_unknown.wds);
|
||||||
break;
|
break;
|
||||||
case EVENT_CH_SWITCH:
|
case EVENT_CH_SWITCH:
|
||||||
if (!data)
|
if (!data || !wpa_s->current_ssid)
|
||||||
break;
|
break;
|
||||||
if (!wpa_s->ap_iface) {
|
|
||||||
wpa_dbg(wpa_s, MSG_DEBUG, "AP: Ignore channel switch "
|
|
||||||
"event in non-AP mode");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
wpa_s->assoc_freq = data->ch_switch.freq;
|
||||||
|
wpa_s->current_ssid->frequency = data->ch_switch.freq;
|
||||||
|
|
||||||
|
if (wpa_s->current_ssid->mode == WPAS_MODE_AP ||
|
||||||
|
wpa_s->current_ssid->mode == WPAS_MODE_P2P_GO ||
|
||||||
|
wpa_s->current_ssid->mode ==
|
||||||
|
WPAS_MODE_P2P_GROUP_FORMATION) {
|
||||||
wpas_ap_ch_switch(wpa_s, data->ch_switch.freq,
|
wpas_ap_ch_switch(wpa_s, data->ch_switch.freq,
|
||||||
data->ch_switch.ht_enabled,
|
data->ch_switch.ht_enabled,
|
||||||
data->ch_switch.ch_offset,
|
data->ch_switch.ch_offset,
|
||||||
data->ch_switch.ch_width,
|
data->ch_switch.ch_width,
|
||||||
data->ch_switch.cf1,
|
data->ch_switch.cf1,
|
||||||
data->ch_switch.cf2);
|
data->ch_switch.cf2);
|
||||||
|
}
|
||||||
|
|
||||||
wpas_p2p_update_channel_list(wpa_s, WPAS_P2P_CHANNEL_UPDATE_CS);
|
wpas_p2p_update_channel_list(wpa_s, WPAS_P2P_CHANNEL_UPDATE_CS);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue