mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 04:57:25 +01:00 
			
		
		
		
	netconfig: add global MulticastDNS option
Adds the MulticastDNS option globally to main.conf. If set all network connections (when netconfig is enabled) will set mDNS support into the resolver. Note that an individual network profile can still override the global value if it sets MulticastDNS.
This commit is contained in:
		
							parent
							
								
									b9855f7d62
								
							
						
					
					
						commit
						c89c37378b
					
				| @ -56,6 +56,7 @@ | ||||
|  */ | ||||
| static uint32_t ROUTE_PRIORITY_OFFSET; | ||||
| static bool ipv6_enabled; | ||||
| static char *mdns_global; | ||||
| 
 | ||||
| static void do_debug(const char *str, void *user_data) | ||||
| { | ||||
| @ -396,19 +397,36 @@ send_hostname: | ||||
| 	} | ||||
| 
 | ||||
| mdns: | ||||
| 	if (l_settings_has_key(active_settings, "Network", "MulticastDNS") && | ||||
| 			!(mdns = l_settings_get_string(active_settings, | ||||
| 							"Network", | ||||
| 							"MulticastDNS"))) { | ||||
| 		l_error("netconfig: Can't load Network.MulticastDNS"); | ||||
| 		success = false; | ||||
| 	/* If the networks has this set take that over the global */ | ||||
| 	if (l_settings_has_key(active_settings, "Network", "MulticastDNS")) { | ||||
| 		mdns = l_settings_get_string(active_settings, "Network", | ||||
| 							"MulticastDNS"); | ||||
| 		if (!mdns) { | ||||
| 			l_error("netconfig: Can't load Network.MulticastDNS"); | ||||
| 			success = false; | ||||
| 		} | ||||
| 
 | ||||
| 		if (mdns && !L_IN_STRSET(mdns, "true", "false", "resolve")) { | ||||
| 			l_error("netconfig: Bad profile Network.MulticastDNS " | ||||
| 				"value '%s'", mdns); | ||||
| 			success = false; | ||||
| 		} | ||||
| 
 | ||||
| 		if (!success) | ||||
| 			goto check_config; | ||||
| 	} | ||||
| 
 | ||||
| 	if (mdns && !L_IN_STRSET(mdns, "true", "false", "resolve")) { | ||||
| 		l_error("netconfig: Bad Network.MulticastDNS value '%s'", mdns); | ||||
| 		success = false; | ||||
| 	if (!mdns && mdns_global) { | ||||
| 		mdns = l_strdup(mdns_global); | ||||
| 
 | ||||
| 		if (!L_IN_STRSET(mdns, "true", "false", "resolve")) { | ||||
| 			l_error("netconfig: Bad global Network.MulticastDNS " | ||||
| 				"value '%s'", mdns); | ||||
| 			success = false; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| check_config: | ||||
| 	if (!l_netconfig_check_config(netconfig->nc)) { | ||||
| 		l_error("netconfig: Invalid configuration"); | ||||
| 		success = false; | ||||
| @ -753,11 +771,15 @@ static int netconfig_init(void) | ||||
| 					&ipv6_enabled)) | ||||
| 		ipv6_enabled = false; | ||||
| 
 | ||||
| 	mdns_global = l_settings_get_string(iwd_get_config(), "Network", | ||||
| 						"MulticastDNS"); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static void netconfig_exit(void) | ||||
| { | ||||
| 	l_free(mdns_global); | ||||
| } | ||||
| 
 | ||||
| IWD_MODULE(netconfig, netconfig_init, netconfig_exit) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Prestwood
						James Prestwood