From 0daa4db81bc3741ee61aa35c916609521b69de58 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 10 Jan 2018 11:21:27 +0100 Subject: [PATCH] dns: split out domains retrieval (cherry picked from commit e78bfb63cd7c4727a283fb38cf196350fe974922) --- src/dns/nm-dns-manager.c | 41 ++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 858d8ed79c..4ce322e31c 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -376,15 +376,37 @@ add_dns_option_item (GPtrArray *array, const char *str) g_ptr_array_add (array, g_strdup (str)); } +static void +add_dns_domains (GPtrArray *array, const NMIPConfig *ip_config) +{ + guint num_domains, num_searches, i; + const char *str; + + num_domains = nm_ip_config_get_num_domains (ip_config); + num_searches = nm_ip_config_get_num_searches (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); + } + 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); + } + } +} + static void merge_one_ip_config (NMResolvConfData *rc, int ifindex, const NMIPConfig *ip_config) { int addr_family; - guint num, num_domains, num_searches, i; + guint num, i; char buf[NM_UTILS_INET_ADDRSTRLEN + 50]; - const char *str; addr_family = nm_ip_config_get_addr_family (ip_config); @@ -417,20 +439,7 @@ merge_one_ip_config (NMResolvConfData *rc, add_string_item (rc->nameservers, buf); } - num_domains = nm_ip_config_get_num_domains (ip_config); - num_searches = nm_ip_config_get_num_searches (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 (rc->searches, str); - } - 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 (rc->searches, str); - } - } + add_dns_domains (rc->searches, ip_config); num = nm_ip_config_get_num_dns_options (ip_config); for (i = 0; i < num; i++) {