Deleted Added
full compact
20a21
> #include "fst/fst.h"
45c46
< #ifdef CONFIG_IEEE80211R
---
> #if defined(CONFIG_IEEE80211R) || defined(CONFIG_IEEE80211W)
48c49
< #endif /* CONFIG_IEEE80211R */
---
> #endif /* CONFIG_IEEE80211R || CONFIG_IEEE80211W */
61,62c62,63
< wpa_printf(MSG_DEBUG, "hostapd_notif_assoc: Skip event with "
< "no address");
---
> wpa_printf(MSG_DEBUG,
> "hostapd_notif_assoc: Skip event with no address");
92,93c93,94
< wpa_printf(MSG_DEBUG, "STA did not include WPS/RSN/WPA IE in "
< "(Re)AssocReq");
---
> wpa_printf(MSG_DEBUG,
> "STA did not include WPS/RSN/WPA IE in (Re)AssocReq");
129,130d129
< elems.ht_capabilities_len >=
< sizeof(struct ieee80211_ht_capabilities) &&
159a159,166
> #ifdef CONFIG_FST
> wpabuf_free(sta->mb_ies);
> if (hapd->iface->fst)
> sta->mb_ies = mb_ies_by_info(&elems.mb_ies);
> else
> sta->mb_ies = NULL;
> #endif /* CONFIG_FST */
>
164,166c171,172
< wpa_printf(MSG_DEBUG, "STA did not include "
< "WPA/RSN IE in (Re)Association "
< "Request - possible WPS use");
---
> wpa_printf(MSG_DEBUG,
> "STA did not include WPA/RSN IE in (Re)Association Request - possible WPS use");
178a185
>
184,185c191,192
< wpa_printf(MSG_DEBUG, "WPS: STA "
< "supports WPS 2.0");
---
> wpa_printf(MSG_DEBUG,
> "WPS: STA supports WPS 2.0");
199,200c206,207
< wpa_printf(MSG_ERROR, "Failed to initialize WPA state "
< "machine");
---
> wpa_printf(MSG_ERROR,
> "Failed to initialize WPA state machine");
207,208c214,216
< wpa_printf(MSG_DEBUG, "WPA/RSN information element "
< "rejected? (res %u)", res);
---
> wpa_printf(MSG_DEBUG,
> "WPA/RSN information element rejected? (res %u)",
> res);
251d258
< #ifdef CONFIG_IEEE80211R
258d264
< #endif /* CONFIG_IEEE80211R */
285a292
>
302,303c309,310
< wpa_printf(MSG_DEBUG, "WPS: STA supports "
< "WPS 2.0");
---
> wpa_printf(MSG_DEBUG,
> "WPS: STA supports WPS 2.0");
325,326c332,333
< wpa_printf(MSG_WARNING, "Failed to initialize WPA "
< "state machine");
---
> wpa_printf(MSG_WARNING,
> "Failed to initialize WPA state machine");
398,399c405,406
< wpa_printf(MSG_DEBUG, "hostapd_notif_disassoc: Skip event "
< "with no address");
---
> wpa_printf(MSG_DEBUG,
> "hostapd_notif_disassoc: Skip event with no address");
408,409c415,417
< wpa_printf(MSG_DEBUG, "Disassociation notification for "
< "unknown STA " MACSTR, MAC2STR(addr));
---
> wpa_printf(MSG_DEBUG,
> "Disassociation notification for unknown STA "
> MACSTR, MAC2STR(addr));
430,431c438,439
< HOSTAPD_LEVEL_INFO, "disconnected due to excessive "
< "missing ACKs");
---
> HOSTAPD_LEVEL_INFO,
> "disconnected due to excessive missing ACKs");
455,456c463,464
< HOSTAPD_LEVEL_WARNING, "driver switched to "
< "bad channel!");
---
> HOSTAPD_LEVEL_WARNING,
> "driver switched to bad channel!");
535c543
< u8 pri_channel, u8 sec_channel)
---
> struct acs_selected_channels *acs_res)
537,538c545
< int channel;
< int ret;
---
> int ret, i;
546c553,556
< hapd->iface->freq = hostapd_hw_get_freq(hapd, pri_channel);
---
> if (!hapd->iface->current_mode) {
> for (i = 0; i < hapd->iface->num_hw_features; i++) {
> struct hostapd_hw_modes *mode =
> &hapd->iface->hw_features[i];
548,549c558,573
< channel = pri_channel;
< if (!channel) {
---
> if (mode->mode == acs_res->hw_mode) {
> hapd->iface->current_mode = mode;
> break;
> }
> }
> if (!hapd->iface->current_mode) {
> hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
> HOSTAPD_LEVEL_WARNING,
> "driver selected to bad hw_mode");
> return;
> }
> }
>
> hapd->iface->freq = hostapd_hw_get_freq(hapd, acs_res->pri_channel);
>
> if (!acs_res->pri_channel) {
556c580,581
< hapd->iconf->channel = channel;
---
> hapd->iconf->channel = acs_res->pri_channel;
> hapd->iconf->acs = 1;
558c583
< if (sec_channel == 0)
---
> if (acs_res->sec_channel == 0)
560c585
< else if (sec_channel < pri_channel)
---
> else if (acs_res->sec_channel < acs_res->pri_channel)
562c587
< else if (sec_channel > pri_channel)
---
> else if (acs_res->sec_channel > acs_res->pri_channel)
568a594,619
> if (hapd->iface->conf->ieee80211ac) {
> /* set defaults for backwards compatibility */
> hapd->iconf->vht_oper_centr_freq_seg1_idx = 0;
> hapd->iconf->vht_oper_centr_freq_seg0_idx = 0;
> hapd->iconf->vht_oper_chwidth = VHT_CHANWIDTH_USE_HT;
> if (acs_res->ch_width == 80) {
> hapd->iconf->vht_oper_centr_freq_seg0_idx =
> acs_res->vht_seg0_center_ch;
> hapd->iconf->vht_oper_chwidth = VHT_CHANWIDTH_80MHZ;
> } else if (acs_res->ch_width == 160) {
> if (acs_res->vht_seg1_center_ch == 0) {
> hapd->iconf->vht_oper_centr_freq_seg0_idx =
> acs_res->vht_seg0_center_ch;
> hapd->iconf->vht_oper_chwidth =
> VHT_CHANWIDTH_160MHZ;
> } else {
> hapd->iconf->vht_oper_centr_freq_seg0_idx =
> acs_res->vht_seg0_center_ch;
> hapd->iconf->vht_oper_centr_freq_seg1_idx =
> acs_res->vht_seg1_center_ch;
> hapd->iconf->vht_oper_chwidth =
> VHT_CHANWIDTH_80P80MHZ;
> }
> }
> }
>
650,651c701,702
< wpa_printf(MSG_DEBUG, "FT: Failed to initialize WPA "
< "state machine");
---
> wpa_printf(MSG_DEBUG,
> "FT: Failed to initialize WPA state machine");
686c737
< wpa_printf(MSG_DEBUG, "RX_ACTION cat %d action plen %d",
---
> wpa_printf(MSG_DEBUG, "RX_ACTION cat %d action plen %d",
696a748
>
712a765,771
> #ifdef CONFIG_FST
> if (mgmt->u.action.category == WLAN_ACTION_FST && hapd->iface->fst) {
> fst_rx_action(hapd->iface->fst, mgmt, drv_mgmt->frame_len);
> return;
> }
> #endif /* CONFIG_FST */
>
763a823
>
781,782c841
< u16 fc;
< fc = le_to_host16(hdr->frame_control);
---
> u16 fc = le_to_host16(hdr->frame_control);
800a860
>
826a887
>
839a901
>
866,870c928,931
< if ((sta = ap_get_sta(iface->bss[j], src))) {
< if (sta->flags & WLAN_STA_ASSOC) {
< hapd = iface->bss[j];
< break;
< }
---
> sta = ap_get_sta(iface->bss[j], src);
> if (sta && sta->flags & WLAN_STA_ASSOC) {
> hapd = iface->bss[j];
> break;
930c991,992
< wpa_printf(MSG_DEBUG, "Single Channel Survey: (freq=%d channel_time=%ld channel_time_busy=%ld)",
---
> wpa_printf(MSG_DEBUG,
> "Single Channel Survey: (freq=%d channel_time=%ld channel_time_busy=%ld)",
1063a1126
>
1251,1253c1314,1315
< hostapd_acs_channel_selected(
< hapd, data->acs_selected_channels.pri_channel,
< data->acs_selected_channels.sec_channel);
---
> hostapd_acs_channel_selected(hapd,
> &data->acs_selected_channels);