Commit b4db0e83 authored by Beniamino Galvani's avatar Beniamino Galvani
Browse files

dns: add @dup argument to add_dns_domains() and add_string_item()

Add a @dup argument that tells whether the new item should be
duplicated.
parent e78bfb63
......@@ -350,7 +350,7 @@ _ip_config_lst_head (NMDnsManager *self)
/*****************************************************************************/
static void
add_string_item (GPtrArray *array, const char *str)
add_string_item (GPtrArray *array, const char *str, gboolean dup)
{
int i;
......@@ -366,7 +366,7 @@ add_string_item (GPtrArray *array, const char *str)
}
/* No dupes, add the new item */
g_ptr_array_add (array, g_strdup (str));
g_ptr_array_add (array, dup ? g_strdup (str): (gpointer) str);
}
static void
......@@ -377,7 +377,7 @@ add_dns_option_item (GPtrArray *array, const char *str)
}
static void
add_dns_domains (GPtrArray *array, const NMIPConfig *ip_config)
add_dns_domains (GPtrArray *array, const NMIPConfig *ip_config, gboolean dup)
{
guint num_domains, num_searches, i;
const char *str;
......@@ -388,13 +388,13 @@ add_dns_domains (GPtrArray *array, const NMIPConfig *ip_config)
for (i = 0; i < num_searches; i++) {
str = nm_ip_config_get_search (ip_config, i);
if (domain_is_valid (str, FALSE))
add_string_item (array, str);
add_string_item (array, str, dup);
}
if (num_domains > 1 || !num_searches) {
for (i = 0; i < num_domains; i++) {
str = nm_ip_config_get_domain (ip_config, i);
if (domain_is_valid (str, FALSE))
add_string_item (array, str);
add_string_item (array, str, dup);
}
}
}
......@@ -436,10 +436,10 @@ merge_one_ip_config (NMResolvConfData *rc,
}
}
add_string_item (rc->nameservers, buf);
add_string_item (rc->nameservers, buf, TRUE);
}
add_dns_domains (rc->searches, ip_config);
add_dns_domains (rc->searches, ip_config, TRUE);
num = nm_ip_config_get_num_dns_options (ip_config);
for (i = 0; i < num; i++) {
......@@ -454,7 +454,8 @@ merge_one_ip_config (NMResolvConfData *rc,
num = nm_ip4_config_get_num_nis_servers (ip4_config);
for (i = 0; i < num; i++) {
add_string_item (rc->nis_servers,
nm_utils_inet4_ntop (nm_ip4_config_get_nis_server (ip4_config, i), buf));
nm_utils_inet4_ntop (nm_ip4_config_get_nis_server (ip4_config, i), buf),
TRUE);
}
if (nm_ip4_config_get_nis_domain (ip4_config)) {
......@@ -967,17 +968,17 @@ merge_global_dns_config (NMResolvConfData *rc, NMGlobalDnsConfig *global_conf)
for (i = 0; searches && searches[i]; i++) {
if (domain_is_valid (searches[i], FALSE))
add_string_item (rc->searches, searches[i]);
add_string_item (rc->searches, searches[i], TRUE);
}
for (i = 0; options && options[i]; i++)
add_string_item (rc->options, options[i]);
add_string_item (rc->options, options[i], TRUE);
default_domain = nm_global_dns_config_lookup_domain (global_conf, "*");
g_assert (default_domain);
servers = nm_global_dns_domain_get_servers (default_domain);
for (i = 0; servers && servers[i]; i++)
add_string_item (rc->nameservers, servers[i]);
add_string_item (rc->nameservers, servers[i], TRUE);
return TRUE;
}
......@@ -1090,9 +1091,9 @@ _collect_resolv_conf_data (NMDnsManager *self,
&& !nm_utils_ipaddr_valid (AF_UNSPEC, priv->hostname)) {
hostdomain++;
if (domain_is_valid (hostdomain, TRUE))
add_string_item (rc.searches, hostdomain);
add_string_item (rc.searches, hostdomain, TRUE);
else if (domain_is_valid (priv->hostname, TRUE))
add_string_item (rc.searches, priv->hostname);
add_string_item (rc.searches, priv->hostname, TRUE);
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment