summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortramsay <treyramsay@gmail.com>2021-04-05 17:12:49 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-05-15 19:55:13 +0200
commitdb85ea172f9b4e6cd2f46bffd63164a09404001f (patch)
treef77503fe1cb3ade2b929dab4cfb7d3f47b692a51
parent271b7dcbadd9fed70f87f29f30ef0925619037c9 (diff)
downloadsystemd-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.c16
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) {