From: Yu Watanabe Date: Wed, 7 Apr 2021 17:29:52 +0000 (+0900) Subject: network: do not require DHCPv6 addresses when UseAddress=no X-Git-Tag: v249-rc1~452 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cd37e4354a5993c8bc600f481c4c0cc6c61eb91;p=thirdparty%2Fsystemd.git network: do not require DHCPv6 addresses when UseAddress=no Follow-up for 1536b7b2d00819615bf8eba194de7ccd20c3689f. Fixes #19196. --- diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index 72bb46b1865..aa077d6219f 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -25,6 +25,13 @@ #include "radv-internal.h" #include "web-util.h" +bool link_dhcp6_with_address_enabled(Link *link) { + if (!link_dhcp6_enabled(link)) + return false; + + return link->network->dhcp6_use_address; +} + bool link_dhcp6_pd_is_enabled(Link *link) { assert(link); diff --git a/src/network/networkd-dhcp6.h b/src/network/networkd-dhcp6.h index f74476d575e..a8028a95abd 100644 --- a/src/network/networkd-dhcp6.h +++ b/src/network/networkd-dhcp6.h @@ -26,6 +26,7 @@ typedef struct DHCP6DelegatedPrefix { DHCP6DelegatedPrefix *dhcp6_pd_free(DHCP6DelegatedPrefix *p); DEFINE_TRIVIAL_CLEANUP_FUNC(DHCP6DelegatedPrefix*, dhcp6_pd_free); +bool link_dhcp6_with_address_enabled(Link *link); bool link_dhcp6_pd_is_enabled(Link *link); int dhcp6_pd_remove(Link *link); int dhcp6_configure(Link *link); diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index de453fa72e0..ead45dde2c6 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -779,7 +779,7 @@ void link_check_ready(Link *link) { break; } - if ((link_dhcp4_enabled(link) || link_dhcp6_enabled(link) || link_ipv4ll_enabled(link)) && + if ((link_dhcp4_enabled(link) || link_dhcp6_with_address_enabled(link) || link_ipv4ll_enabled(link)) && !link->dhcp_address && set_isempty(link->dhcp6_addresses) && !has_ndisc_address && !link->ipv4ll_address_configured) /* When DHCP[46] or IPv4LL is enabled, at least one address is acquired by them. */