]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: always check link is ready when address is updated
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 21 Dec 2018 06:52:33 +0000 (15:52 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 22 Dec 2018 23:04:36 +0000 (08:04 +0900)
src/network/networkd-address.c

index b4e528f0fd370c3707dceba5d3c0beaf3e2cfd05..d1ef45100438658ff12fb03e3d9cabce34848854 100644 (file)
@@ -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;