Currently, there exist only two MTU sources, static and DHCPv4, and they
are exclusive. Hence, it is not necessary to check the existence of the
MTU option in the acquired DHCP lease. Let's unconditionally reset the
MTU. Note that, if the current and original MTU are equivalent, then
link_request_to_set_mtu() handles that gracefully.
}
static int dhcp_reset_mtu(Link *link) {
- uint16_t mtu;
int r;
assert(link);
if (!link->network->dhcp_use_mtu)
return 0;
- r = sd_dhcp_lease_get_mtu(link->dhcp_lease, &mtu);
- if (r == -ENODATA)
- return 0;
- if (r < 0)
- return log_link_error_errno(link, r, "DHCP error: failed to get MTU from lease: %m");
-
- if (link->original_mtu == mtu)
- return 0;
-
r = link_request_to_set_mtu(link, link->original_mtu);
if (r < 0)
- return log_link_error_errno(link, r, "DHCP error: could not reset MTU: %m");
+ return log_link_error_errno(link, r, "DHCP error: Could not queue request to reset MTU: %m");
return 0;
}