]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: dhcp6: always assign prefix through dhcp6_pd_assign_prefix()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 13 Oct 2021 17:54:20 +0000 (02:54 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 18 Oct 2021 15:54:45 +0000 (00:54 +0900)
For uplink interface, we request Assign= is enabled in the above.
So, we can always use dhcp6_pd_assign_prefix().

Just a minor simplification for later commits.

src/network/networkd-dhcp6.c

index da8a882072c07d8bfd976ca0abff19c788d3d2d8..9638c7ea76c7016fa0a0e59579b6d49b5da6d523 100644 (file)
@@ -556,20 +556,17 @@ static int dhcp6_pd_prefix_distribute(
                 }
 
                 (void) in6_addr_prefix_to_string(&assigned_prefix, 64, &buf);
-                if (link == dhcp6_link) {
-                        r = dhcp6_pd_request_address(link, &assigned_prefix, lifetime_preferred, lifetime_valid);
-                        if (r < 0)
-                                return log_link_warning_errno(link, r, "Failed to assign addresses in prefix %s: %m", strna(buf));
+                r = dhcp6_pd_assign_prefix(link, &assigned_prefix, lifetime_preferred, lifetime_valid);
+                if (r < 0) {
+                        log_link_warning_errno(link, r, "Failed to assign/update prefix %s: %m", strna(buf));
+                        if (link == dhcp6_link)
+                                return r;
 
-                        log_link_debug(link, "Assigned addresses in prefix %s: %m", strna(buf));
-                } else {
-                        r = dhcp6_pd_assign_prefix(link, &assigned_prefix, lifetime_preferred, lifetime_valid);
-                        if (r < 0) {
-                                log_link_error_errno(link, r, "Failed to assign/update prefix %s: %m", strna(buf));
-                                link_enter_failed(link);
-                        } else
-                                log_link_debug(link, "Assigned prefix %s", strna(buf));
+                        link_enter_failed(link);
+                        continue;
                 }
+
+                log_link_debug(link, "Assigned prefix %s", strna(buf));
         }
 
         return 0;