]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: dhcp6pd: skip to assign prefixes to a downstream link if it is not ready
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 4 Dec 2021 20:14:22 +0000 (05:14 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 6 Dec 2021 12:35:53 +0000 (21:35 +0900)
src/network/networkd-dhcp-prefix-delegation.c

index dbe7bcdc9a0a3a8bdc871af20bd9f4576b410655..44858c66032c05a0f0a95513b4219c74be9b0041 100644 (file)
@@ -621,7 +621,7 @@ static int dhcp6_pd_prepare(Link *link) {
         link_mark_addresses(link, NETWORK_CONFIG_SOURCE_DHCP6PD, NULL);
         link_mark_routes(link, NETWORK_CONFIG_SOURCE_DHCP6PD, NULL);
 
-        return 0;
+        return 1;
 }
 
 static int dhcp6_pd_finalize(Link *link) {
@@ -781,11 +781,11 @@ static int dhcp6_pd_assign_prefixes(Link *link, Link *uplink) {
         /* This is similar to dhcp6_pd_prefix_acquired(), but called when a downstream interface
          * appears later or reconfiguring the interface. */
 
-        r = sd_dhcp6_lease_get_timestamp(uplink->dhcp6_lease, clock_boottime_or_monotonic(), &timestamp_usec);
-        if (r < 0)
+        r = dhcp6_pd_prepare(link);
+        if (r <= 0)
                 return r;
 
-        r = dhcp6_pd_prepare(link);
+        r = sd_dhcp6_lease_get_timestamp(uplink->dhcp6_lease, clock_boottime_or_monotonic(), &timestamp_usec);
         if (r < 0)
                 return r;