From 5253ab0d0de54ab2f406c82ba6d68c395df58d7a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 14 Oct 2016 06:02:13 +0200 Subject: [PATCH] dns/resolved: don't repeatedly call nm_ip4_config_get_num_*() to iterate config --- src/dns-manager/nm-dns-systemd-resolved.c | 42 +++++++++++++---------- 1 file changed, 24 insertions(+), 18 deletions(-) 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)); }