summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-12-05 10:38:59 +0100
committerThomas Haller <thaller@redhat.com>2017-12-05 10:47:38 +0100
commitf38feb8ee715950b5e9a82c0c9950a17d09cc71b (patch)
treee1f5e01ffaf6aa6b7a1083f90614889b2933c027
parent7bff56be439f829b6aef4b2cd0d4d1f14f871102 (diff)
downloadNetworkManager-bg/device-reapply-no-restart-bgo790061.tar.gz
fixup! device: restore original dynamic IPv6 configuration on reapplybg/device-reapply-no-restart-bgo790061
Same as before.
-rw-r--r--src/devices/nm-device.c24
-rw-r--r--src/nm-ip4-config.h13
2 files changed, 21 insertions, 16 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 7f983a426d..98a7a2abdd 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -752,23 +752,15 @@ applied_config_add_address (AppliedConfig *config, const NMPlatformIPAddress *ad
}
static void
-applied_config_add_nameserver (AppliedConfig *config, gconstpointer ns)
+applied_config_add_nameserver (AppliedConfig *config, const NMIPAddr *ns)
{
- if (config->orig) {
- if (NM_IS_IP4_CONFIG (config->orig))
- nm_ip4_config_add_nameserver ((NMIP4Config *) config->orig, GPOINTER_TO_UINT (ns));
- else
- nm_ip6_config_add_nameserver ((NMIP6Config *) config->orig, ns);
-
- } else
+ if (config->orig)
+ nm_ip_config_add_nameserver (config->orig, ns);
+ else
nm_assert (!config->current);
- if (config->current) {
- if (NM_IS_IP4_CONFIG (config->current))
- nm_ip4_config_add_nameserver ((NMIP4Config *) config->current, GPOINTER_TO_UINT (ns));
- else
- nm_ip6_config_add_nameserver ((NMIP6Config *) config->current, ns);
- }
+ if (config->current)
+ nm_ip_config_add_nameserver (config->current, ns);
}
static void
@@ -7146,7 +7138,7 @@ nm_device_copy_ip6_dns_config (NMDevice *self, NMDevice *from_device)
len = nm_ip6_config_get_num_nameservers (from_config);
for (i = 0; i < len; i++) {
applied_config_add_nameserver (&priv->ac_ip6_config,
- nm_ip6_config_get_nameserver (from_config, i));
+ (const NMIPAddr *) nm_ip6_config_get_nameserver (from_config, i));
}
len = nm_ip6_config_get_num_searches (from_config);
@@ -7658,7 +7650,7 @@ ndisc_config_changed (NMNDisc *ndisc, const NMNDiscData *rdata, guint changed_in
applied_config_reset_nameservers (&priv->ac_ip6_config);
for (i = 0; i < rdata->dns_servers_n; i++)
- applied_config_add_nameserver (&priv->ac_ip6_config, &rdata->dns_servers[i].address);
+ applied_config_add_nameserver (&priv->ac_ip6_config, (const NMIPAddr *) &rdata->dns_servers[i].address);
}
if (changed & NM_NDISC_CONFIG_DNS_DOMAINS) {
diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h
index f61dc169ad..59581b87bd 100644
--- a/src/nm-ip4-config.h
+++ b/src/nm-ip4-config.h
@@ -222,6 +222,13 @@ const NMPlatformIP4Route *nm_ip4_config_get_direct_route_for_host (const NMIP4Co
void nm_ip4_config_reset_nameservers (NMIP4Config *self);
void nm_ip4_config_add_nameserver (NMIP4Config *self, guint32 nameserver);
+
+static inline void
+_nm_ip4_config_add_nameserver (NMIP4Config *self, const guint32 *nameserver)
+{
+ nm_ip4_config_add_nameserver (self, *nameserver);
+}
+
void nm_ip4_config_del_nameserver (NMIP4Config *self, guint i);
guint nm_ip4_config_get_num_nameservers (const NMIP4Config *self);
guint32 nm_ip4_config_get_nameserver (const NMIP4Config *self, guint i);
@@ -379,6 +386,12 @@ nm_ip_config_get_dns_priority (const NMIPConfig *self)
}
static inline void
+nm_ip_config_add_nameserver (NMIPConfig *self, const NMIPAddr *ns)
+{
+ _NM_IP_CONFIG_DISPATCH_VOID (self, _nm_ip4_config_add_nameserver, nm_ip6_config_add_nameserver, (gconstpointer) ns);
+}
+
+static inline void
nm_ip_config_reset_nameservers (const NMIPConfig *self)
{
_NM_IP_CONFIG_DISPATCH_VOID (self, nm_ip4_config_reset_nameservers, nm_ip6_config_reset_nameservers);