|
1 This patch can be removed when upgrading to community version that has |
|
2 NTP bug 2745 fixed. See http://bugzilla.ntp.org/show_bug.cgi?id=2745 |
|
3 |
|
4 --- ntpd/ntp_timer.c |
|
5 +++ ntpd/ntp_timer.c |
|
6 @@ -472,7 +472,7 @@ alarming( |
|
7 # endif |
|
8 # ifdef DEBUG |
|
9 if (debug >= 4) |
|
10 - write(1, msg, strlen(msg)); |
|
11 + (void)(0 != write(1, msg, strlen(msg))); |
|
12 # endif |
|
13 } |
|
14 #endif /* SYS_WINNT */ |
|
15 @@ -521,11 +521,23 @@ check_leapsec( |
|
16 * announce the leap event has happened. |
|
17 */ |
|
18 if (lsdata.warped < 0) { |
|
19 - step_systime(lsdata.warped); |
|
20 - msyslog(LOG_NOTICE, "Inserting positive leap second."); |
|
21 + if (clock_max_back > 0.0 && |
|
22 + clock_max_back < fabs(lsdata.warped)) { |
|
23 + step_systime(lsdata.warped); |
|
24 + msyslog(LOG_NOTICE, "Positive leap second, stepped backward."); |
|
25 + } else { |
|
26 + msyslog(LOG_NOTICE, "Positive leap second, expect slowdown slew soon." |
|
27 + " System clock will be inaccurate until it finishes."); |
|
28 + } |
|
29 } else if (lsdata.warped > 0) { |
|
30 - step_systime(lsdata.warped); |
|
31 - msyslog(LOG_NOTICE, "Inserting negative leap second."); |
|
32 + if (clock_max_fwd > 0.0 && |
|
33 + clock_max_fwd < fabs(lsdata.warped)) { |
|
34 + step_systime(lsdata.warped); |
|
35 + msyslog(LOG_NOTICE, "Negative leap second, stepped forward."); |
|
36 + } else { |
|
37 + msyslog(LOG_NOTICE, "Negative leap second, expect speedup slew soon." |
|
38 + " System clock will be inaccurate until it finishes."); |
|
39 + } |
|
40 } |
|
41 report_event(EVNT_LEAP, NULL, NULL); |
|
42 lsprox = LSPROX_NOWARN; |