diff --git a/src/usr.sbin/ntpd/client.c b/src/usr.sbin/ntpd/client.c index cf8f7ada..139cd309 100644 --- a/src/usr.sbin/ntpd/client.c +++ b/src/usr.sbin/ntpd/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.51 2004/12/15 12:29:25 dtucker Exp $ */ +/* $OpenBSD: client.c,v 1.52 2005/01/27 10:32:29 dtucker Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -27,9 +27,7 @@ #include "ntpd.h" int client_update(struct ntp_peer *); -void set_next(struct ntp_peer *, time_t); void set_deadline(struct ntp_peer *, time_t); -time_t scale_interval(time_t, double); void set_next(struct ntp_peer *p, time_t t) diff --git a/src/usr.sbin/ntpd/ntp.c b/src/usr.sbin/ntpd/ntp.c index 85fad772..76ef10c5 100644 --- a/src/usr.sbin/ntpd/ntp.c +++ b/src/usr.sbin/ntpd/ntp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ntp.c,v 1.46 2004/12/23 16:10:10 henning Exp $ */ +/* $OpenBSD: ntp.c,v 1.47 2005/01/27 10:32:29 dtucker Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -199,16 +199,18 @@ ntp_main(int pipe_prnt[2], struct ntpd_conf *nconf) if (p->deadline > 0 && p->deadline < nextaction) nextaction = p->deadline; if (p->deadline > 0 && p->deadline <= time(NULL)) { - log_debug("no reply from %s received in time", - log_sockaddr( - (struct sockaddr *)&p->addr->ss)); + timeout = scale_interval( + INTERVAL_QUERY_PATHETIC, 0.0); + log_debug("no reply from %s received in time, " + "next query %ds", log_sockaddr( + (struct sockaddr *)&p->addr->ss), timeout); if (p->trustlevel >= TRUSTLEVEL_BADPEER && (p->trustlevel /= 2) < TRUSTLEVEL_BADPEER) log_info("peer %s now invalid", log_sockaddr( (struct sockaddr *)&p->addr->ss)); client_nextaddr(p); - client_query(p); + set_next(p, timeout); } if (p->state == STATE_QUERY_SENT) { diff --git a/src/usr.sbin/ntpd/ntpd.h b/src/usr.sbin/ntpd/ntpd.h index b6b90bcd..64ddb9a1 100644 --- a/src/usr.sbin/ntpd/ntpd.h +++ b/src/usr.sbin/ntpd/ntpd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ntpd.h,v 1.48 2004/12/16 00:38:59 dtucker Exp $ */ +/* $OpenBSD: ntpd.h,v 1.49 2005/01/27 10:32:29 dtucker Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -237,6 +237,8 @@ int client_addr_init(struct ntp_peer *); int client_nextaddr(struct ntp_peer *); int client_query(struct ntp_peer *); int client_dispatch(struct ntp_peer *, u_int8_t); +time_t scale_interval(time_t, double); +void set_next(struct ntp_peer *, time_t); /* util.c */ double gettime(void);