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 18:33:34 +0200
commit37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76 (patch)
treea69147031fdf696258bc4a6a328cb9034f91f4b9
parent596f5101f29c10256208132bfa9c502bf898fd8b (diff)
downloadsystemd-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.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 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) {