summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-05-06 10:56:21 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2017-05-06 10:56:21 +0200
commit653a0efb43cce934fffa89cdb0ad93945ec37249 (patch)
treefc6878cedef1aa5f2d6581595dbe5eed5d2185f8
parentb91366b2bff1a438ed29dd9638b790b5656b1519 (diff)
downloadNetworkManager-bg/addrconf6-race.tar.gz
-rw-r--r--src/devices/nm-device.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 0363317302..89a94edc96 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -6832,7 +6832,8 @@ linklocal6_complete (NMDevice *self)
const char *method;
g_assert (priv->linklocal6_timeout_id);
- g_assert (nm_ip6_config_get_address_first_nontentative (priv->ip6_config, TRUE));
+ g_assert (priv->ext_ip6_config_captured);
+ g_assert (nm_ip6_config_get_address_first_nontentative (priv->ext_ip6_config_captured, TRUE));
linklocal6_cleanup (self);
@@ -6956,8 +6957,8 @@ linklocal6_start (NMDevice *self)
linklocal6_cleanup (self);
- if ( priv->ip6_config
- && nm_ip6_config_get_address_first_nontentative (priv->ip6_config, TRUE))
+ if ( priv->ext_ip6_config_captured
+ && nm_ip6_config_get_address_first_nontentative (priv->ext_ip6_config_captured, TRUE))
return NM_ACT_STAGE_RETURN_SUCCESS;
connection = nm_device_get_applied_connection (self);
@@ -7718,6 +7719,13 @@ act_stage3_ip6_config_start (NMDevice *self,
/* Re-enable IPv6 on the interface */
set_disable_ipv6 (self, "0");
+ nm_platform_process_events (nm_device_get_platform (self));
+ g_clear_object (&priv->ext_ip6_config_captured);
+ priv->ext_ip6_config_captured = nm_ip6_config_capture (nm_device_get_platform (self),
+ nm_device_get_ifindex (self),
+ FALSE,
+ NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN);
+
ip6_privacy = _ip6_privacy_get (self);
if ( strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_AUTO) == 0