diff --git a/src/dns-manager/nm-dns-systemd-resolved.c b/src/dns-manager/nm-dns-systemd-resolved.c index f80c0c1643..3f4dbfefe5 100644 --- a/src/dns-manager/nm-dns-systemd-resolved.c +++ b/src/dns-manager/nm-dns-systemd-resolved.c @@ -163,9 +163,10 @@ update_add_ip6_config (NMDnsSystemdResolved *self, GVariantBuilder *domains, const NMIP6Config *config) { - int i; + guint i, n; - for (i = 0 ; i < nm_ip6_config_get_num_nameservers (config); i++) { + n = nm_ip6_config_get_num_nameservers (config); + for (i = 0 ; i < n; i++) { const struct in6_addr *ip; g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)")); @@ -176,13 +177,15 @@ update_add_ip6_config (NMDnsSystemdResolved *self, g_variant_builder_close (dns); } - for (i = 0; i < nm_ip6_config_get_num_searches (config); i++) { - add_domain (domains, nm_ip6_config_get_search (config, i), - nm_ip6_config_get_never_default (config)); - } - - if (nm_ip6_config_get_num_searches (config) == 0) { - for (i = 0; i < nm_ip6_config_get_num_domains (config); i++) { + n = nm_ip6_config_get_num_searches (config); + if (n > 0) { + for (i = 0; i < n; i++) { + add_domain (domains, nm_ip6_config_get_search (config, i), + nm_ip6_config_get_never_default (config)); + } + } else { + n = nm_ip6_config_get_num_domains (config); + for (i = 0; i < n; i++) { add_domain (domains, nm_ip6_config_get_domain (config, i), nm_ip6_config_get_never_default (config)); } @@ -195,9 +198,10 @@ update_add_ip4_config (NMDnsSystemdResolved *self, GVariantBuilder *domains, const NMIP4Config *config) { - int i; + guint i, n; - for (i = 0 ; i < nm_ip4_config_get_num_nameservers (config); i++) { + n = nm_ip4_config_get_num_nameservers (config); + for (i = 0 ; i < n; i++) { guint32 ns; g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)")); @@ -208,13 +212,15 @@ update_add_ip4_config (NMDnsSystemdResolved *self, g_variant_builder_close (dns); } - for (i = 0; i < nm_ip4_config_get_num_searches (config); i++) { - add_domain (domains, nm_ip4_config_get_search (config, i), - nm_ip4_config_get_never_default (config)); - } - - if (nm_ip4_config_get_num_searches (config) == 0) { - for (i = 0; i < nm_ip4_config_get_num_domains (config); i++) { + n = nm_ip4_config_get_num_searches (config); + if (n > 0) { + for (i = 0; i < n; i++) { + add_domain (domains, nm_ip4_config_get_search (config, i), + nm_ip4_config_get_never_default (config)); + } + } else { + n = nm_ip4_config_get_num_domains (config); + for (i = 0; i < n; i++) { add_domain (domains, nm_ip4_config_get_domain (config, i), nm_ip4_config_get_never_default (config)); }