diff options
author | Kevin Steves <stevesk@cvs.openbsd.org> | 2009-05-13 15:08:11 +0000 |
---|---|---|
committer | Kevin Steves <stevesk@cvs.openbsd.org> | 2009-05-13 15:08:11 +0000 |
commit | 42bad70dad931800499736beae519d7793c3de45 (patch) | |
tree | c619395d81f84761a448d2841ad78d8e33b8ffee /usr.sbin | |
parent | e593cce383313f22164de5d39d8b35cb5b548e02 (diff) |
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@
Diffstat (limited to 'usr.sbin')
-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) |