mac80211: Take status code as parameter to ieee80211_send_auth
Non-zero status code may be needed for Authentication frames, e.g., when using SAE. Signed-off-by: Jouni Malinen <j@w1.fi> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
		
					parent
					
						
							
								3448c00583
							
						
					
				
			
			
				commit
				
					
						700e8ea677
					
				
			
		
					 4 changed files with 7 additions and 7 deletions
				
			
		|  | @ -279,7 +279,7 @@ static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta, | ||||||
| 		ibss_dbg(sdata, | 		ibss_dbg(sdata, | ||||||
| 			 "TX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=1)\n", | 			 "TX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=1)\n", | ||||||
| 			 sdata->vif.addr, addr, sdata->u.ibss.bssid); | 			 sdata->vif.addr, addr, sdata->u.ibss.bssid); | ||||||
| 		ieee80211_send_auth(sdata, 1, WLAN_AUTH_OPEN, NULL, 0, | 		ieee80211_send_auth(sdata, 1, WLAN_AUTH_OPEN, 0, NULL, 0, | ||||||
| 				    addr, sdata->u.ibss.bssid, NULL, 0, 0); | 				    addr, sdata->u.ibss.bssid, NULL, 0, 0); | ||||||
| 	} | 	} | ||||||
| 	return sta; | 	return sta; | ||||||
|  | @ -397,7 +397,7 @@ static void ieee80211_rx_mgmt_auth_ibss(struct ieee80211_sub_if_data *sdata, | ||||||
| 	 * However, try to reply to authentication attempts if someone | 	 * However, try to reply to authentication attempts if someone | ||||||
| 	 * has actually implemented this. | 	 * has actually implemented this. | ||||||
| 	 */ | 	 */ | ||||||
| 	ieee80211_send_auth(sdata, 2, WLAN_AUTH_OPEN, NULL, 0, | 	ieee80211_send_auth(sdata, 2, WLAN_AUTH_OPEN, 0, NULL, 0, | ||||||
| 			    mgmt->sa, sdata->u.ibss.bssid, NULL, 0, 0); | 			    mgmt->sa, sdata->u.ibss.bssid, NULL, 0, 0); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1531,7 +1531,7 @@ static inline void ieee80211_add_pending_skbs(struct ieee80211_local *local, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | ||||||
| 			 u16 transaction, u16 auth_alg, | 			 u16 transaction, u16 auth_alg, u16 status, | ||||||
| 			 u8 *extra, size_t extra_len, const u8 *bssid, | 			 u8 *extra, size_t extra_len, const u8 *bssid, | ||||||
| 			 const u8 *da, const u8 *key, u8 key_len, u8 key_idx); | 			 const u8 *da, const u8 *key, u8 key_len, u8 key_idx); | ||||||
| void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, | void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, | ||||||
|  |  | ||||||
|  | @ -1864,7 +1864,7 @@ static void ieee80211_auth_challenge(struct ieee80211_sub_if_data *sdata, | ||||||
| 		return; | 		return; | ||||||
| 	auth_data->expected_transaction = 4; | 	auth_data->expected_transaction = 4; | ||||||
| 	drv_mgd_prepare_tx(sdata->local, sdata); | 	drv_mgd_prepare_tx(sdata->local, sdata); | ||||||
| 	ieee80211_send_auth(sdata, 3, auth_data->algorithm, | 	ieee80211_send_auth(sdata, 3, auth_data->algorithm, 0, | ||||||
| 			    elems.challenge - 2, elems.challenge_len + 2, | 			    elems.challenge - 2, elems.challenge_len + 2, | ||||||
| 			    auth_data->bss->bssid, auth_data->bss->bssid, | 			    auth_data->bss->bssid, auth_data->bss->bssid, | ||||||
| 			    auth_data->key, auth_data->key_len, | 			    auth_data->key, auth_data->key_len, | ||||||
|  | @ -2762,7 +2762,7 @@ static int ieee80211_probe_auth(struct ieee80211_sub_if_data *sdata) | ||||||
| 			   IEEE80211_AUTH_MAX_TRIES); | 			   IEEE80211_AUTH_MAX_TRIES); | ||||||
| 
 | 
 | ||||||
| 		auth_data->expected_transaction = 2; | 		auth_data->expected_transaction = 2; | ||||||
| 		ieee80211_send_auth(sdata, 1, auth_data->algorithm, | 		ieee80211_send_auth(sdata, 1, auth_data->algorithm, 0, | ||||||
| 				    auth_data->ie, auth_data->ie_len, | 				    auth_data->ie, auth_data->ie_len, | ||||||
| 				    auth_data->bss->bssid, | 				    auth_data->bss->bssid, | ||||||
| 				    auth_data->bss->bssid, NULL, 0, 0); | 				    auth_data->bss->bssid, NULL, 0, 0); | ||||||
|  |  | ||||||
|  | @ -978,7 +978,7 @@ u32 ieee80211_mandatory_rates(struct ieee80211_local *local, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | ||||||
| 			 u16 transaction, u16 auth_alg, | 			 u16 transaction, u16 auth_alg, u16 status, | ||||||
| 			 u8 *extra, size_t extra_len, const u8 *da, | 			 u8 *extra, size_t extra_len, const u8 *da, | ||||||
| 			 const u8 *bssid, const u8 *key, u8 key_len, u8 key_idx) | 			 const u8 *bssid, const u8 *key, u8 key_len, u8 key_idx) | ||||||
| { | { | ||||||
|  | @ -1003,7 +1003,7 @@ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | ||||||
| 	memcpy(mgmt->bssid, bssid, ETH_ALEN); | 	memcpy(mgmt->bssid, bssid, ETH_ALEN); | ||||||
| 	mgmt->u.auth.auth_alg = cpu_to_le16(auth_alg); | 	mgmt->u.auth.auth_alg = cpu_to_le16(auth_alg); | ||||||
| 	mgmt->u.auth.auth_transaction = cpu_to_le16(transaction); | 	mgmt->u.auth.auth_transaction = cpu_to_le16(transaction); | ||||||
| 	mgmt->u.auth.status_code = cpu_to_le16(0); | 	mgmt->u.auth.status_code = cpu_to_le16(status); | ||||||
| 	if (extra) | 	if (extra) | ||||||
| 		memcpy(skb_put(skb, extra_len), extra, extra_len); | 		memcpy(skb_put(skb, extra_len), extra, extra_len); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jouni Malinen
				Jouni Malinen