diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2015-04-05 17:54:31 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2015-04-30 08:45:00 +0200 |
commit | 477c8a96bafc899b5ce54995341889f754084dcf (patch) | |
tree | 27db7a7b494ed7092007626a7adbd3a6512af972 | |
parent | 1f6b15917e622442469fa3e3dc682885b81c8391 (diff) | |
download | NetworkManager-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.c | 27 |
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); + } + } } |