Fix AP build without CONFIG_WPS=y
Make the WPS processing of (Re)Association Request frame IEs conditional on WPS support. This fixes a build issue with wps_is_20() not being defined and makes the non-WPS build a bit smaller.
This commit is contained in:
parent
531e420dd7
commit
633d4469e8
1 changed files with 8 additions and 0 deletions
|
@ -105,6 +105,7 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
|
|
||||||
if (hapd->conf->wpa) {
|
if (hapd->conf->wpa) {
|
||||||
if (ie == NULL || ielen == 0) {
|
if (ie == NULL || ielen == 0) {
|
||||||
|
#ifdef CONFIG_WPS
|
||||||
if (hapd->conf->wps_state) {
|
if (hapd->conf->wps_state) {
|
||||||
wpa_printf(MSG_DEBUG, "STA did not include "
|
wpa_printf(MSG_DEBUG, "STA did not include "
|
||||||
"WPA/RSN IE in (Re)Association "
|
"WPA/RSN IE in (Re)Association "
|
||||||
|
@ -112,10 +113,12 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
sta->flags |= WLAN_STA_MAYBE_WPS;
|
sta->flags |= WLAN_STA_MAYBE_WPS;
|
||||||
goto skip_wpa_check;
|
goto skip_wpa_check;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "No WPA/RSN IE from STA");
|
wpa_printf(MSG_DEBUG, "No WPA/RSN IE from STA");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#ifdef CONFIG_WPS
|
||||||
if (hapd->conf->wps_state && ie[0] == 0xdd && ie[1] >= 4 &&
|
if (hapd->conf->wps_state && ie[0] == 0xdd && ie[1] >= 4 &&
|
||||||
os_memcmp(ie + 2, "\x00\x50\xf2\x04", 4) == 0) {
|
os_memcmp(ie + 2, "\x00\x50\xf2\x04", 4) == 0) {
|
||||||
struct wpabuf *wps;
|
struct wpabuf *wps;
|
||||||
|
@ -132,6 +135,7 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
}
|
}
|
||||||
goto skip_wpa_check;
|
goto skip_wpa_check;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
if (sta->wpa_sm == NULL)
|
if (sta->wpa_sm == NULL)
|
||||||
sta->wpa_sm = wpa_auth_sta_init(hapd->wpa_auth,
|
sta->wpa_sm = wpa_auth_sta_init(hapd->wpa_auth,
|
||||||
|
@ -167,6 +171,7 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} else if (hapd->conf->wps_state) {
|
} else if (hapd->conf->wps_state) {
|
||||||
|
#ifdef CONFIG_WPS
|
||||||
struct wpabuf *wps;
|
struct wpabuf *wps;
|
||||||
wps = ieee802_11_vendor_ie_concat(ie, ielen,
|
wps = ieee802_11_vendor_ie_concat(ie, ielen,
|
||||||
WPS_IE_VENDOR_TYPE);
|
WPS_IE_VENDOR_TYPE);
|
||||||
|
@ -194,8 +199,11 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
} else
|
} else
|
||||||
sta->flags |= WLAN_STA_MAYBE_WPS;
|
sta->flags |= WLAN_STA_MAYBE_WPS;
|
||||||
wpabuf_free(wps);
|
wpabuf_free(wps);
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
}
|
}
|
||||||
|
#ifdef CONFIG_WPS
|
||||||
skip_wpa_check:
|
skip_wpa_check:
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
new_assoc = (sta->flags & WLAN_STA_ASSOC) == 0;
|
new_assoc = (sta->flags & WLAN_STA_ASSOC) == 0;
|
||||||
sta->flags |= WLAN_STA_AUTH | WLAN_STA_ASSOC;
|
sta->flags |= WLAN_STA_AUTH | WLAN_STA_ASSOC;
|
||||||
|
|
Loading…
Reference in a new issue