diff options
author | Thomas Haller <thaller@redhat.com> | 2017-06-14 11:04:38 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-06-19 15:12:49 +0200 |
commit | 19a98c6f617c2c9d550f6954f34b3e25e3ae6d63 (patch) | |
tree | 18c4a575088570d233bedf96a699a0223ea4bca0 | |
parent | 70792e51d94a5e7790b3e65b7d6cf591b251f4cd (diff) | |
download | NetworkManager-19a98c6f617c2c9d550f6954f34b3e25e3ae6d63.tar.gz |
dns: don't clone DNS configs list for nm_dns_plugin_update()
No need to clone the list anymore. Unfortunately, GPtrArray is not NULL
terminated (without extra effort), so we have to pass on the GPtrArray
instance for the length.
-rw-r--r-- | src/dns/nm-dns-dnsmasq.c | 8 | ||||
-rw-r--r-- | src/dns/nm-dns-manager.c | 16 | ||||
-rw-r--r-- | src/dns/nm-dns-plugin.c | 4 | ||||
-rw-r--r-- | src/dns/nm-dns-plugin.h | 4 | ||||
-rw-r--r-- | src/dns/nm-dns-systemd-resolved.c | 8 | ||||
-rw-r--r-- | src/dns/nm-dns-unbound.c | 2 |
6 files changed, 16 insertions, 26 deletions
diff --git a/src/dns/nm-dns-dnsmasq.c b/src/dns/nm-dns-dnsmasq.c index 67aae6f431..a6204ae4a0 100644 --- a/src/dns/nm-dns-dnsmasq.c +++ b/src/dns/nm-dns-dnsmasq.c @@ -554,7 +554,7 @@ start_dnsmasq (NMDnsDnsmasq *self) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { @@ -571,13 +571,13 @@ update (NMDnsPlugin *plugin, if (global_config) add_global_config (self, &servers, global_config); else { - for (i = 0; configs[i]; i++) { - prio = nm_dns_ip_config_data_get_dns_priority (configs[i]); + for (i = 0; i < configs->len; i++) { + prio = nm_dns_ip_config_data_get_dns_priority (configs->pdata[i]); if (i == 0) first_prio = prio; else if (first_prio < 0 && first_prio != prio) break; - add_ip_config_data (self, &servers, configs[i]); + add_ip_config_data (self, &servers, configs->pdata[i]); } } diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 09c183be50..daba6db349 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -994,10 +994,8 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o char ***out_options, char ***out_nameservers, char ***out_nis_servers, - const char **out_nis_domain, - NMDnsIPConfigData ***out_plugin_confs) + const char **out_nis_domain) { - NMDnsIPConfigData **plugin_confs = NULL; guint i, j, num, len; NMResolvConfData rc = { .nameservers = g_ptr_array_new (), @@ -1015,8 +1013,6 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o NMDnsIPConfigData *current; gboolean v4; - plugin_confs = g_new (NMDnsIPConfigData *, configs->len + 1); - for (i = 0, j = 0; i < configs->len; i++) { gboolean skip = FALSE; @@ -1043,10 +1039,7 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o if (!skip) merge_one_ip_config_data (&rc, current); - - plugin_confs[j++] = current; } - plugin_confs[j++] = NULL; } /* If the hostname is a FQDN ("dcbw.example.com"), then add the domain part of it @@ -1080,7 +1073,6 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o } g_ptr_array_set_size (rc.searches, i); - *out_plugin_confs = plugin_confs; *out_searches = _ptrarray_to_strv (rc.searches); *out_options = _ptrarray_to_strv (rc.options); *out_nameservers = _ptrarray_to_strv (rc.nameservers); @@ -1104,7 +1096,6 @@ update_dns (NMDnsManager *self, SpawnResult result = SR_ERROR; NMConfigData *data; NMGlobalDnsConfig *global_config; - gs_free NMDnsIPConfigData **plugin_confs = NULL; g_return_val_if_fail (!error || !*error, FALSE); @@ -1138,8 +1129,7 @@ update_dns (NMDnsManager *self, compute_hash (self, global_config, priv->hash); _collect_resolv_conf_data (self, global_config, priv->configs, priv->hostname, - &searches, &options, &nameservers, &nis_servers, &nis_domain, - &plugin_confs); + &searches, &options, &nameservers, &nis_servers, &nis_domain); /* Let any plugins do their thing first */ if (priv->plugin) { @@ -1157,7 +1147,7 @@ update_dns (NMDnsManager *self, _LOGD ("update-dns: updating plugin %s", plugin_name); if (!nm_dns_plugin_update (plugin, - (const NMDnsIPConfigData **) plugin_confs, + priv->configs, global_config, priv->hostname)) { _LOGW ("update-dns: plugin %s update failed", plugin_name); diff --git a/src/dns/nm-dns-plugin.c b/src/dns/nm-dns-plugin.c index 740ff26bab..5805b7d858 100644 --- a/src/dns/nm-dns-plugin.c +++ b/src/dns/nm-dns-plugin.c @@ -77,14 +77,14 @@ G_DEFINE_TYPE_EXTENDED (NMDnsPlugin, nm_dns_plugin, G_TYPE_OBJECT, G_TYPE_FLAG_A gboolean nm_dns_plugin_update (NMDnsPlugin *self, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { g_return_val_if_fail (NM_DNS_PLUGIN_GET_CLASS (self)->update != NULL, FALSE); return NM_DNS_PLUGIN_GET_CLASS (self)->update (self, - configs ?: NM_PTRARRAY_EMPTY (const NMDnsIPConfigData *), + configs, global_config, hostname); } diff --git a/src/dns/nm-dns-plugin.h b/src/dns/nm-dns-plugin.h index d71eb46b45..996695c0f7 100644 --- a/src/dns/nm-dns-plugin.h +++ b/src/dns/nm-dns-plugin.h @@ -50,7 +50,7 @@ typedef struct { * configuration. */ gboolean (*update) (NMDnsPlugin *self, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname); @@ -80,7 +80,7 @@ gboolean nm_dns_plugin_is_caching (NMDnsPlugin *self); const char *nm_dns_plugin_get_name (NMDnsPlugin *self); gboolean nm_dns_plugin_update (NMDnsPlugin *self, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname); diff --git a/src/dns/nm-dns-systemd-resolved.c b/src/dns/nm-dns-systemd-resolved.c index f49aed57da..fce1fef1ab 100644 --- a/src/dns/nm-dns-systemd-resolved.c +++ b/src/dns/nm-dns-systemd-resolved.c @@ -290,7 +290,7 @@ send_updates (NMDnsSystemdResolved *self) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { @@ -299,15 +299,15 @@ update (NMDnsPlugin *plugin, guint i; int prio, first_prio = 0; - for (i = 0; configs[i]; i++) { + for (i = 0; i < configs->len; i++) { gboolean skip = FALSE; - prio = nm_dns_ip_config_data_get_dns_priority (configs[i]); + prio = nm_dns_ip_config_data_get_dns_priority (configs->pdata[i]); if (i == 0) first_prio = prio; else if (first_prio < 0 && first_prio != prio) skip = TRUE; - add_interface_configuration (self, interfaces, configs[i], skip); + add_interface_configuration (self, interfaces, configs->pdata[i], skip); } free_pending_updates (self); diff --git a/src/dns/nm-dns-unbound.c b/src/dns/nm-dns-unbound.c index 7369505ec9..0b80055f1b 100644 --- a/src/dns/nm-dns-unbound.c +++ b/src/dns/nm-dns-unbound.c @@ -39,7 +39,7 @@ G_DEFINE_TYPE (NMDnsUnbound, nm_dns_unbound, NM_TYPE_DNS_PLUGIN) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData *const*configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { |