From: Yu Watanabe Date: Fri, 21 Dec 2018 06:52:33 +0000 (+0900) Subject: network: always check link is ready when address is updated X-Git-Tag: v241-rc1~111^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c8f7123e00a6c1b8bf23f681e2b73ac3b37944f3;p=thirdparty%2Fsystemd.git network: always check link is ready when address is updated --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index b4e528f0fd3..d1ef4510043 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -351,18 +351,17 @@ int address_update( address->cinfo = *cinfo; link_update_operstate(address->link); + link_check_ready(address->link); - if (!ready && address_is_ready(address)) { - link_check_ready(address->link); + if (!ready && + address_is_ready(address) && + address->family == AF_INET6 && + in_addr_is_link_local(AF_INET6, &address->in_addr) > 0 && + in_addr_is_null(AF_INET6, (const union in_addr_union*) &address->link->ipv6ll_address) > 0) { - if (address->family == AF_INET6 && - in_addr_is_link_local(AF_INET6, &address->in_addr) > 0 && - in_addr_is_null(AF_INET6, (const union in_addr_union*) &address->link->ipv6ll_address) > 0) { - - r = link_ipv6ll_gained(address->link, &address->in_addr.in6); - if (r < 0) - return r; - } + r = link_ipv6ll_gained(address->link, &address->in_addr.in6); + if (r < 0) + return r; } return 0;