components/ntp/patches/70-leapslew.patch
author Craig Mohrman <craig.mohrman@oracle.com>
Tue, 16 Jun 2015 14:11:47 -0700
changeset 4494 f5b717124172
parent 4185 65ec845ad48f
permissions -rw-r--r--
20192108 problem in UTILITY/PHP 20231115 problem in UTILITY/PHP 20936509 problem in UTILITY/PHP 20804024 problem in UTILITY/PHP 20804061 problem in UTILITY/PHP 20804135 problem in UTILITY/PHP 20804363 problem in UTILITY/PHP 20804424 problem in UTILITY/PHP 20433657 problem in UTILITY/PHP 20803998 problem in UTILITY/PHP 20804391 problem in UTILITY/PHP

This patch can be removed when upgrading to community version that has
NTP bug 2745 fixed. See http://bugzilla.ntp.org/show_bug.cgi?id=2745

--- ntpd/ntp_timer.c
+++ ntpd/ntp_timer.c
@@ -472,7 +472,7 @@ alarming(
 # endif
 # ifdef DEBUG
 	if (debug >= 4)
-		write(1, msg, strlen(msg));
+		(void)(0 != write(1, msg, strlen(msg)));
 # endif
 }
 #endif /* SYS_WINNT */
@@ -521,11 +521,23 @@ check_leapsec(
 		 * announce the leap event has happened.
 		 */
 		if (lsdata.warped < 0) {
-			step_systime(lsdata.warped);
-			msyslog(LOG_NOTICE, "Inserting positive leap second.");
+			if (clock_max_back > 0.0 &&
+			    clock_max_back < fabs(lsdata.warped)) {
+				step_systime(lsdata.warped);
+				msyslog(LOG_NOTICE, "Positive leap second, stepped backward.");
+			} else {
+				msyslog(LOG_NOTICE, "Positive leap second, expect slowdown slew soon."
+				    " System clock will be inaccurate until it finishes.");
+			}
 		} else 	if (lsdata.warped > 0) {
-			step_systime(lsdata.warped);
-			msyslog(LOG_NOTICE, "Inserting negative leap second.");
+			if (clock_max_fwd > 0.0 &&
+			    clock_max_fwd < fabs(lsdata.warped)) {
+				step_systime(lsdata.warped);
+				msyslog(LOG_NOTICE, "Negative leap second, stepped forward.");
+			} else {
+				msyslog(LOG_NOTICE, "Negative leap second, expect speedup slew soon."
+				    " System clock will be inaccurate until it finishes.");
+			}
 		}
 		report_event(EVNT_LEAP, NULL, NULL);
 		lsprox  = LSPROX_NOWARN;