mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 12:50:09 +01:00
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.
This commit is contained in:
parent
e78bfb63cd
commit
b4db0e8362
1 changed files with 14 additions and 13 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue