mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-02 00:18:06 +02:00
device: don't await for IPv6 DAD to finish if we are ignoring that there's no carrier
It's not the correct thing to do, but is the same behavior we've done previously. DAD is not even going to start until there's carrier and the client would just wait indefinitely. Ideally, the client would choose not to waiat, but it currently there's no way the client would discover what is going on. https://bugzilla.redhat.com/show_bug.cgi?id=1446367
This commit is contained in:
parent
1f2b5a2032
commit
bd9988f984
1 changed files with 6 additions and 3 deletions
|
|
@ -8499,11 +8499,14 @@ activate_stage5_ip6_config_commit (NMDevice *self)
|
|||
|
||||
/* Check if we have to wait for DAD */
|
||||
if (priv->ip6_state == IP_CONF && !priv->dad6_ip6_config) {
|
||||
priv->dad6_ip6_config = dad6_get_pending_addresses (self);
|
||||
if (!priv->carrier && priv->ignore_carrier && get_ip_config_may_fail (self, AF_INET6))
|
||||
_LOGI (LOGD_DEVICE | LOGD_IP6, "IPv6 DAD: carrier missing and ignored, not delaying activation");
|
||||
else
|
||||
priv->dad6_ip6_config = dad6_get_pending_addresses (self);
|
||||
|
||||
if (priv->dad6_ip6_config) {
|
||||
_LOGD (LOGD_DEVICE | LOGD_IP6, "IPv6 DAD: waiting termination");
|
||||
_LOGD (LOGD_DEVICE | LOGD_IP6, "IPv6 DAD: awaiting termination");
|
||||
} else {
|
||||
/* No tentative addresses, proceed right away */
|
||||
_set_ip_state (self, AF_INET6, IP_DONE);
|
||||
check_ip_state (self, FALSE);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue