timesync: assume link NTP servers are unchanged on error and no servers registered yet

This also silences annoying debug message when networkd is not running,
in which case sd_network_get_ntp() returns -ENOENT.
This commit is contained in:
Yu Watanabe
2025-10-06 04:03:39 +09:00
parent a6b5e24746
commit 3cc725ca6b

View File

@@ -966,19 +966,19 @@ Manager* manager_free(Manager *m) {
return mfree(m);
}
static int manager_network_read_link_servers(Manager *m) {
static bool manager_network_read_link_servers(Manager *m) {
_cleanup_strv_free_ char **ntp = NULL;
bool changed = false;
int r;
assert(m);
bool existing = m->link_servers;
r = sd_network_get_ntp(&ntp);
if (r < 0 && r != -ENODATA) {
if (r == -ENOMEM)
log_oom();
else
log_debug_errno(r, "Failed to get link NTP servers: %m");
if (r < 0) {
if (!IN_SET(r, -ENOENT, -ENODATA))
log_error_errno(r, "Failed to get link NTP servers: %m");
goto clear;
}
@@ -1025,7 +1025,7 @@ static int manager_network_read_link_servers(Manager *m) {
clear:
manager_flush_server_names(m, SERVER_LINK);
return r;
return existing; /* return true if there were existing servers. */
}
static bool manager_is_connected(Manager *m) {
@@ -1043,7 +1043,6 @@ static int manager_network_event_handler(sd_event_source *s, int fd, uint32_t re
sd_network_monitor_flush(m->network_monitor);
/* When manager_network_read_link_servers() failed, we assume that the servers are changed. */
changed = manager_network_read_link_servers(m);
/* check if the machine is online */