From d3e46edd9e8b789267109c5cddd5c31b9e38d4c5 Mon Sep 17 00:00:00 2001 From: stevesk <> Date: Wed, 13 May 2009 15:08:10 +0000 Subject: [PATCH] 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@ --- src/usr.sbin/ntpd/ntpd.h | 9 +++++---- src/usr.sbin/ntpd/sensors.c | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/usr.sbin/ntpd/ntpd.h b/src/usr.sbin/ntpd/ntpd.h index ab690cc9..42bc0734 100644 --- a/src/usr.sbin/ntpd/ntpd.h +++ b/src/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 @@ -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/src/usr.sbin/ntpd/sensors.c b/src/usr.sbin/ntpd/sensors.c index 4daa5de3..eef66a4d 100644 --- a/src/usr.sbin/ntpd/sensors.c +++ b/src/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 @@ -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)