]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/dhcp4: honor received broadcast address
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 24 Jul 2023 18:26:31 +0000 (03:26 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Jul 2023 20:15:11 +0000 (05:15 +0900)
src/network/networkd-dhcp4.c

index b907f344fd2b9ab8af48ed55461bf1d692f38554..2622dddadb04af7a5b7f458df415a4d34387e42b 100644 (file)
@@ -872,6 +872,9 @@ static int dhcp4_request_address(Link *link, bool announce) {
         addr->lifetime_preferred_usec = lifetime_usec;
         addr->lifetime_valid_usec = lifetime_usec;
         addr->prefixlen = prefixlen;
+        r = sd_dhcp_lease_get_broadcast(link->dhcp_lease, &addr->broadcast);
+        if (r < 0 && r != -ENODATA)
+                return log_link_warning_errno(link, r, "DHCP: failed to get broadcast address: %m");
         address_set_broadcast(addr, link);
         SET_FLAG(addr->flags, IFA_F_NOPREFIXROUTE, !link_prefixroute(link));
         addr->route_metric = link->network->dhcp_route_metric;