chiark / gitweb /
timesyncd: check if stratum is valid
[elogind.git] / src / timesync / timesyncd-manager.c
index bb8fcca1df4c0fb1f886c7c60b1fbf56bb363ff8..60f39c638d3bdd715cf6ca0cb7a720a392b19803 100644 (file)
@@ -574,7 +574,8 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
                 return manager_connect(m);
         }
 
-        if (NTP_FIELD_LEAP(ntpmsg.field) == NTP_LEAP_NOTINSYNC) {
+        if (NTP_FIELD_LEAP(ntpmsg.field) == NTP_LEAP_NOTINSYNC ||
+            ntpmsg.stratum == 0 || ntpmsg.stratum >= 16) {
                 log_debug("Server is not synchronized. Disconnecting.");
                 return manager_connect(m);
         }
@@ -1111,9 +1112,7 @@ int manager_new(Manager **ret) {
         if (r < 0)
                 return r;
 
-        r = manager_network_read_link_servers(m);
-        if (r < 0)
-                return r;
+        manager_network_read_link_servers(m);
 
         *ret = m;
         m = NULL;