|
|
@@ -0,0 +1,48 @@
|
|
|
+--- a/src/ap/ieee802_11.c
|
|
|
++++ b/src/ap/ieee802_11.c
|
|
|
+@@ -1629,13 +1629,6 @@ static void handle_assoc_cb(struct hosta
|
|
|
+ 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 "
|
|
|
+@@ -1643,11 +1636,6 @@ static void handle_assoc_cb(struct hosta
|
|
|
+ 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",
|
|
|
+@@ -1655,6 +1643,19 @@ static void handle_assoc_cb(struct hosta
|
|
|
+ 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;
|
|
|
+
|