diff options
author | tramsay <treyramsay@gmail.com> | 2021-04-05 17:12:49 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-05-15 18:33:34 +0200 |
commit | 37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76 (patch) | |
tree | a69147031fdf696258bc4a6a328cb9034f91f4b9 | |
parent | 596f5101f29c10256208132bfa9c502bf898fd8b (diff) | |
download | systemd-37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76.tar.gz |
network:dhcp4_server_configure returns if not able to get timezonev248.3
When /etc/localtime is a symbolic link pointing to another symbolic
link, get_timezone will return -EINVAL instead of the timezone.
This issue can cause systemd-networkd DHCPServer to fail.
Instead of returning failure, log a warning indicating that that
the timezone will not be sent.
modified: networkd-dhcp-server.c
(cherry picked from commit 7b5018ca9e6d3279887ec7113818f41d5b831c4d)
-rw-r--r-- | src/network/networkd-dhcp-server.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c index ad979fb2c4..5cdf432c27 100644 --- a/src/network/networkd-dhcp-server.c +++ b/src/network/networkd-dhcp-server.c @@ -350,21 +350,23 @@ int dhcp4_server_configure(Link *link) { if (link->network->dhcp_server_emit_timezone) { _cleanup_free_ char *buffer = NULL; - const char *tz; + const char *tz = NULL; if (link->network->dhcp_server_timezone) tz = link->network->dhcp_server_timezone; else { r = get_timezone(&buffer); if (r < 0) - return log_link_error_errno(link, r, "Failed to determine timezone: %m"); - - tz = buffer; + log_link_warning_errno(link, r, "Failed to determine timezone, not sending timezone: %m"); + else + tz = buffer; } - r = sd_dhcp_server_set_timezone(link->dhcp_server, tz); - if (r < 0) - return log_link_error_errno(link, r, "Failed to set timezone for DHCP server: %m"); + if (tz) { + r = sd_dhcp_server_set_timezone(link->dhcp_server, tz); + if (r < 0) + return log_link_error_errno(link, r, "Failed to set timezone for DHCP server: %m"); + } } ORDERED_HASHMAP_FOREACH(p, link->network->dhcp_server_send_options) { |