if we couldn't update the clock for ~1h due to lack of data from peers and
authorhenning <henning@openbsd.org>
Thu, 12 Jul 2018 19:31:05 +0000 (19:31 +0000)
committerhenning <henning@openbsd.org>
Thu, 12 Jul 2018 19:31:05 +0000 (19:31 +0000)
sensors, mark us unsynced again. ok reyk krw, pt out / discussion / help naddy

usr.sbin/ntpd/ntp.c

index f7a6ede..cbc7072 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ntp.c,v 1.146 2017/05/30 23:30:48 benno Exp $ */
+/*     $OpenBSD: ntp.c,v 1.147 2018/07/12 19:31:05 henning Exp $ */
 
 /*
  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -316,6 +316,14 @@ ntp_main(struct ntpd_conf *nconf, struct passwd *pw, int argc, char **argv)
                    (peer_cnt == 0 && sensors_cnt == 0)))
                        priv_settime(0);        /* no good peers, don't wait */
 
+               if (conf->status.synced && gettime() - conf->status.reftime >
+                   INTERVAL_QUERY_PATHETIC * QSCALE_OFF_MAX / QSCALE_OFF_MIN *
+                   1.2) {
+                       /* no update seen for ~1h */
+                       log_info("clock is now unsynced");
+                       conf->status.synced = 0;
+               }
+
                if (ibuf_main->w.queued > 0)
                        pfd[PFD_PIPE_MAIN].events |= POLLOUT;
                if (ibuf_dns->w.queued > 0)