summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2015-04-05 17:54:31 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2015-04-30 08:45:00 +0200
commit477c8a96bafc899b5ce54995341889f754084dcf (patch)
tree27db7a7b494ed7092007626a7adbd3a6512af972
parent1f6b15917e622442469fa3e3dc682885b81c8391 (diff)
downloadNetworkManager-bg/dns-searches-rh1202539.tar.gz
fixup! dns: don't override DHCP-supplied search order with domain (rh #1202539)bg/dns-searches-rh1202539
-rw-r--r--src/dns-manager/nm-dns-manager.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index 89bd416d4b..9a9a00b75f 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -179,7 +179,7 @@ merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src)
static void
merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
{
- guint32 num, i;
+ guint32 num, num_domains, num_searches, i;
const char *iface;
iface = g_object_get_data (G_OBJECT (src), IP_CONFIG_IFACE_TAG);
@@ -204,18 +204,10 @@ merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
add_string_item (rc->nameservers, buf);
}
- num = nm_ip6_config_get_num_domains (src);
- for (i = 0; i < num; i++) {
- const char *domain;
-
- domain = nm_ip6_config_get_domain (src, i);
- if (!DOMAIN_IS_VALID (domain))
- continue;
- add_string_item (rc->searches, domain);
- }
+ num_domains = nm_ip6_config_get_num_domains (src);
+ num_searches = nm_ip6_config_get_num_searches (src);
- num = nm_ip6_config_get_num_searches (src);
- for (i = 0; i < num; i++) {
+ for (i = 0; i < num_searches; i++) {
const char *search;
search = nm_ip6_config_get_search (src, i);
@@ -223,6 +215,17 @@ merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
continue;
add_string_item (rc->searches, search);
}
+
+ if (num_domains > 1 || !num_searches) {
+ for (i = 0; i < num_domains; i++) {
+ const char *domain;
+
+ domain = nm_ip6_config_get_domain (src, i);
+ if (!DOMAIN_IS_VALID (domain))
+ continue;
+ add_string_item (rc->searches, domain);
+ }
+ }
}