summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2018-01-10 11:23:13 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2018-01-12 13:42:08 +0100
commit42ea86fb7a678d84c4cf490e83a4c5189af7b2cc (patch)
tree29d36870ed4b4cecd8743cbfef79d321b9493d56
parent70550e2740ce26234aa715e11f5fc38091c5d7ea (diff)
downloadNetworkManager-42ea86fb7a678d84c4cf490e83a4c5189af7b2cc.tar.gz
dns: systemd-resolved: use generic ip-config functions
-rw-r--r--src/dns/nm-dns-systemd-resolved.c45
1 files changed, 10 insertions, 35 deletions
diff --git a/src/dns/nm-dns-systemd-resolved.c b/src/dns/nm-dns-systemd-resolved.c
index 7625bcaede..7ebd3e7e26 100644
--- a/src/dns/nm-dns-systemd-resolved.c
+++ b/src/dns/nm-dns-systemd-resolved.c
@@ -139,40 +139,23 @@ static void
update_add_ip_config (NMDnsSystemdResolved *self,
GVariantBuilder *dns,
GVariantBuilder *domains,
- gpointer config)
+ NMIPConfig *config)
{
int addr_family;
gsize addr_size;
guint i, n;
gboolean route_only;
- if (NM_IS_IP4_CONFIG (config))
- addr_family = AF_INET;
- else if (NM_IS_IP6_CONFIG (config))
- addr_family = AF_INET6;
- else
- g_return_if_reached ();
-
+ addr_family = nm_ip_config_get_addr_family (config);
addr_size = nm_utils_addr_family_to_size (addr_family);
- n = addr_family == AF_INET
- ? nm_ip4_config_get_num_nameservers (config)
- : nm_ip6_config_get_num_nameservers (config);
+ n = nm_ip_config_get_num_nameservers (config);
for (i = 0 ; i < n; i++) {
- in_addr_t ns4;
- gconstpointer ns;
-
- if (addr_family == AF_INET) {
- ns4 = nm_ip4_config_get_nameserver (config, i);
- ns = &ns4;
- } else
- ns = nm_ip6_config_get_nameserver (config, i);
-
g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)"));
g_variant_builder_add (dns, "i", addr_family);
g_variant_builder_add_value (dns,
g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
- ns,
+ nm_ip_config_get_nameserver (config, i),
addr_size,
1));
g_variant_builder_close (dns);
@@ -181,29 +164,21 @@ update_add_ip_config (NMDnsSystemdResolved *self,
/* If this link is never the default (e.g. only used for resources on this
* network) add a routing domain. */
route_only = addr_family == AF_INET
- ? !nm_ip4_config_best_default_route_get (config)
- : !nm_ip6_config_best_default_route_get (config);
+ ? !nm_ip4_config_best_default_route_get (NM_IP4_CONFIG (config))
+ : !nm_ip6_config_best_default_route_get (NM_IP6_CONFIG (config));
- n = addr_family == AF_INET
- ? nm_ip4_config_get_num_searches (config)
- : nm_ip6_config_get_num_searches (config);
+ n = nm_ip_config_get_num_searches (config);
if (n > 0) {
for (i = 0; i < n; i++) {
g_variant_builder_add (domains, "(sb)",
- addr_family == AF_INET
- ? nm_ip4_config_get_search (config, i)
- : nm_ip6_config_get_search (config, i),
+ nm_ip_config_get_search (config, i),
route_only);
}
} else {
- n = addr_family == AF_INET
- ? nm_ip4_config_get_num_domains (config)
- : nm_ip6_config_get_num_domains (config);
+ n = nm_ip_config_get_num_domains (config);
for (i = 0; i < n; i++) {
g_variant_builder_add (domains, "(sb)",
- addr_family == AF_INET
- ? nm_ip4_config_get_domain (config, i)
- : nm_ip6_config_get_domain (config, i),
+ nm_ip_config_get_domain (config, i),
route_only);
}
}