]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: do not require DHCPv6 addresses when UseAddress=no
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 7 Apr 2021 17:29:52 +0000 (02:29 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 9 Apr 2021 06:15:34 +0000 (08:15 +0200)
Follow-up for 1536b7b2d00819615bf8eba194de7ccd20c3689f.

Fixes #19196.

src/network/networkd-dhcp6.c
src/network/networkd-dhcp6.h
src/network/networkd-link.c

index 72bb46b18650a87549814cf8557769dfdbad60be..aa077d6219ffc7848ab97608b512dabe5d548686 100644 (file)
 #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);
 
index f74476d575ec1e67226f57d5413b72dfaadc5832..a8028a95abd8838dbbebf042fe251bbf60526719 100644 (file)
@@ -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);
index de453fa72e0a7d979d4a58a98d7cb99ff98ca74d..ead45dde2c6a587bb6ee5e455cd1054213491f96 100644 (file)
@@ -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. */