|
@@ -1506,13 +1506,6 @@ static void handle_assoc_cb(struct hostapd_data *hapd,
|
|
|
int new_assoc = 1;
|
|
|
struct ieee80211_ht_capabilities ht_cap;
|
|
|
|
|
|
- if (!ok) {
|
|
|
- hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211,
|
|
|
- HOSTAPD_LEVEL_DEBUG,
|
|
|
- "did not acknowledge association response");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_resp) :
|
|
|
sizeof(mgmt->u.assoc_resp))) {
|
|
|
printf("handle_assoc_cb(reassoc=%d) - too short payload "
|
|
@@ -1520,11 +1513,6 @@ static void handle_assoc_cb(struct hostapd_data *hapd,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (reassoc)
|
|
|
- status = le_to_host16(mgmt->u.reassoc_resp.status_code);
|
|
|
- else
|
|
|
- status = le_to_host16(mgmt->u.assoc_resp.status_code);
|
|
|
-
|
|
|
sta = ap_get_sta(hapd, mgmt->da);
|
|
|
if (!sta) {
|
|
|
printf("handle_assoc_cb: STA " MACSTR " not found\n",
|
|
@@ -1532,6 +1520,19 @@ static void handle_assoc_cb(struct hostapd_data *hapd,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if (!ok) {
|
|
|
+ hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211,
|
|
|
+ HOSTAPD_LEVEL_DEBUG,
|
|
|
+ "did not acknowledge association response");
|
|
|
+ sta->flags &= ~WLAN_STA_ASSOC_REQ_OK;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (reassoc)
|
|
|
+ status = le_to_host16(mgmt->u.reassoc_resp.status_code);
|
|
|
+ else
|
|
|
+ status = le_to_host16(mgmt->u.assoc_resp.status_code);
|
|
|
+
|
|
|
if (status != WLAN_STATUS_SUCCESS)
|
|
|
goto fail;
|
|
|
|