summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2018-01-10 11:21:27 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2018-01-12 13:42:08 +0100
commite78bfb63cd7c4727a283fb38cf196350fe974922 (patch)
tree4cfe1b9e2b598fe5ebf07cde2f7ae5b3627f962c
parentd3dfadf6393461125043219e99a1ce0b0695ea45 (diff)
downloadNetworkManager-e78bfb63cd7c4727a283fb38cf196350fe974922.tar.gz
dns: split out domains retrieval
-rw-r--r--src/dns/nm-dns-manager.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c
index 0e9d0903fd..912b9a8a2a 100644
--- a/src/dns/nm-dns-manager.c
+++ b/src/dns/nm-dns-manager.c
@@ -377,14 +377,36 @@ add_dns_option_item (GPtrArray *array, const char *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++) {