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 19:55:13 +0200 |
commit | db85ea172f9b4e6cd2f46bffd63164a09404001f (patch) | |
tree | f77503fe1cb3ade2b929dab4cfb7d3f47b692a51 | |
parent | 271b7dcbadd9fed70f87f29f30ef0925619037c9 (diff) | |
download | systemd-db85ea172f9b4e6cd2f46bffd63164a09404001f.tar.gz |
network:dhcp4_server_configure returns if not able to get timezone
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)
(cherry picked from commit 37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76)
-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 cf279c640d..bdc162f1ab 100644 --- a/src/network/networkd-dhcp-server.c +++ b/src/network/networkd-dhcp-server.c @@ -345,21 +345,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) { |