From c8f7123e00a6c1b8bf23f681e2b73ac3b37944f3 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 21 Dec 2018 15:52:33 +0900 Subject: [PATCH] network: always check link is ready when address is updated --- src/network/networkd-address.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index b4e528f0fd..d1ef451004 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; -- 2.25.1