diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index 2c1fc8521..0dcf805d5 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -1453,8 +1453,8 @@ managed=1 <literal>global-dns</literal> section - This section specifies global DNS settings that override - connection-specific configuration. + This section specifies DNS settings that are applied + globally, in addition to connection-specific ones. @@ -1482,10 +1482,15 @@ managed=1 Sections with a name starting with the "global-dns-domain-" prefix allow to define global DNS configuration for specific domains. The part of section name after "global-dns-domain-" - specifies the domain name a section applies to. More specific - domains have the precedence over less specific ones and the - default domain is represented by the wildcard "*". A default - domain section is mandatory. + specifies the domain name a section applies to (for example, a + section could be named "global-dns-domain-foobar.com"). More + specific domains have the precedence over less specific ones and + the default domain is represented by the wildcard "*". + + To be valid, global DNS domains must include a section for the + default domain "*". When the global DNS domains are valid, the + name servers and domains defined globally override the ones from + active connections. diff --git a/src/core/dns/nm-dns-dnsmasq.c b/src/core/dns/nm-dns-dnsmasq.c index 8ae1bb961..05aeff492 100644 --- a/src/core/dns/nm-dns-dnsmasq.c +++ b/src/core/dns/nm-dns-dnsmasq.c @@ -922,7 +922,8 @@ create_update_args(NMDnsDnsmasq *self, if (global_config) add_global_config(self, &servers, global_config); - else { + + if (!global_config || !nm_global_dns_config_lookup_domain(global_config, "*")) { c_list_for_each_entry (ip_data, ip_data_lst_head, ip_data_lst) add_ip_config(self, &servers, ip_data); }