diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c index dbe7bcdc9a..44858c6603 100644 --- a/src/network/networkd-dhcp-prefix-delegation.c +++ b/src/network/networkd-dhcp-prefix-delegation.c @@ -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(), ×tamp_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(), ×tamp_usec); if (r < 0) return r;