mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-11-04 08:57:29 +01:00 
			
		
		
		
	netdev: Use EAPoL over nl80211 if CONTROL_PORT set
Our logic would set CONTROL_PORT_OVER_NL80211 even in cases where CONTROL_PORT wasn't used (e.g. for open networks). While the kernel ignored this attribute in this case, it is nicer to set this only if CONTROL_PORT is intended to be used.
This commit is contained in:
		
							parent
							
								
									d2d2b59f25
								
							
						
					
					
						commit
						14693065d7
					
				
							
								
								
									
										31
									
								
								src/netdev.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								src/netdev.c
									
									
									
									
									
								
							@ -1787,11 +1787,6 @@ static struct l_genl_msg *netdev_build_cmd_associate_common(
 | 
			
		||||
	l_genl_msg_append_attr(msg, NL80211_ATTR_SSID, hs->ssid_len, hs->ssid);
 | 
			
		||||
	l_genl_msg_append_attr(msg, NL80211_ATTR_SOCKET_OWNER, 0, NULL);
 | 
			
		||||
 | 
			
		||||
	if (netdev->pae_over_nl80211)
 | 
			
		||||
		l_genl_msg_append_attr(msg,
 | 
			
		||||
				NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
				0, NULL);
 | 
			
		||||
 | 
			
		||||
	if (is_rsn) {
 | 
			
		||||
		uint32_t nl_cipher;
 | 
			
		||||
		uint32_t nl_akm;
 | 
			
		||||
@ -1799,6 +1794,11 @@ static struct l_genl_msg *netdev_build_cmd_associate_common(
 | 
			
		||||
 | 
			
		||||
		l_genl_msg_append_attr(msg, NL80211_ATTR_CONTROL_PORT, 0, NULL);
 | 
			
		||||
 | 
			
		||||
		if (netdev->pae_over_nl80211)
 | 
			
		||||
			l_genl_msg_append_attr(msg,
 | 
			
		||||
					NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
					0, NULL);
 | 
			
		||||
 | 
			
		||||
		if (hs->pairwise_cipher == IE_RSN_CIPHER_SUITE_CCMP)
 | 
			
		||||
			nl_cipher = CRYPTO_CIPHER_CCMP;
 | 
			
		||||
		else
 | 
			
		||||
@ -2256,11 +2256,6 @@ static struct l_genl_msg *netdev_build_cmd_connect(struct netdev *netdev,
 | 
			
		||||
						bss->ssid_len, bss->ssid);
 | 
			
		||||
	l_genl_msg_append_attr(msg, NL80211_ATTR_AUTH_TYPE, 4, &auth_type);
 | 
			
		||||
 | 
			
		||||
	if (netdev->pae_over_nl80211)
 | 
			
		||||
		l_genl_msg_append_attr(msg,
 | 
			
		||||
				NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
				0, NULL);
 | 
			
		||||
 | 
			
		||||
	if (prev_bssid)
 | 
			
		||||
		l_genl_msg_append_attr(msg, NL80211_ATTR_PREV_BSSID, ETH_ALEN,
 | 
			
		||||
						prev_bssid);
 | 
			
		||||
@ -2312,6 +2307,11 @@ static struct l_genl_msg *netdev_build_cmd_connect(struct netdev *netdev,
 | 
			
		||||
 | 
			
		||||
		l_genl_msg_append_attr(msg, NL80211_ATTR_CONTROL_PORT, 0, NULL);
 | 
			
		||||
 | 
			
		||||
		if (netdev->pae_over_nl80211)
 | 
			
		||||
			l_genl_msg_append_attr(msg,
 | 
			
		||||
					NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
					0, NULL);
 | 
			
		||||
 | 
			
		||||
		iov[iov_elems].iov_base = (void *) hs->own_ie;
 | 
			
		||||
		iov[iov_elems].iov_len = hs->own_ie[1] + 2;
 | 
			
		||||
		iov_elems += 1;
 | 
			
		||||
@ -2566,13 +2566,14 @@ int netdev_join_adhoc(struct netdev *netdev, const char *ssid,
 | 
			
		||||
	l_genl_msg_append_attrv(cmd, NL80211_ATTR_IE, extra_ie, extra_ie_elems);
 | 
			
		||||
	l_genl_msg_append_attr(cmd, NL80211_ATTR_SOCKET_OWNER, 0, NULL);
 | 
			
		||||
 | 
			
		||||
	if (control_port)
 | 
			
		||||
	if (control_port) {
 | 
			
		||||
		l_genl_msg_append_attr(cmd, NL80211_ATTR_CONTROL_PORT, 0, NULL);
 | 
			
		||||
 | 
			
		||||
	if (netdev->pae_over_nl80211)
 | 
			
		||||
		l_genl_msg_append_attr(cmd,
 | 
			
		||||
				NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
				0, NULL);
 | 
			
		||||
		if (netdev->pae_over_nl80211)
 | 
			
		||||
			l_genl_msg_append_attr(cmd,
 | 
			
		||||
					NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
 | 
			
		||||
					0, NULL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	netdev->join_adhoc_cmd_id = l_genl_family_send(nl80211, cmd,
 | 
			
		||||
			netdev_join_adhoc_cb, netdev, NULL);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user