]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: check at least one dynamic address is assigned when DHCP is enabled
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 23 Jul 2020 12:18:24 +0000 (21:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Jul 2020 17:05:05 +0000 (02:05 +0900)
src/network/networkd-link.c

index 8adeca7eb2fbc7c6437957d4e143879188166189..894b55f4c5d2bf799810a4c5f5a1f6450306ef5d 100644 (file)
@@ -1183,8 +1183,10 @@ void link_check_ready(Link *link) {
                         return;
                 }
 
-                if ((link_dhcp4_enabled(link) || link_dhcp6_enabled(link)) && set_isempty(link->addresses)) {
-                        log_link_debug(link, "%s(): DHCP4 or DHCP6 is enabled but no address is assigned yet.", __func__);
+                if ((link_dhcp4_enabled(link) || link_dhcp6_enabled(link)) &&
+                    !link->dhcp_address && set_isempty(link->dhcp6_addresses) && set_isempty(link->ndisc_addresses) &&
+                    !(link_ipv4ll_enabled(link, ADDRESS_FAMILY_FALLBACK_IPV4) && link->ipv4ll_address_configured)) {
+                        log_link_debug(link, "%s(): DHCP4 or DHCP6 is enabled but no dynamic address is assigned yet.", __func__);
                         return;
                 }