mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- 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;
 | 
						|
 
 |