summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-01-11 20:56:40 +0900
committerLuca Boccassi <luca.boccassi@gmail.com>2022-01-11 17:05:12 +0000
commitd5f8fd5b00e938710b5e80396f8b3fab59dd6d00 (patch)
treeeecaca5932e73cdf58df5b5706b86342f0b988ca
parent1d18a466c4956759bc3030c9fd631a0e797f6eff (diff)
downloadsystemd-d5f8fd5b00e938710b5e80396f8b3fab59dd6d00.tar.gz
network: dhcp6: do not request address if UseAddress=no
Fixes #22068.
-rw-r--r--src/network/networkd-dhcp6.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index 9e90366993..e591043111 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -646,9 +646,15 @@ static int dhcp6_configure(Link *link) {
r = sd_dhcp6_client_set_prefix_delegation(client, link->network->dhcp6_use_pd_prefix);
if (r < 0)
- return log_link_debug_errno(link, r, "DHCPv6 CLIENT: Failed to %s prefix delegation: %m",
+ return log_link_debug_errno(link, r, "DHCPv6 CLIENT: Failed to %s requesting prefixes to be delegated: %m",
enable_disable(link->network->dhcp6_use_pd_prefix));
+ /* Even if UseAddress=no, we need to request IA_NA, as the dhcp6 client may be started in managed mode. */
+ r = sd_dhcp6_client_set_address_request(client, link->network->dhcp6_use_pd_prefix ? link->network->dhcp6_use_address : true);
+ if (r < 0)
+ return log_link_debug_errno(link, r, "DHCPv6 CLIENT: Failed to %s requesting address: %m",
+ enable_disable(link->network->dhcp6_use_address));
+
if (link->network->dhcp6_pd_prefix_length > 0) {
r = sd_dhcp6_client_set_prefix_delegation_hint(client,
link->network->dhcp6_pd_prefix_length,