components/ntp/patches/70-leapslew.patch
author Brian Utterback <brian.utterback@oracle.com>
Wed, 29 Apr 2015 07:18:52 -0700
branchs11-update
changeset 4213 9164037457d6
permissions -rw-r--r--
14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient 20728422 ntpq4 -c mrulis randomly returns no data and posts error latest.newest... 20783962 There is no way to adjust the leap second by slewmode in ntpd(v4). 20853665 problem in SERVICE/NTP 20853731 problem in SERVICE/NTP 20952293 problem in SERVICE/NTP
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4213
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     1
This patch can be removed when upgrading to community version that has
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     2
NTP bug 2745 fixed. See http://bugzilla.ntp.org/show_bug.cgi?id=2745
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     3
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     4
--- ntpd/ntp_timer.c
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     5
+++ ntpd/ntp_timer.c
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     6
@@ -472,7 +472,7 @@ alarming(
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     7
 # endif
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     8
 # ifdef DEBUG
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     9
 	if (debug >= 4)
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    10
-		write(1, msg, strlen(msg));
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    11
+		(void)(0 != write(1, msg, strlen(msg)));
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    12
 # endif
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    13
 }
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    14
 #endif /* SYS_WINNT */
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    15
@@ -521,11 +521,23 @@ check_leapsec(
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    16
 		 * announce the leap event has happened.
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    17
 		 */
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    18
 		if (lsdata.warped < 0) {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    19
-			step_systime(lsdata.warped);
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    20
-			msyslog(LOG_NOTICE, "Inserting positive leap second.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    21
+			if (clock_max_back > 0.0 &&
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    22
+			    clock_max_back < fabs(lsdata.warped)) {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    23
+				step_systime(lsdata.warped);
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    24
+				msyslog(LOG_NOTICE, "Positive leap second, stepped backward.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    25
+			} else {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    26
+				msyslog(LOG_NOTICE, "Positive leap second, expect slowdown slew soon."
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    27
+				    " System clock will be inaccurate until it finishes.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    28
+			}
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    29
 		} else 	if (lsdata.warped > 0) {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    30
-			step_systime(lsdata.warped);
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    31
-			msyslog(LOG_NOTICE, "Inserting negative leap second.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    32
+			if (clock_max_fwd > 0.0 &&
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    33
+			    clock_max_fwd < fabs(lsdata.warped)) {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    34
+				step_systime(lsdata.warped);
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    35
+				msyslog(LOG_NOTICE, "Negative leap second, stepped forward.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    36
+			} else {
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    37
+				msyslog(LOG_NOTICE, "Negative leap second, expect speedup slew soon."
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    38
+				    " System clock will be inaccurate until it finishes.");
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    39
+			}
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    40
 		}
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    41
 		report_event(EVNT_LEAP, NULL, NULL);
9164037457d6 14932716 SUNBT4031742 /etc/inet/ntp.client should include broadcastclient
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    42
 		lsprox  = LSPROX_NOWARN;