summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorKevin Steves <stevesk@cvs.openbsd.org>2009-05-13 15:08:11 +0000
committerKevin Steves <stevesk@cvs.openbsd.org>2009-05-13 15:08:11 +0000
commit42bad70dad931800499736beae519d7793c3de45 (patch)
treec619395d81f84761a448d2841ad78d8e33b8ffee /usr.sbin
parente593cce383313f22164de5d39d8b35cb5b548e02 (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.h9
-rw-r--r--usr.sbin/ntpd/sensors.c7
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)