From b7f7c7879321131793ac7d465632823cc1cafb65 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 21 Oct 2021 16:09:44 +0900 Subject: [PATCH] network: dhcp6pd: check link state earlier before assigning prefixes to downstream Also, narrow the acceptable range of the states. --- src/network/networkd-dhcp6.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index fb13027337f..a92394554af 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -547,13 +547,13 @@ static int dhcp6_pd_prefix_distribute( _cleanup_free_ char *buf = NULL; struct in6_addr assigned_prefix; - if (!link_dhcp6_pd_is_enabled(link)) + if (!IN_SET(link->state, LINK_STATE_CONFIGURING, LINK_STATE_CONFIGURED)) continue; - if (link == dhcp6_link && !link->network->dhcp6_pd_assign) + if (!link_dhcp6_pd_is_enabled(link)) continue; - if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) + if (link == dhcp6_link && !link->network->dhcp6_pd_assign) continue; if (assign_preferred_subnet_id != link_has_preferred_subnet_id(link)) @@ -581,7 +581,7 @@ static int dhcp6_pd_prefix_distribute( } static int dhcp6_pd_prepare(Link *link) { - if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) + if (!IN_SET(link->state, LINK_STATE_CONFIGURING, LINK_STATE_CONFIGURED)) return 0; if (!link_dhcp6_pd_is_enabled(link)) @@ -596,7 +596,7 @@ static int dhcp6_pd_prepare(Link *link) { static int dhcp6_pd_finalize(Link *link) { int r; - if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) + if (!IN_SET(link->state, LINK_STATE_CONFIGURING, LINK_STATE_CONFIGURED)) return 0; if (!link_dhcp6_pd_is_enabled(link)) -- 2.47.3