mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 04:57:25 +01:00 
			
		
		
		
	ap: check FULL_AP_CLIENT_STATE for NEW_STATION
nl80211 has a check which returns -EINVAL for NEW_STATION if this feature is not enabled and the mask contains Authenticated/Associated flags.
This commit is contained in:
		
							parent
							
								
									c57071df65
								
							
						
					
					
						commit
						fb8ef45213
					
				
							
								
								
									
										17
									
								
								src/ap.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/ap.c
									
									
									
									
									
								
							| @ -1643,19 +1643,22 @@ static struct l_genl_msg *ap_build_cmd_new_station(struct sta_state *sta) | ||||
| { | ||||
| 	struct l_genl_msg *msg; | ||||
| 	uint32_t ifindex = netdev_get_ifindex(sta->ap->netdev); | ||||
| 	/*
 | ||||
| 	 * This should hopefully work both with and without | ||||
| 	 * NL80211_FEATURE_FULL_AP_CLIENT_STATE. | ||||
| 	 */ | ||||
| 	struct nl80211_sta_flag_update flags = { | ||||
| 		.mask = (1 << NL80211_STA_FLAG_AUTHENTICATED) | | ||||
| 			(1 << NL80211_STA_FLAG_ASSOCIATED) | | ||||
| 			(1 << NL80211_STA_FLAG_AUTHORIZED) | | ||||
| 		.mask = (1 << NL80211_STA_FLAG_AUTHORIZED) | | ||||
| 			(1 << NL80211_STA_FLAG_MFP), | ||||
| 		.set = (1 << NL80211_STA_FLAG_AUTHENTICATED) | | ||||
| 			(1 << NL80211_STA_FLAG_ASSOCIATED), | ||||
| 	}; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Without this feature nl80211 rejects NEW_STATION if the mask contains | ||||
| 	 * auth/assoc flags | ||||
| 	 */ | ||||
| 	if (wiphy_has_feature(netdev_get_wiphy(sta->ap->netdev), | ||||
| 				NL80211_FEATURE_FULL_AP_CLIENT_STATE)) | ||||
| 		flags.mask |= (1 << NL80211_STA_FLAG_ASSOCIATED) | | ||||
| 				(1 << NL80211_STA_FLAG_AUTHENTICATED); | ||||
| 
 | ||||
| 	msg = l_genl_msg_new_sized(NL80211_CMD_NEW_STATION, 300); | ||||
| 
 | ||||
| 	l_genl_msg_append_attr(msg, NL80211_ATTR_IFINDEX, 4, &ifindex); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Prestwood
						James Prestwood