From 5022a0c49d98c498a3f5d8adb8814021ad6ce03f Mon Sep 17 00:00:00 2001
From: Avery Pennarun <apenwarr@gmail.com>
Date: Tue, 11 Jun 2013 00:38:41 -0400
Subject: Abort if adjtime() fails or settime() refuses to set the time.

There's no point running an ntp daemon if it can't adjtime(); that's all it
does.  If we abort, the process babysitter can restart it.  We previously
tried tricks like falling back to settime() but that can cause weird
confusion in the state machine (such as double-adding very large time
offsets - offsets calculated for adjtime, not really for settime - by
accident when we get two packets in rapid succession).
---
 ntpd.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ntpd.c b/ntpd.c
index 22db996..0515752 100644
--- a/ntpd.c
+++ b/ntpd.c
@@ -305,8 +305,10 @@ dispatch_imsg(struct ntpd_conf *conf)
 		case IMSG_SETTIME:
 			if (imsg.hdr.len != IMSG_HEADER_SIZE + sizeof(d))
 				fatalx("invalid IMSG_SETTIME received");
-			if (!conf->settime)
-				break;
+			if (d && !conf->settime) {
+				log_debug("can't IMSG_SETTIME since !conf->settime; aborting to start over.");
+				exit(26);
+			}
 			log_init(conf->debug);
 			memcpy(&d, imsg.data, sizeof(d));
 			ntpd_settime(d);
@@ -358,9 +360,10 @@ ntpd_adjtime(double d)
 	else
 		log_debug("adjusting local clock by %fs", d);
 	d_to_tv(d, &tv);
-	if (adjtime(&tv, &olddelta) == -1)
-		log_warn("adjtime failed");
-	else if (!firstadj && olddelta.tv_sec == 0 && olddelta.tv_usec == 0)
+	if (adjtime(&tv, &olddelta) == -1) {
+		log_warn("adjtime failed, aborting");
+		exit(26);
+	} else if (!firstadj && olddelta.tv_sec == 0 && olddelta.tv_usec == 0)
 		synced = 1;
 	firstadj = 0;
 	return (synced);
-- 
1.7.9.dirty

