diff options
author | 2009-05-13 15:08:10 +0000 | |
---|---|---|
committer | 2009-05-13 15:08:10 +0000 | |
commit | e6ce3c48244d1a90cc9c879dff653608337ff00c (patch) | |
tree | 31c478dd65eb1dae5ae7357e268c88c68adf8a99 | |
parent | fix loopvar debug prints. Issue reported by naddy@ (diff) | |
download | wireguard-openbsd-e6ce3c48244d1a90cc9c879dff653608337ff00c.tar.xz wireguard-openbsd-e6ce3c48244d1a90cc9c879dff653608337ff00c.zip |
when using a timedelta sensor for -s, if the sensor is invalid during
the first query we will never do the settime because
SENSOR_QUERY_INTERVAL (30s) is greater than SETTIME_TIMEOUT (15s). so
during the settime period only, be more aggressive and use
SETTIME_TIMEOUT/3 for the query interval.
ok henning@
-rw-r--r-- | usr.sbin/ntpd/ntpd.h | 9 | ||||
-rw-r--r-- | usr.sbin/ntpd/sensors.c | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/usr.sbin/ntpd/ntpd.h b/usr.sbin/ntpd/ntpd.h index ab690cc9b3f..42bc0734e66 100644 --- a/usr.sbin/ntpd/ntpd.h +++ b/usr.sbin/ntpd/ntpd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ntpd.h,v 1.99 2009/02/11 01:00:10 stevesk Exp $ */ +/* $OpenBSD: ntpd.h,v 1.100 2009/05/13 15:08:10 stevesk Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -63,9 +63,10 @@ #define MAX_SEND_ERRORS 3 /* max send errors before reconnect */ -#define SENSOR_DATA_MAXAGE (15*60) -#define SENSOR_QUERY_INTERVAL 30 -#define SENSOR_SCAN_INTERVAL (5*60) +#define SENSOR_DATA_MAXAGE (15*60) +#define SENSOR_QUERY_INTERVAL 30 +#define SENSOR_QUERY_INTERVAL_SETTIME (SETTIME_TIMEOUT/3) +#define SENSOR_SCAN_INTERVAL (5*60) enum client_state { STATE_NONE, diff --git a/usr.sbin/ntpd/sensors.c b/usr.sbin/ntpd/sensors.c index 4daa5de3a84..eef66a4d424 100644 --- a/usr.sbin/ntpd/sensors.c +++ b/usr.sbin/ntpd/sensors.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sensors.c,v 1.43 2009/02/08 23:57:08 stevesk Exp $ */ +/* $OpenBSD: sensors.c,v 1.44 2009/05/13 15:08:10 stevesk Exp $ */ /* * Copyright (c) 2006 Henning Brauer <henning@openbsd.org> @@ -154,7 +154,10 @@ sensor_query(struct ntp_sensor *s) char dxname[MAXDEVNAMLEN]; struct sensor sensor; - s->next = getmonotime() + SENSOR_QUERY_INTERVAL; + if (conf->settime) + s->next = getmonotime() + SENSOR_QUERY_INTERVAL_SETTIME; + else + s->next = getmonotime() + SENSOR_QUERY_INTERVAL; /* rcvd is walltime here, monotime in client.c. not used elsewhere */ if (s->update.rcvd < time(NULL) - SENSOR_DATA_MAXAGE) |