mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 02:17:58 +00:00 
			
		
		
		
	mpskd: fix incorrect MPSK value assignment
If MPSK is enabled on any interface, `ssid.mpsk` should be true. Prevents overwriting true with a false value when multiple interfaces share the same SSID. Also allow handling of the 'reload' event even when MPSK is not enabled, to ensure config reloads are not skipped, e.g. when configuration is empty. Fixes: WIFI-14484 Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
This commit is contained in:
		 Marek Kwaczynski
					Marek Kwaczynski
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						John Crispin
					
				
			
						parent
						
							d5df71619a
						
					
				
				
					commit
					1213182012
				
			| @@ -144,7 +144,7 @@ function netifd_reload() { | |||||||
|  |  | ||||||
| 			push(ssid.interfaces, iface.ifname); | 			push(ssid.interfaces, iface.ifname); | ||||||
| 			ssid.bands[band] = iface.ifname; | 			ssid.bands[band] = iface.ifname; | ||||||
| 			ssid.mpsk = config.multi_psk; | 			ssid.mpsk = ssid?.mpsk ? true : config.multi_psk; | ||||||
| 			for (let sta in iface.stations) { | 			for (let sta in iface.stations) { | ||||||
| 				let stacfg = sta.config; | 				let stacfg = sta.config; | ||||||
|  |  | ||||||
| @@ -308,18 +308,18 @@ function sta_auth_cache(ifname, addr, idx, phrase) { | |||||||
| function auth_cb(msg) { | function auth_cb(msg) { | ||||||
| 	let data = msg.data; | 	let data = msg.data; | ||||||
|  |  | ||||||
| 	if (!is_ssid_mpsk(data.iface)) |  | ||||||
| 		return; |  | ||||||
|  |  | ||||||
| 	printf(`Event ${msg.type}: ${msg.data}\n`); | 	printf(`Event ${msg.type}: ${msg.data}\n`); | ||||||
| 	switch (msg.type) { | 	switch (msg.type) { | ||||||
| 	case 'sta_auth': | 	case 'sta_auth': | ||||||
|  | 		if (!is_ssid_mpsk(data.iface)) | ||||||
|  | 			return; | ||||||
|  |  | ||||||
| 		return { | 		return { | ||||||
| 			psk: sta_auth_psk(data.iface, data.sta), | 			psk: sta_auth_psk(data.iface, data.sta), | ||||||
| 			force_psk: true, | 			force_psk: true, | ||||||
| 		}; | 		}; | ||||||
| 	case 'sta_connected': | 	case 'sta_connected': | ||||||
| 		if (data.psk_idx == null) | 		if (data.psk_idx == null || !is_ssid_mpsk(data.iface)) | ||||||
| 			return; | 			return; | ||||||
| 		return sta_auth_cache(data.iface, data.sta, data.psk_idx, data.psk); | 		return sta_auth_cache(data.iface, data.sta, data.psk_idx, data.psk); | ||||||
| 	case 'reload': | 	case 'reload': | ||||||
|   | |||||||
| @@ -144,7 +144,7 @@ function netifd_reload() { | |||||||
|  |  | ||||||
| 			push(ssid.interfaces, iface.ifname); | 			push(ssid.interfaces, iface.ifname); | ||||||
| 			ssid.bands[band] = iface.ifname; | 			ssid.bands[band] = iface.ifname; | ||||||
| 			ssid.mpsk = config.multi_psk; | 			ssid.mpsk = ssid?.mpsk ? true : config.multi_psk; | ||||||
| 			for (let sta in iface.stations) { | 			for (let sta in iface.stations) { | ||||||
| 				let stacfg = sta.config; | 				let stacfg = sta.config; | ||||||
|  |  | ||||||
| @@ -308,18 +308,18 @@ function sta_auth_cache(ifname, addr, idx, phrase) { | |||||||
| function auth_cb(msg) { | function auth_cb(msg) { | ||||||
| 	let data = msg.data; | 	let data = msg.data; | ||||||
|  |  | ||||||
| 	if (!is_ssid_mpsk(data.iface)) |  | ||||||
| 		return; |  | ||||||
|  |  | ||||||
| 	printf(`Event ${msg.type}: ${msg.data}\n`); | 	printf(`Event ${msg.type}: ${msg.data}\n`); | ||||||
| 	switch (msg.type) { | 	switch (msg.type) { | ||||||
| 	case 'sta_auth': | 	case 'sta_auth': | ||||||
|  | 		if (!is_ssid_mpsk(data.iface)) | ||||||
|  | 			return; | ||||||
|  |  | ||||||
| 		return { | 		return { | ||||||
| 			psk: sta_auth_psk(data.iface, data.sta), | 			psk: sta_auth_psk(data.iface, data.sta), | ||||||
| 			force_psk: true, | 			force_psk: true, | ||||||
| 		}; | 		}; | ||||||
| 	case 'sta_connected': | 	case 'sta_connected': | ||||||
| 		if (data.psk_idx == null) | 		if (data.psk_idx == null || !is_ssid_mpsk(data.iface)) | ||||||
| 			return; | 			return; | ||||||
| 		return sta_auth_cache(data.iface, data.sta, data.psk_idx, data.psk); | 		return sta_auth_cache(data.iface, data.sta, data.psk_idx, data.psk); | ||||||
| 	case 'reload': | 	case 'reload': | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user