summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorHenning Brauer <henning@cvs.openbsd.org>2007-12-31 17:21:36 +0000
committerHenning Brauer <henning@cvs.openbsd.org>2007-12-31 17:21:36 +0000
commit67000964610dbf9ae10dc10a6ddb33eda96ddd8e (patch)
tree9c479da623aefd4c1c22451a06d5f2fed1784e41 /usr.sbin
parent8d980d40e55ec8cf8d7314370fb339d8c0a49e90 (diff)
we must reset the poll timeout to INFTIM when receiving the IMSG_SETTIME
because otherwise the poll timeout will stay at SETTIME_TIMEOUT (15s) forever unless we time out waiting for the first reply with -s spotted by Aaron Riekenberg <aaron.riekenberg@gmail.com>
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ntpd/ntpd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/ntpd/ntpd.c b/usr.sbin/ntpd/ntpd.c
index c9eb586db47..18dd1500841 100644
--- a/usr.sbin/ntpd/ntpd.c
+++ b/usr.sbin/ntpd/ntpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ntpd.c,v 1.57 2007/12/23 22:40:00 stevesk Exp $ */
+/* $OpenBSD: ntpd.c,v 1.58 2007/12/31 17:21:35 henning Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -49,6 +49,7 @@ volatile sig_atomic_t reconfig = 0;
volatile sig_atomic_t sigchld = 0;
struct imsgbuf *ibuf;
int debugsyslog = 0;
+int timeout = INFTIM;
void
sighdlr(int sig)
@@ -86,7 +87,7 @@ main(int argc, char *argv[])
struct pollfd pfd[POLL_MAX];
pid_t chld_pid = 0, pid;
const char *conffile;
- int ch, nfds, timeout = INFTIM;
+ int ch, nfds;
int pipe_chld[2];
struct passwd *pw;
@@ -308,6 +309,7 @@ dispatch_imsg(struct ntpd_conf *lconf)
if (daemon(1, 0))
fatal("daemon");
lconf->settime = 0;
+ timeout = INFTIM;
break;
case IMSG_HOST_DNS:
name = imsg.data;