aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog29
-rw-r--r--CommitLog717
-rw-r--r--NEWS38
-rw-r--r--config.h.in6
-rwxr-xr-xconfigure22
-rw-r--r--configure.ac2
-rw-r--r--html/drivers/driver40-ja.html12
-rw-r--r--html/drivers/driver40.html11
-rw-r--r--include/l_stdlib.h9
-rw-r--r--include/ntp.h2
-rw-r--r--include/ntp_config.h10
-rw-r--r--include/recvbuff.h30
-rw-r--r--lib/isc/win32/include/isc/int.h4
-rw-r--r--libntp/a_md5encrypt.c2
-rw-r--r--libntp/decodenetnum.c200
-rw-r--r--libntp/recvbuff.c204
-rw-r--r--libntp/strdup.c34
-rw-r--r--libntp/timexsup.c7
-rw-r--r--ntpd/invoke-ntp.conf.texi2
-rw-r--r--ntpd/invoke-ntp.keys.texi2
-rw-r--r--ntpd/invoke-ntpd.texi4
-rw-r--r--ntpd/ntp.conf.5man4
-rw-r--r--ntpd/ntp.conf.5mdoc4
-rw-r--r--ntpd/ntp.conf.html2
-rw-r--r--ntpd/ntp.conf.man.in4
-rw-r--r--ntpd/ntp.conf.mdoc.in4
-rw-r--r--ntpd/ntp.keys.5man4
-rw-r--r--ntpd/ntp.keys.5mdoc4
-rw-r--r--ntpd/ntp.keys.html2
-rw-r--r--ntpd/ntp.keys.man.in4
-rw-r--r--ntpd/ntp.keys.mdoc.in4
-rw-r--r--ntpd/ntp_config.c10
-rw-r--r--ntpd/ntp_io.c36
-rw-r--r--ntpd/ntp_proto.c57
-rw-r--r--ntpd/ntp_refclock.c72
-rw-r--r--ntpd/ntp_request.c2
-rw-r--r--ntpd/ntp_timer.c35
-rw-r--r--ntpd/ntpd-opts.c14
-rw-r--r--ntpd/ntpd-opts.h6
-rw-r--r--ntpd/ntpd.1ntpdman4
-rw-r--r--ntpd/ntpd.1ntpdmdoc4
-rw-r--r--ntpd/ntpd.html4
-rw-r--r--ntpd/ntpd.man.in4
-rw-r--r--ntpd/ntpd.mdoc.in4
-rw-r--r--ntpd/refclock_jjy.c108
-rw-r--r--ntpd/refclock_nmea.c2
-rw-r--r--ntpd/refclock_palisade.c48
-rw-r--r--ntpd/refclock_parse.c2
-rw-r--r--ntpdate/ntpdate.c5
-rw-r--r--ntpdc/invoke-ntpdc.texi4
-rw-r--r--ntpdc/ntpdc-opts.c14
-rw-r--r--ntpdc/ntpdc-opts.h6
-rw-r--r--ntpdc/ntpdc.1ntpdcman4
-rw-r--r--ntpdc/ntpdc.1ntpdcmdoc4
-rw-r--r--ntpdc/ntpdc.html4
-rw-r--r--ntpdc/ntpdc.man.in4
-rw-r--r--ntpdc/ntpdc.mdoc.in4
-rw-r--r--ntpq/invoke-ntpq.texi4
-rw-r--r--ntpq/ntpq-opts.c14
-rw-r--r--ntpq/ntpq-opts.h6
-rw-r--r--ntpq/ntpq.1ntpqman4
-rw-r--r--ntpq/ntpq.1ntpqmdoc4
-rw-r--r--ntpq/ntpq.html4
-rw-r--r--ntpq/ntpq.man.in4
-rw-r--r--ntpq/ntpq.mdoc.in4
-rw-r--r--ntpsnmpd/invoke-ntpsnmpd.texi2
-rw-r--r--ntpsnmpd/ntpsnmpd-opts.c14
-rw-r--r--ntpsnmpd/ntpsnmpd-opts.h6
-rw-r--r--ntpsnmpd/ntpsnmpd.1ntpsnmpdman4
-rw-r--r--ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc4
-rw-r--r--ntpsnmpd/ntpsnmpd.html2
-rw-r--r--ntpsnmpd/ntpsnmpd.man.in4
-rw-r--r--ntpsnmpd/ntpsnmpd.mdoc.in4
-rw-r--r--packageinfo.sh2
-rw-r--r--ports/winnt/include/config.h4
-rw-r--r--ports/winnt/libntp/messages.h2
-rw-r--r--ports/winnt/ntpd/ntp_iocompletionport.c101
-rw-r--r--scripts/calc_tickadj/calc_tickadj.1calc_tickadjman4
-rw-r--r--scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc4
-rw-r--r--scripts/calc_tickadj/calc_tickadj.html2
-rw-r--r--scripts/calc_tickadj/calc_tickadj.man.in4
-rw-r--r--scripts/calc_tickadj/calc_tickadj.mdoc.in4
-rw-r--r--scripts/calc_tickadj/invoke-calc_tickadj.texi2
-rw-r--r--scripts/invoke-plot_summary.texi4
-rw-r--r--scripts/invoke-summary.texi4
-rw-r--r--scripts/ntp-wait/invoke-ntp-wait.texi4
-rw-r--r--scripts/ntp-wait/ntp-wait-opts4
-rw-r--r--scripts/ntp-wait/ntp-wait.1ntp-waitman4
-rw-r--r--scripts/ntp-wait/ntp-wait.1ntp-waitmdoc4
-rw-r--r--scripts/ntp-wait/ntp-wait.html4
-rw-r--r--scripts/ntp-wait/ntp-wait.man.in4
-rw-r--r--scripts/ntp-wait/ntp-wait.mdoc.in4
-rw-r--r--scripts/ntpsweep/invoke-ntpsweep.texi4
-rw-r--r--scripts/ntpsweep/ntpsweep-opts4
-rw-r--r--scripts/ntpsweep/ntpsweep.1ntpsweepman4
-rw-r--r--scripts/ntpsweep/ntpsweep.1ntpsweepmdoc4
-rw-r--r--scripts/ntpsweep/ntpsweep.html4
-rw-r--r--scripts/ntpsweep/ntpsweep.man.in4
-rw-r--r--scripts/ntpsweep/ntpsweep.mdoc.in4
-rw-r--r--scripts/ntptrace/invoke-ntptrace.texi4
-rw-r--r--scripts/ntptrace/ntptrace-opts4
-rw-r--r--scripts/ntptrace/ntptrace.1ntptraceman4
-rw-r--r--scripts/ntptrace/ntptrace.1ntptracemdoc4
-rw-r--r--scripts/ntptrace/ntptrace.html4
-rw-r--r--scripts/ntptrace/ntptrace.man.in4
-rw-r--r--scripts/ntptrace/ntptrace.mdoc.in4
-rw-r--r--scripts/plot_summary-opts4
-rw-r--r--scripts/plot_summary.1plot_summaryman4
-rw-r--r--scripts/plot_summary.1plot_summarymdoc4
-rw-r--r--scripts/plot_summary.html4
-rw-r--r--scripts/plot_summary.man.in4
-rw-r--r--scripts/plot_summary.mdoc.in4
-rw-r--r--scripts/summary-opts4
-rw-r--r--scripts/summary.1summaryman4
-rw-r--r--scripts/summary.1summarymdoc4
-rw-r--r--scripts/summary.html4
-rw-r--r--scripts/summary.man.in4
-rw-r--r--scripts/summary.mdoc.in4
-rw-r--r--scripts/update-leap/invoke-update-leap.texi2
-rw-r--r--scripts/update-leap/update-leap-opts4
-rw-r--r--scripts/update-leap/update-leap.1update-leapman4
-rw-r--r--scripts/update-leap/update-leap.1update-leapmdoc4
-rw-r--r--scripts/update-leap/update-leap.html2
-rw-r--r--scripts/update-leap/update-leap.man.in4
-rw-r--r--scripts/update-leap/update-leap.mdoc.in4
-rwxr-xr-xsntp/configure20
-rw-r--r--sntp/crypto.c3
-rw-r--r--sntp/include/version.def2
-rw-r--r--sntp/include/version.texi6
-rw-r--r--sntp/invoke-sntp.texi4
-rw-r--r--sntp/m4/version.m42
-rw-r--r--sntp/sntp-opts.c14
-rw-r--r--sntp/sntp-opts.h6
-rw-r--r--sntp/sntp.1sntpman4
-rw-r--r--sntp/sntp.1sntpmdoc4
-rw-r--r--sntp/sntp.html4
-rw-r--r--sntp/sntp.man.in4
-rw-r--r--sntp/sntp.mdoc.in4
-rw-r--r--sntp/version.c2
-rw-r--r--tests/libntp/decodenetnum.c100
-rw-r--r--tests/libntp/netof.c2
-rw-r--r--tests/libntp/recvbuff.c4
-rw-r--r--tests/libntp/run-decodenetnum.c10
-rw-r--r--tests/libntp/sockaddrtest.c13
-rw-r--r--util/invoke-ntp-keygen.texi4
-rw-r--r--util/ntp-keygen-opts.c14
-rw-r--r--util/ntp-keygen-opts.h6
-rw-r--r--util/ntp-keygen.1ntp-keygenman4
-rw-r--r--util/ntp-keygen.1ntp-keygenmdoc4
-rw-r--r--util/ntp-keygen.html4
-rw-r--r--util/ntp-keygen.man.in4
-rw-r--r--util/ntp-keygen.mdoc.in4
152 files changed, 1819 insertions, 654 deletions
diff --git a/ChangeLog b/ChangeLog
index 35d5d36c2faf..c0db6042c9fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,33 @@
---
+(4.2.8p15) 2020/06/23 Released by Harlan Stenn <stenn@ntp.org>
+(4.2.8p15) 2020/06/23 Released by Harlan Stenn <stenn@ntp.or>
+
+* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
+* [Bug 3670] Regression from bad merge of 3592 and 3596 <perlinger@ntp.org>
+ - fixed a bad merge that happened before 4.2.8-p14. Thanks to
+ Sylar Tao for noticing this!
+* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
+ - rewrite 'decodenetnum()' in terms of inet_pton
+* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
+ - limit number of receive buffers, with an iron reserve for refclocks
+* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
+* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
+* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
+ - integrated patch from Charles Claggett
+* [Bug 3659] Move definition of psl[] from ntp_config.h to
+ ntp_config.h <perlinger@ntp.org>
+* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
+* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
+ - fix by Gerry garvey
+* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
+ - thanks to Gerry Garvey
+* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
+ - patch by Gerry Garvey
+* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
+* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
+ - applied patch by Takao Abe
+
+---
(4.2.8p14) 2020/03/03 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3610] process_control() should bail earlier on short packets. stenn@
diff --git a/CommitLog b/CommitLog
index d4d2869006dc..80104bc8d78c 100644
--- a/CommitLog
+++ b/CommitLog
@@ -1,3 +1,700 @@
+ChangeSet@1.3911, 2020-06-23 02:22:19-07:00, ntpreleng@ntp-build.tal1.ntfo.org
+ NTP_4_2_8P15
+ TAG: NTP_4_2_8P15
+
+ ChangeLog@1.1985 +1 -0
+ NTP_4_2_8P15
+
+ ntpd/invoke-ntp.conf.texi@1.222 +1 -1
+ NTP_4_2_8P15
+
+ ntpd/invoke-ntp.keys.texi@1.207 +1 -1
+ NTP_4_2_8P15
+
+ ntpd/invoke-ntpd.texi@1.521 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.conf.5man@1.256 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.conf.5mdoc@1.256 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.conf.html@1.204 +1 -1
+ NTP_4_2_8P15
+
+ ntpd/ntp.conf.man.in@1.256 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.conf.mdoc.in@1.256 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.keys.5man@1.241 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.keys.5mdoc@1.241 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.keys.html@1.202 +1 -1
+ NTP_4_2_8P15
+
+ ntpd/ntp.keys.man.in@1.241 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntp.keys.mdoc.in@1.241 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntpd-opts.c@1.544 +7 -7
+ NTP_4_2_8P15
+
+ ntpd/ntpd-opts.h@1.543 +3 -3
+ NTP_4_2_8P15
+
+ ntpd/ntpd.1ntpdman@1.350 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntpd.1ntpdmdoc@1.350 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntpd.html@1.195 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntpd.man.in@1.350 +2 -2
+ NTP_4_2_8P15
+
+ ntpd/ntpd.mdoc.in@1.350 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/invoke-ntpdc.texi@1.518 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc-opts.c@1.537 +7 -7
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc-opts.h@1.536 +3 -3
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc.1ntpdcman@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc.1ntpdcmdoc@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc.html@1.364 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc.man.in@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpdc/ntpdc.mdoc.in@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/invoke-ntpq.texi@1.528 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/ntpq-opts.c@1.546 +7 -7
+ NTP_4_2_8P15
+
+ ntpq/ntpq-opts.h@1.544 +3 -3
+ NTP_4_2_8P15
+
+ ntpq/ntpq.1ntpqman@1.356 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/ntpq.1ntpqmdoc@1.356 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/ntpq.html@1.195 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/ntpq.man.in@1.356 +2 -2
+ NTP_4_2_8P15
+
+ ntpq/ntpq.mdoc.in@1.356 +2 -2
+ NTP_4_2_8P15
+
+ ntpsnmpd/invoke-ntpsnmpd.texi@1.520 +1 -1
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd-opts.c@1.539 +7 -7
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd-opts.h@1.538 +3 -3
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd.html@1.188 +1 -1
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd.man.in@1.349 +2 -2
+ NTP_4_2_8P15
+
+ ntpsnmpd/ntpsnmpd.mdoc.in@1.349 +2 -2
+ NTP_4_2_8P15
+
+ packageinfo.sh@1.546 +2 -2
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.110 +2 -2
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.111 +2 -2
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/calc_tickadj.html@1.111 +1 -1
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/calc_tickadj.man.in@1.109 +2 -2
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/calc_tickadj.mdoc.in@1.111 +2 -2
+ NTP_4_2_8P15
+
+ scripts/calc_tickadj/invoke-calc_tickadj.texi@1.114 +1 -1
+ NTP_4_2_8P15
+
+ scripts/invoke-plot_summary.texi@1.132 +2 -2
+ NTP_4_2_8P15
+
+ scripts/invoke-summary.texi@1.131 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/invoke-ntp-wait.texi@1.342 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait-opts@1.78 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait.1ntp-waitman@1.338 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.339 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait.html@1.360 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait.man.in@1.338 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntp-wait/ntp-wait.mdoc.in@1.339 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/invoke-ntpsweep.texi@1.129 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep-opts@1.80 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep.1ntpsweepman@1.117 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.117 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep.html@1.132 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep.man.in@1.117 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntpsweep/ntpsweep.mdoc.in@1.118 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/invoke-ntptrace.texi@1.131 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace-opts@1.80 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace.1ntptraceman@1.117 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace.1ntptracemdoc@1.118 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace.html@1.133 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace.man.in@1.117 +2 -2
+ NTP_4_2_8P15
+
+ scripts/ntptrace/ntptrace.mdoc.in@1.119 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary-opts@1.81 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary.1plot_summaryman@1.130 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary.1plot_summarymdoc@1.130 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary.html@1.135 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary.man.in@1.130 +2 -2
+ NTP_4_2_8P15
+
+ scripts/plot_summary.mdoc.in@1.130 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary-opts@1.80 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary.1summaryman@1.129 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary.1summarymdoc@1.129 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary.html@1.134 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary.man.in@1.129 +2 -2
+ NTP_4_2_8P15
+
+ scripts/summary.mdoc.in@1.129 +2 -2
+ NTP_4_2_8P15
+
+ scripts/update-leap/invoke-update-leap.texi@1.30 +1 -1
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap-opts@1.31 +2 -2
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap.1update-leapman@1.30 +2 -2
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap.1update-leapmdoc@1.30 +2 -2
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap.html@1.31 +1 -1
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap.man.in@1.30 +2 -2
+ NTP_4_2_8P15
+
+ scripts/update-leap/update-leap.mdoc.in@1.30 +2 -2
+ NTP_4_2_8P15
+
+ sntp/invoke-sntp.texi@1.520 +2 -2
+ NTP_4_2_8P15
+
+ sntp/sntp-opts.c@1.540 +7 -7
+ NTP_4_2_8P15
+
+ sntp/sntp-opts.h@1.538 +3 -3
+ NTP_4_2_8P15
+
+ sntp/sntp.1sntpman@1.355 +2 -2
+ NTP_4_2_8P15
+
+ sntp/sntp.1sntpmdoc@1.355 +2 -2
+ NTP_4_2_8P15
+
+ sntp/sntp.html@1.536 +2 -2
+ NTP_4_2_8P15
+
+ sntp/sntp.man.in@1.355 +2 -2
+ NTP_4_2_8P15
+
+ sntp/sntp.mdoc.in@1.355 +2 -2
+ NTP_4_2_8P15
+
+ util/invoke-ntp-keygen.texi@1.523 +2 -2
+ NTP_4_2_8P15
+
+ util/ntp-keygen-opts.c@1.542 +7 -7
+ NTP_4_2_8P15
+
+ util/ntp-keygen-opts.h@1.540 +3 -3
+ NTP_4_2_8P15
+
+ util/ntp-keygen.1ntp-keygenman@1.351 +2 -2
+ NTP_4_2_8P15
+
+ util/ntp-keygen.1ntp-keygenmdoc@1.351 +2 -2
+ NTP_4_2_8P15
+
+ util/ntp-keygen.html@1.196 +2 -2
+ NTP_4_2_8P15
+
+ util/ntp-keygen.man.in@1.351 +2 -2
+ NTP_4_2_8P15
+
+ util/ntp-keygen.mdoc.in@1.351 +2 -2
+ NTP_4_2_8P15
+
+ChangeSet@1.3910, 2020-06-23 02:05:32-07:00, ntpreleng@ntp-build.tal1.ntfo.org
+ ntp-4.2.8p15
+
+ packageinfo.sh@1.545 +1 -1
+ ntp-4.2.8p15
+
+ChangeSet@1.3908, 2020-06-09 07:12:27-04:00, stenn@psp-deb2.ntp.org
+ p15 updates
+
+ ChangeLog@1.1983 +1 -1
+ p15 updates
+
+ NEWS@1.214 +1 -1
+ p15 updates
+
+ChangeSet@1.3896.1.22, 2020-06-09 07:09:18-04:00, stenn@psp-deb2.ntp.org
+ 3670
+
+ ChangeLog@1.1974.1.14 +1 -1
+ 3670
+
+ NEWS@1.205.1.7 +3 -1
+ 3670
+
+ChangeSet@1.3896.1.21, 2020-06-09 08:39:26+02:00, perlinger@ntp.org
+ [Bug 3670] Deleted statements come back
+
+ ChangeLog@1.1974.1.13 +3 -0
+ [Bug 3670] Deleted statements come back
+
+ ntpd/ntp_proto.c@1.437 +4 -19
+ [Bug 3670] Deleted statements come back
+
+ChangeSet@1.3906, 2020-05-31 09:52:14+00:00, stenn@psp-deb1.ntp.org
+ update the expected releease date
+
+ NEWS@1.213 +1 -1
+ update the expected releease date
+
+ChangeSet@1.3896.9.3, 2020-05-31 09:49:39+00:00, stenn@psp-deb1.ntp.org
+ Update ChangeLog and NEWS files for 3644
+
+ ChangeLog@1.1974.1.12 +1 -3
+ Update ChangeLog and NEWS files for 3644
+
+ NEWS@1.205.1.6 +2 -1
+ Update ChangeLog and NEWS files for 3644
+
+ChangeSet@1.3896.9.2, 2020-05-31 09:47:05+00:00, stenn@psp-deb1.ntp.org
+ [Bug 3644]: Do we want to log an event in this case?
+
+ ntpd/ntp_timer.c@1.99 +2 -0
+ [Bug 3644]: Do we want to log an event in this case?
+
+ChangeSet@1.3896.9.1, 2020-05-31 11:13:45+02:00, perlinger@ntp.org
+ [Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
+
+ ChangeLog@1.1974.1.11 +3 -0
+ [Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
+
+ include/ntp.h@1.233 +1 -1
+ [Bug 3644] Unsynchronized server [...] selected as candidate
+ - comment typo
+
+ ntpd/ntp_proto.c@1.436 +2 -3
+ [Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
+
+ ntpd/ntp_timer.c@1.98 +24 -9
+ [Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
+ - according to DLM, we should go S16/UNSYNCED if we have no proper orphan config
+
+ChangeSet@1.3896.1.19, 2020-05-25 12:42:46+02:00, nb241700@md2g3rcc.ad001.siemens.net
+ [Bug 3667] decodenetnum fails with numeric port
+ - windows compilation issues
+
+ libntp/decodenetnum.c@1.21 +1 -1
+ [Bug 3667] decodenetnum fails with numeric port
+ - windows compilation issues ('sa_family_t' is POSIX, now ANSI/MSVC)
+
+ libntp/strdup.c@1.11 +3 -3
+ [Bug 3667] decodenetnum fails with numeric port
+ - windows compilation issues (typo+cast in memchr replacement)
+
+ ports/winnt/include/config.h@1.117 +2 -0
+ [Bug 3667] decodenetnum fails with numeric port
+ - windows compilation issues (have memchr() and strnlen() in MSVC)
+
+ChangeSet@1.3896.1.18, 2020-05-22 06:07:28+00:00, stenn@psp-deb1.ntp.org
+ Update NEWS file with 3667
+
+ NEWS@1.205.1.5 +3 -1
+ Update NEWS file with 3667
+
+ChangeSet@1.3896.1.17, 2020-05-22 06:05:45+00:00, stenn@psp-deb1.ntp.org
+ cleanup
+
+ ChangeLog@1.1974.1.10 +2 -4
+ cleanup
+
+ChangeSet@1.3896.1.16, 2020-05-22 06:04:57+00:00, stenn@psp-deb1.ntp.org
+ indentation tweaks
+
+ tests/libntp/sockaddrtest.c@1.5 +7 -7
+ indentation tweaks
+
+ChangeSet@1.3896.1.15, 2020-05-20 09:44:15+02:00, perlinger@ntp.org
+ [Bug 3667] decodenetnum fails with numeric port
+
+ ChangeLog@1.1974.1.9 +4 -0
+ [Bug 3667] decodenetnum fails with numeric port
+
+ configure.ac@1.619 +1 -1
+ [Bug 3667] decodenetnum fails with numeric port
+ sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
+
+ include/l_stdlib.h@1.21 +9 -0
+ [Bug 3667] decodenetnum fails with numeric port
+ sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
+
+ libntp/decodenetnum.c@1.20 +123 -77
+ [Bug 3667] decodenetnum fails with numeric port
+ - rewrite in terms of inet_pton() and strtoul(), no getaddrinfo() any more
+
+ libntp/strdup.c@1.10 +29 -3
+ [Bug 3667] decodenetnum fails with numeric port
+ sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
+
+ tests/libntp/decodenetnum.c@1.13 +94 -6
+ [Bug 3667] decodenetnum fails with numeric port
+ - additional tests
+
+ tests/libntp/netof.c@1.10 +2 -0
+ Bug 3667 - decodenetnum fails with numeric port
+ - clear address buffers before use
+
+ tests/libntp/run-decodenetnum.c@1.14 +8 -2
+ [Bug 3667] decodenetnum fails with numeric port
+ - regenerated
+
+ tests/libntp/sockaddrtest.c@1.4 +2 -1
+ [Bug 3667] decodenetnum fails with numeric port
+ - include scope id in IPv6 compare
+
+ChangeSet@1.3896.1.14, 2020-05-14 03:45:40-07:00, harlan@psp-at0.tal1.ntfo.org
+ Added 3660 to the NEWS file
+
+ NEWS@1.205.1.4 +3 -1
+ Added 3660 to the NEWS file
+
+ChangeSet@1.3896.8.1, 2020-05-14 03:14:44-07:00, harlan@psp-at0.tal1.ntfo.org
+ [Bug 3660] Manycast orphan mode startup discovery problem
+
+ ChangeLog@1.1974.8.1 +5 -0
+ [Bug 3660] Manycast orphan mode startup discovery problem
+
+ ntpd/ntp_proto.c@1.432.2.1 +2 -1
+ [Bug 3660] Manycast orphan mode startup discovery problem
+
+ChangeSet@1.3896.1.12, 2020-05-10 11:26:21+00:00, stenn@psp-deb1.ntp.org
+ Update NEWS
+
+ NEWS@1.205.1.3 +3 -1
+ Update NEWS
+
+ChangeSet@1.3896.1.11, 2020-05-10 09:44:50+00:00, stenn@psp-deb1.ntp.org
+ Merge cleanup
+
+ ChangeLog@1.1974.1.7 +2 -4
+ Merge cleanup
+
+ChangeSet@1.3896.1.10, 2020-05-09 08:20:44+02:00, perlinger@ntp.org
+ [Bug 3666] avoid unlimited receive buffer allocation
+
+ BitKeeper/etc/ignore@1.95 +1 -0
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - (sidekick) ignore the '.vs' directory of VS2017 & above
+
+ ChangeLog@1.1974.1.6 +4 -0
+ [Bug 3666] avoid unlimited receive buffer allocation
+
+ include/recvbuff.h@1.28 +23 -7
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - buffer count limit is 4096 now, always enforced
+ - API change for urgent buffers
+
+ lib/isc/win32/include/isc/int.h@1.5 +3 -1
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - (sidekick) define standard reserved macros only if not yet defined!
+
+ libntp/recvbuff.c@1.44 +131 -73
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - don't exceed RECV_TOOMANY allocated buffers
+ - keep emergency reserve for clocks
+
+ libntp/timexsup.c@1.3 +3 -4
+ [bug 3666] avoid unlimited receive buffer allocation
+ - (sidekick) fix some warnings of clang on lp64 targets
+
+ ntpd/ntp_io.c@1.432 +23 -13
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - support urgent buffer reserve for refclocks
+
+ ntpd/refclock_parse.c@1.89 +1 -1
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - support urgent buffer reserve for refclocks
+
+ ntpdate/ntpdate.c@1.106 +1 -1
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - get_free_recv_buffer() API change
+
+ ports/winnt/libntp/messages.h@1.3 +1 -1
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - (sidekick) regenerated
+
+ ports/winnt/ntpd/ntp_iocompletionport.c@1.81 +63 -38
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - reuse last buffer ASAP if no new buffer available
+ - typos and some internal renaming
+
+ tests/libntp/recvbuff.c@1.8 +2 -2
+ [Bug 3666] avoid unlimited receive buffer allocation
+ - internal API changes
+
+ChangeSet@1.3896.1.9, 2020-05-05 03:53:50+00:00, stenn@psp-deb1.ntp.org
+ Update NEWS with 3639
+
+ NEWS@1.205.1.2 +3 -1
+ Update NEWS with 3639
+
+ChangeSet@1.3896.1.7, 2020-04-20 08:14:39+00:00, stenn@psp-deb1.ntp.org
+ NEWS and bug 3664
+
+ NEWS@1.205.1.1 +2 -1
+ NEWS and bug 3664
+
+ChangeSet@1.3896.7.1, 2020-04-16 17:50:44+02:00, burnicki@psp-deb1.ntp.org
+ Enable openSSL CMAC support on Windows.
+
+ ChangeLog@1.1974.7.1 +2 -0
+ Enable openSSL CMAC support on Windows.
+
+ ports/winnt/include/config.h@1.116 +2 -0
+ Enable openSSL CMAC support on Windows.
+
+ChangeSet@1.3899, 2020-04-11 09:59:23+00:00, stenn@psp-deb1.ntp.org
+ update
+
+ NEWS@1.206 +1 -0
+ update
+
+ChangeSet@1.3896.1.5, 2020-04-11 09:35:19+00:00, stenn@psp-deb1.ntp.org
+ update
+
+ NEWS@1.205 +2 -2
+ update
+
+ChangeSet@1.3896.1.3, 2020-04-11 08:10:59+00:00, stenn@psp-deb1.ntp.org
+ update
+
+ NEWS@1.204 +3 -1
+ update
+
+ChangeSet@1.3896.2.3, 2020-04-11 07:21:36+00:00, stenn@psp-deb1.ntp.org
+ update
+
+ NEWS@1.203 +1 -0
+ update
+
+ChangeSet@1.3896.3.3, 2020-04-11 07:12:47+00:00, stenn@psp-deb1.ntp.org
+ update
+
+ NEWS@1.202 +22 -0
+ update
+
+ChangeSet@1.3896.6.4, 2020-04-07 17:51:25+02:00, burnicki@psp-deb1.ntp.org
+ [Bug 3662] Fix build errors on Windows with VS2008.
+
+ ChangeLog@1.1974.6.1 +2 -0
+ [Bug 3662] Fix build errors on Windows with VS2008.
+
+ChangeSet@1.3896.6.3, 2020-04-07 17:49:08+02:00, burnicki@psp-deb1.ntp.org
+ Fix unused variable warning in ntpdate.c.
+
+ ntpdate/ntpdate.c@1.105 +2 -1
+ Fix unused variable warning.
+
+ChangeSet@1.3896.6.2, 2020-04-07 17:48:25+02:00, burnicki@psp-deb1.ntp.org
+ Fix compiling refclock_palisade.c
+ Don't have variable declarations after code.
+
+ ntpd/refclock_palisade.c@1.49 +25 -23
+ Don't have variable declarations after code.
+
+ChangeSet@1.3896.6.1, 2020-04-07 17:47:02+02:00, burnicki@psp-deb1.ntp.org
+ Fix prototype in ntpd/refclock_nmea.c
+
+ ntpd/refclock_nmea.c@1.85 +1 -1
+ Fix prototype in ntpd/refclock_nmea.c
+
+ChangeSet@1.3896.5.1, 2020-04-05 10:10:12+02:00, perlinger@ntp.org
+ [Bug 3646] Avoid sync with unsync orphan
+
+ ChangeLog@1.1974.5.1 +4 -0
+ [Bug 3646] Avoid sync with unsync orphan
+
+ ntpd/ntp_proto.c@1.432.1.1 +21 -0
+ [Bug 3646] Avoid sync with unsync orphan
+
+ChangeSet@1.3896.4.1, 2020-04-05 09:53:25+02:00, perlinger@ntp.org
+ [Bug 3653] Refclock jitter RMS calculation
+
+ ChangeLog@1.1974.4.1 +4 -0
+ [Bug 3653] Refclock jitter RMS calculation
+
+ ntpd/ntp_refclock.c@1.132 +36 -36
+ [Bug 3653] Refclock jitter RMS calculation
+
+ChangeSet@1.3896.3.1, 2020-04-04 08:57:51+02:00, perlinger@ntp.org
+ [Bug 3655] ntpdc memstats hash counts
+
+ ChangeLog@1.1974.3.1 +4 -0
+ [Bug 3655] ntpdc memstats hash counts
+
+ ntpd/ntp_request.c@1.132 +1 -1
+ [Bug 3655] ntpdc memstats hash counts
+
+ChangeSet@1.3896.2.1, 2020-04-04 08:48:51+02:00, perlinger@ntp.org
+ [Bug 3657] Wrong "Autokey group mismatch" debug message
+
+ ChangeLog@1.1974.2.1 +3 -0
+ [Bug 3657] Wrong "Autokey group mismatch" debug message
+
+ ntpd/ntp_proto.c@1.433 +3 -2
+ [Bug 3657] Wrong "Autokey group mismatch" debug message
+
+ChangeSet@1.3896.1.1, 2020-04-04 08:38:06+02:00, perlinger@ntp.org
+ [Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
+
+ ChangeLog@1.1974.1.1 +3 -0
+ [Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
+
+ include/ntp_config.h@1.90 +0 -10
+ [Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
+ - move global declaration of 'psl' from header to static declaration in code
+
+ ntpd/ntp_config.c@1.376 +10 -0
+ [Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
+ - move global declaration of 'psl' from header to static declaration in code
+
+ChangeSet@1.3897, 2020-04-01 16:49:43+02:00, perlinger@ntp.org
+ [Bug 3661] memory leak with AES128CMAC keys
+
+ ChangeLog@1.1975 +3 -0
+ [Bug 3661] memory leak with AES128CMAC keys
+
+ libntp/a_md5encrypt.c@1.52 +1 -1
+ [Bug 3661] memory leak with AES128CMAC keys
+ - free context, not just cleaning up internally
+
+ sntp/crypto.c@1.40 +2 -1
+ [Bug 3661] memory leak with AES128CMAC keys
+ - free context, not just cleaning up internally
+
ChangeSet@1.3896, 2020-03-03 17:42:43-08:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P14
TAG: NTP_4_2_8P14
@@ -675,7 +1372,7 @@ ChangeSet@1.3892, 2020-03-03 16:05:38-08:00, ntpreleng@ntp-build.tal1.ntfo.org
ntpd/ntp_config.c@1.374 +2 -2
provide get_pollskew() for simulator
-ChangeSet@1.3844.24.1, 2020-03-03 03:30:13-08:00, ntpreleng@ntp-build.tal1.ntfo.org
+ChangeSet@1.3844.25.1, 2020-03-03 03:30:13-08:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P13
TAG: NTP_4_2_8P13 (currently on 1.3894)
@@ -933,7 +1630,7 @@ ChangeSet@1.3880, 2020-02-17 08:48:45+00:00, stenn@psp-deb1.ntp.org
ChangeSet@1.3879, 2020-02-17 08:11:42+00:00, stenn@psp-deb1.ntp.org
updates
- ChangeLog@1.1968.34.1 +2 -0
+ ChangeLog@1.1968.35.1 +2 -0
ChangeSet@1.3877.1.2, 2020-02-08 23:00:11+00:00, stenn@psp-deb1.ntp.org
html/confopt.html cleanup
@@ -1289,6 +1986,22 @@ ChangeSet@1.3878, 2020-01-29 06:03:13+00:00, stenn@psp-deb1.ntp.org
ntpd/ntp_proto.c@1.427.1.1 +8 -0
Initial pass at fixes for bug 3596
+ChangeSet@1.3844.24.1, 2020-01-21 12:49:14+00:00, abe@psp-deb1.ntp.org
+ driver40.html, refclock_jjy.c, driver40-ja.html, ChangeLog:
+ refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
+
+ ChangeLog@1.1968.34.1 +3 -0
+ refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
+
+ html/drivers/driver40-ja.html@1.8 +10 -2
+ refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
+
+ html/drivers/driver40.html@1.23 +9 -2
+ refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
+
+ ntpd/refclock_jjy.c@1.37 +76 -32
+ refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
+
ChangeSet@1.3873.4.2, 2020-01-18 04:46:30-05:00, stenn@psp-deb2.ntp.org
[Bug 3637] Emit the version of ntpd in saveconfig
diff --git a/NEWS b/NEWS
index e1ed00056614..caf9ea664df5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,42 @@
---
+NTP 4.2.8p15 (Harlan Stenn <stenn@ntp.org>, 2020 Jun 23)
+
+Focus: Security, Bug fixes
+
+Severity: MEDIUM
+
+This release fixes one vulnerability: Associations that use CMAC
+authentication between ntpd from versions 4.2.8p11/4.3.97 and
+4.2.8p14/4.3.100 will leak a small amount of memory for each packet.
+Eventually, ntpd will run out of memory and abort.
+
+It also fixes 13 other bugs.
+
+* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
+* [Bug 3670] Regression from bad merger between 3592 and 3596 <perlinger@>
+ - Thanks to Sylar Tao
+* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
+ - rewrite 'decodenetnum()' in terms of inet_pton
+* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
+ - limit number of receive buffers, with an iron reserve for refclocks
+* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
+* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
+* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
+ - integrated patch from Charles Claggett
+* [Bug 3659] Move definition of psl[] from ntp_config.h to
+ ntp_config.h <perlinger@ntp.org>
+* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
+* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
+ - fix by Gerry garvey
+* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
+ - thanks to Gerry Garvey
+* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
+ - patch by Gerry Garvey
+* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
+* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
+ - applied patch by Takao Abe
+
+---
NTP 4.2.8p14 (Harlan Stenn <stenn@ntp.org>, 2020 Mar 03)
Focus: Security, Bug fixes, enhancements.
diff --git a/config.h.in b/config.h.in
index 12e0d1380a42..4fa8c3188377 100644
--- a/config.h.in
+++ b/config.h.in
@@ -583,6 +583,9 @@
/* Define to 1 if you have the <md5.h> header file. */
#undef HAVE_MD5_H
+/* Define to 1 if you have the `memchr' function. */
+#undef HAVE_MEMCHR
+
/* Define to 1 if you have the `memlk' function. */
#undef HAVE_MEMLK
@@ -895,6 +898,9 @@
/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
+/* Define to 1 if you have the `strnlen' function. */
+#undef HAVE_STRNLEN
+
/* Define to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H
diff --git a/configure b/configure
index 9f4e925535ca..71b0d0c29167 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ntp 4.2.8p14.
+# Generated by GNU Autoconf 2.69 for ntp 4.2.8p15.
#
# Report bugs to <http://bugs.ntp.org./>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ntp'
PACKAGE_TARNAME='ntp'
-PACKAGE_VERSION='4.2.8p14'
-PACKAGE_STRING='ntp 4.2.8p14'
+PACKAGE_VERSION='4.2.8p15'
+PACKAGE_STRING='ntp 4.2.8p15'
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
PACKAGE_URL='http://www.ntp.org./'
@@ -1617,7 +1617,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ntp 4.2.8p14 to adapt to many kinds of systems.
+\`configure' configures ntp 4.2.8p15 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1687,7 +1687,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ntp 4.2.8p14:";;
+ short | recursive ) echo "Configuration of ntp 4.2.8p15:";;
esac
cat <<\_ACEOF
@@ -1930,7 +1930,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ntp configure 4.2.8p14
+ntp configure 4.2.8p15
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2639,7 +2639,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ntp $as_me 4.2.8p14, which was
+It was created by ntp $as_me 4.2.8p15, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3640,7 +3640,7 @@ fi
# Define the identity of the package.
PACKAGE='ntp'
- VERSION='4.2.8p14'
+ VERSION='4.2.8p15'
cat >>confdefs.h <<_ACEOF
@@ -27308,7 +27308,7 @@ _ACEOF
fi
done
-for ac_func in strdup strerror setrlimit strchr
+for ac_func in strdup strnlen memchr strerror setrlimit strchr
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -34174,7 +34174,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ntp $as_me 4.2.8p14, which was
+This file was extended by ntp $as_me 4.2.8p15, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -34241,7 +34241,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ntp config.status 4.2.8p14
+ntp config.status 4.2.8p15
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index a0072eeb5be0..5dc6aee02edc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -912,7 +912,7 @@ case "$host" in
;;
esac
AC_CHECK_FUNCS([setlinebuf setpgid setpriority setsid setvbuf])
-AC_CHECK_FUNCS([strdup strerror setrlimit strchr])
+AC_CHECK_FUNCS([strdup strnlen memchr strerror setrlimit strchr])
case "$host" in
*-*-aix[[4-9]]*)
# XXX only verified thru AIX6.
diff --git a/html/drivers/driver40-ja.html b/html/drivers/driver40-ja.html
index 99ca4827dfa1..8b24fdc9b1c1 100644
--- a/html/drivers/driver40-ja.html
+++ b/html/drivers/driver40-ja.html
@@ -52,15 +52,22 @@
<dl>
<dt>server &nbsp; 127.127.40.X &nbsp; mode 1</dt>
<dd><br></dd>
- <dt>fudge &nbsp; 127.127.40.X &nbsp; time1 0.NNN &nbsp; flag1 0|1</dt>
+ <dt>fudge &nbsp; 127.127.40.X &nbsp; time1 0.NNN &nbsp; flag1 0|1 &nbsp; flag2 0|1 &nbsp; time2 H</dt>
<dd>
<p>Time1 は、受信機からの時刻に加算する調整時間を、固定小数点形式の秒で設定します。<br>
この受信機には、数10ミリ秒 ( 0.0NN秒 ) から百数10ミリ秒 ( 0.1NN秒 ) の調整時間を設定すると良いでしょう。</p>
- <p>Flag1 は、時刻同期には無関係です。Flag1 を 1 に設定すると、状態を問い合わせるコマンドを DATE コマンドと STIM コマンドの前に発行して、応答を clockstats ファイルに記録します。</p>
+ <p>Time2 は、STUSコマンドの応答が adjusted ではなくなってからの猶予時間を時単位で指定します。<br>
+ この猶予時間は、flag1 と flag2 を共に 1 に設定したときに有効です。</p>
+ <p>Flag1 は、flag2 を 1 に設定しない限り、時刻同期には無関係です。Flag1 を 1 に設定すると、状態を問い合わせるコマンドを DATE コマンドと STIM コマンドの前に発行して、応答を clockstats ファイルに記録します。</p>
<table border="1" summary="fudge flag1">
<tr><td>0 (Default)</td><td>DCST と STUS コマンドは、発行しません。</td></tr>
<tr><td>1</td><td>DCST と STUS コマンドを、発行します。</td></tr>
</table>
+ <p>Flag2 は STUSコマンドの応答が adjusted の時だけ、時刻同期処理を行う指定です。この機能を使うときは、flag1 も同時に 1 に設定する必要があります。</p>
+ <table border="1" summary="fudge flag2">
+ <tr><td>0 (Default)</td><td>常に、時刻同期処理</td></tr>
+ <tr><td>1</td><td>adjusted の時だ、け時刻同期委処理</td></tr>
+ </table>
</dd>
</dl>
<br>
@@ -194,6 +201,7 @@
<li>
<p><a name="mode-4">シチズンTIC &nbsp; JJY-200</a> &nbsp; <a href="http://www.tic-citizen.co.jp/">http://www.tic-citizen.co.jp/</a> (日本語)</p><br>
+ <p>JJY-200 は、2013年に販売終了となりました。</p><br>
<dl>
<dt>NTPの設定 ( ntp.conf )</dt>
<dd><br>
diff --git a/html/drivers/driver40.html b/html/drivers/driver40.html
index 827aeff4ea19..24ced93c3a7a 100644
--- a/html/drivers/driver40.html
+++ b/html/drivers/driver40.html
@@ -52,14 +52,20 @@
<dl>
<dt>server &nbsp; 127.127.40.X &nbsp; mode 1</dt>
<dd><br></dd>
- <dt>fudge &nbsp; 127.127.40.X &nbsp; time1 0.NNN &nbsp; flag1 0|1</dt>
+ <dt>fudge &nbsp; 127.127.40.X &nbsp; time1 0.NNN &nbsp; flag1 0|1 &nbsp; flag2 0|1 &nbsp; time2 H</dt>
<dd>
<p>Time1 may specify a constant to be added to the time offset for the time from the receiver, a fixed-point decimal number in seconds. You may specify the time offset from several tens of milli-seconds ( 0.0NN seconds ) to a hundred and several tens of milli-seconds ( 0.1NN seconds ) for this clock.</p>
- <p>Flag1 has no effect for time synchronization. When flag1 is set to 1, status commands are issued before DATE and STIM commands, and write a response text into the clockstats file.</p>
+ <p>Time2 may specify a grace period in hours after the 'adjusted' reply of the STUS command stopped coming.<br>This hours is effective when both flag1 and flag2 are set to 1.</p>
+ <p>Flag1 has no effect for time synchronization unless flag2 is set to 1.<br>When flag1 is set to 1, status commands are issued before DATE and STIM commands, and write a response text into the clockstats file.</p>
<table border="1" summary="fudge flag1">
<tr><td>0 (Default)</td><td>DCST and STUS commands are not issued</td></tr>
<tr><td>1</td><td>DCST and STUS commands are issued</td></tr>
</table>
+ <p>Flag2 enables the time synchronization only when the reply of the STUS is 'adjusted'. When this functionality is used, flag1 must be set to 1 together.</p>
+ <table border="1" summary="fudge flag2">
+ <tr><td>0 (Default)</td><td>Always</td></tr>
+ <tr><td>1</td><td>'adjusted' only</td></tr>
+ </table>
</dd>
</dl>
<br>
@@ -193,6 +199,7 @@
<li>
<p><a name="mode-4">CITIZEN T.I.C. CO.,LTD. &nbsp; JJY-200</a> &nbsp; <a href="http://www.tic-citizen.co.jp/">http://www.tic-citizen.co.jp/</a> (Japanese only)</p><br>
+ <p>The JJY-200 became the end of sales in 2013.</p><br>
<dl>
<dt>NTP configuration ( ntp.conf )</dt>
<dd><br>
diff --git a/include/l_stdlib.h b/include/l_stdlib.h
index 073ea4641236..fbf57c53aa9d 100644
--- a/include/l_stdlib.h
+++ b/include/l_stdlib.h
@@ -221,4 +221,13 @@ extern int errno;
extern int h_errno;
#endif
+#ifndef HAVE_MEMCHR
+extern void *memchr(const void *s, int c, size_t n);
+#endif
+
+#ifndef HAVE_STRNLEN
+extern size_t strnlen(const char *s, size_t n);
+#endif
+
+
#endif /* L_STDLIB_H */
diff --git a/include/ntp.h b/include/ntp.h
index 97f0d5f9e2de..8e0ea2b202a7 100644
--- a/include/ntp.h
+++ b/include/ntp.h
@@ -128,7 +128,7 @@ typedef char s_char;
#define MAX_TTL 8 /* max ttl mapping vector size */
#define BEACON 7200 /* manycast beacon interval */
#define NTP_MAXEXTEN 2048 /* max extension field size */
-#define NTP_ORPHWAIT 300 /* orphan wair (s) */
+#define NTP_ORPHWAIT 300 /* orphan wait (s) */
/*
* Miscellaneous stuff
diff --git a/include/ntp_config.h b/include/ntp_config.h
index b414466930ad..53546df8d6ca 100644
--- a/include/ntp_config.h
+++ b/include/ntp_config.h
@@ -277,16 +277,6 @@ typedef struct settrap_parms_tag {
/*
- * Poll Skew List
- */
-
-psl_item psl[17-3+1]; /* values for polls 3-17 */
- /* To simplify the runtime code we */
- /* don't want to have to special-case */
- /* dealing with a default */
-
-
-/*
** Data Minimization Items
*/
diff --git a/include/recvbuff.h b/include/recvbuff.h
index 42597153eea2..2a4c84c5afc3 100644
--- a/include/recvbuff.h
+++ b/include/recvbuff.h
@@ -10,10 +10,26 @@
/*
* recvbuf memory management
*/
-#define RECV_INIT 10 /* 10 buffers initially */
+#define RECV_INIT 64 /* 64 buffers initially */
#define RECV_LOWAT 3 /* when we're down to three buffers get more */
-#define RECV_INC 5 /* get 5 more at a time */
-#define RECV_TOOMANY 40 /* this is way too many buffers */
+#define RECV_INC 32 /* [power of 2] get 32 more at a time */
+#define RECV_BATCH 128 /* [power of 2] max increment in one sweep */
+#define RECV_TOOMANY 4096 /* this should suffice, really. TODO: tos option? */
+
+/* If we have clocks, keep an iron reserve of receive buffers for
+ * clocks only.
+ */
+#if defined(REFCLOCK)
+# if !defined(RECV_CLOCK) || RECV_CLOCK == 0
+# undef RECV_CLOCK
+# define RECV_CLOCK 16
+# endif
+#else
+# if defined(RECV_CLOCK)
+# undef RECV_CLOCK
+# endif
+# define RECV_CLOCK 0
+#endif
#if defined HAVE_IO_COMPLETION_PORT
# include "ntp_iocompletionport.h"
@@ -90,10 +106,10 @@ extern void freerecvbuf(struct recvbuf *);
* you put it back with freerecvbuf() or
*/
-/* signal safe - no malloc */
-extern struct recvbuf *get_free_recv_buffer(void);
-/* signal unsafe - may malloc, never returs NULL */
-extern struct recvbuf *get_free_recv_buffer_alloc(void);
+/* signal safe - no malloc, returns NULL when no bufs */
+extern struct recvbuf *get_free_recv_buffer(int /*BOOL*/ urgent);
+/* signal unsafe - may malloc, returns NULL when no bufs */
+extern struct recvbuf *get_free_recv_buffer_alloc(int /*BOOL*/ urgent);
/* Add a buffer to the full list
*/
diff --git a/lib/isc/win32/include/isc/int.h b/lib/isc/win32/include/isc/int.h
index 2ee8bf96a3fb..edcf59dd3ad7 100644
--- a/lib/isc/win32/include/isc/int.h
+++ b/lib/isc/win32/include/isc/int.h
@@ -20,7 +20,9 @@
#ifndef ISC_INT_H
#define ISC_INT_H 1
-#define _INTEGRAL_MAX_BITS 64
+#ifndef _INTEGRAL_MAX_BITS
+# define _INTEGRAL_MAX_BITS 64
+#endif
#include <limits.h>
typedef __int8 isc_int8_t;
diff --git a/libntp/a_md5encrypt.c b/libntp/a_md5encrypt.c
index 8c046f4e93c9..57100de3a86e 100644
--- a/libntp/a_md5encrypt.c
+++ b/libntp/a_md5encrypt.c
@@ -93,7 +93,7 @@ make_mac(
}
cmac_fail:
if (ctx)
- CMAC_CTX_cleanup(ctx);
+ CMAC_CTX_free(ctx);
}
else
# endif /*ENABLE_CMAC*/
diff --git a/libntp/decodenetnum.c b/libntp/decodenetnum.c
index 35e839aafb09..8ff67625202c 100644
--- a/libntp/decodenetnum.c
+++ b/libntp/decodenetnum.c
@@ -13,106 +13,152 @@
#include "ntp.h"
#include "ntp_stdlib.h"
-#include "ntp_assert.h"
-#define PORTSTR(x) _PORTSTR(x)
-#define _PORTSTR(x) #x
-static int
-isnumstr(
- const char *s
+/* If the given string position points to a decimal digit, parse the
+ * number. If this is not possible, or the parsing did not consume the
+ * whole string, or if the result exceeds the maximum value, return the
+ * default value.
+ */
+static unsigned long
+_num_or_dflt(
+ char * sval,
+ unsigned long maxval,
+ unsigned long defval
)
{
- while (*s >= '0' && *s <= '9')
- ++s;
- return !*s;
+ char * ep;
+ unsigned long num;
+
+ if (!(sval && isdigit(*(unsigned char*)sval)))
+ return defval;
+
+ num = strtoul(sval, &ep, 10);
+ if (!*ep && num <= maxval)
+ return num;
+
+ return defval;
+}
+
+/* If the given string position is not NULL and does not point to the
+ * terminator, replace the character with NUL and advance the pointer.
+ * Return the resulting position.
+ */
+static inline char*
+_chop(
+ char * sp)
+{
+ if (sp && *sp)
+ *sp++ = '\0';
+ return sp;
+}
+
+/* If the given string position points to the given char, advance the
+ * pointer and return the result. Otherwise, return NULL.
+ */
+static inline char*
+_skip(
+ char * sp,
+ int ch)
+{
+ if (sp && *(unsigned char*)sp == ch)
+ return (sp + 1);
+ return NULL;
}
/*
* decodenetnum convert text IP address and port to sockaddr_u
*
- * Returns 0 for failure, 1 for success.
+ * Returns FALSE (->0) for failure, TRUE (->1) for success.
*/
int
decodenetnum(
const char *num,
- sockaddr_u *netnum
+ sockaddr_u *net
)
{
- static const char * const servicename = "ntp";
- static const char * const serviceport = PORTSTR(NTP_PORT);
+ /* Building a parser is more fun in Haskell, but here we go...
+ *
+ * This works through 'inet_pton()' taking the brunt of the
+ * work, after some string manipulations to split off URI
+ * brackets, ports and scope identifiers. The heuristics are
+ * simple but must hold for all _VALID_ addresses. inet_pton()
+ * will croak on bad ones later, but replicating the whole
+ * parser logic to detect errors is wasteful.
+ */
- struct addrinfo hints, *ai = NULL;
- int err;
- const char *host_str;
- const char *port_str;
- char *pp;
- char *np;
- char nbuf[80];
-
- REQUIRE(num != NULL);
-
- if (strlen(num) >= sizeof(nbuf)) {
- printf("length error\n");
+ sockaddr_u netnum;
+ char buf[64]; /* working copy of input */
+ char *haddr=buf;
+ unsigned int port=NTP_PORT, scope=0;
+ unsigned short afam=AF_UNSPEC;
+
+ /* copy input to working buffer with length check */
+ if (strlcpy(buf, num, sizeof(buf)) >= sizeof(buf))
return FALSE;
- }
- port_str = servicename;
- if ('[' != num[0]) {
- /*
- * to distinguish IPv6 embedded colons from a port
- * specification on an IPv4 address, assume all
- * legal IPv6 addresses have at least two colons.
- */
- pp = strchr(num, ':');
- if (NULL == pp)
- host_str = num; /* no colons */
- else if (NULL != strchr(pp + 1, ':'))
- host_str = num; /* two or more colons */
- else { /* one colon */
- strlcpy(nbuf, num, sizeof(nbuf));
- host_str = nbuf;
- pp = strchr(nbuf, ':');
- *pp = '\0';
- port_str = pp + 1;
+ /* Identify address family and possibly the port, if given. If
+ * this results in AF_UNSPEC, we will fail in the next step.
+ */
+ if (*haddr == '[') {
+ char * endp = strchr(++haddr, ']');
+ if (endp) {
+ port = _num_or_dflt(_skip(_chop(endp), ':'),
+ 0xFFFFu, port);
+ afam = strchr(haddr, ':') ? AF_INET6 : AF_INET;
}
} else {
- host_str = np = nbuf;
- while (*++num && ']' != *num)
- *np++ = *num;
- *np = 0;
- if (']' == num[0] && ':' == num[1] && '\0' != num[2])
- port_str = &num[2];
+ char *col = strchr(haddr, ':');
+ char *dot = strchr(haddr, '.');
+ if (col == dot) {
+ /* no dot, no colon: bad! */
+ afam = AF_UNSPEC;
+ } else if (!col) {
+ /* no colon, only dot: IPv4! */
+ afam = AF_INET;
+ } else if (!dot || col < dot) {
+ /* no dot or 1st colon before 1st dot: IPv6! */
+ afam = AF_INET6;
+ } else {
+ /* 1st dot before 1st colon: must be IPv4 with port */
+ afam = AF_INET;
+ port = _num_or_dflt(_chop(col), 0xFFFFu, port);
+ }
}
- if ( ! *host_str)
+
+ /* Since we don't know about additional members in the address
+ * structures, we wipe the result buffer thoroughly:
+ */
+ memset(&netnum, 0, sizeof(netnum));
+
+ /* For AF_INET6, evaluate and remove any scope suffix. Have
+ * inet_pton() do the real work for AF_INET and AF_INET6, bail
+ * out otherwise:
+ */
+ switch (afam) {
+ case AF_INET:
+ if (inet_pton(afam, haddr, &netnum.sa4.sin_addr) <= 0)
+ return FALSE;
+ netnum.sa4.sin_port = htons((unsigned short)port);
+ break;
+
+ case AF_INET6:
+ scope = _num_or_dflt(_chop(strchr(haddr, '%')), 0xFFFFFFFFu, scope);
+ if (inet_pton(afam, haddr, &netnum.sa6.sin6_addr) <= 0)
+ return FALSE;
+ netnum.sa6.sin6_port = htons((unsigned short)port);
+ netnum.sa6.sin6_scope_id = scope;
+ break;
+
+ case AF_UNSPEC:
+ default:
return FALSE;
- if ( ! *port_str)
- port_str = servicename;
-
- ZERO(hints);
- hints.ai_flags |= Z_AI_NUMERICHOST;
- if (isnumstr(port_str))
- hints.ai_flags |= Z_AI_NUMERICSERV;
- err = getaddrinfo(host_str, port_str, &hints, &ai);
- /* retry with default service name if the service lookup failed */
- if (err == EAI_SERVICE && strcmp(port_str, servicename)) {
- hints.ai_flags &= ~Z_AI_NUMERICSERV;
- port_str = servicename;
- err = getaddrinfo(host_str, port_str, &hints, &ai);
}
- /* retry another time with default service port if the service lookup failed */
- if (err == EAI_SERVICE && strcmp(port_str, serviceport)) {
- hints.ai_flags |= Z_AI_NUMERICSERV;
- port_str = serviceport;
- err = getaddrinfo(host_str, port_str, &hints, &ai);
- }
- if (err != 0)
- return FALSE;
-
- INSIST(ai->ai_addrlen <= sizeof(*netnum));
- ZERO(*netnum);
- memcpy(netnum, ai->ai_addr, ai->ai_addrlen);
- freeaddrinfo(ai);
+ /* Collect the remaining pieces and feed the output, which was
+ * not touched so far:
+ */
+ netnum.sa.sa_family = afam;
+ memcpy(net, &netnum, sizeof(netnum));
return TRUE;
}
diff --git a/libntp/recvbuff.c b/libntp/recvbuff.c
index 573fdb2f9209..5855ec2147ac 100644
--- a/libntp/recvbuff.c
+++ b/libntp/recvbuff.c
@@ -11,6 +11,15 @@
#include "recvbuff.h"
#include "iosignal.h"
+#if (RECV_INC & (RECV_INC-1))
+# error RECV_INC not a power of 2!
+#endif
+#if (RECV_BATCH & (RECV_BATCH - 1))
+#error RECV_BATCH not a power of 2!
+#endif
+#if (RECV_BATCH < RECV_INC)
+#error RECV_BATCH must be >= RECV_INC!
+#endif
/*
* Memory allocation
@@ -21,6 +30,8 @@ static u_long volatile total_recvbufs; /* total recvbufs currently in use */
static u_long volatile lowater_adds; /* number of times we have added memory */
static u_long volatile buffer_shortfall;/* number of missed free receive buffers
between replenishments */
+static u_long limit_recvbufs; /* maximum total of receive buffers */
+static u_long emerg_recvbufs; /* emergency/urgent buffers to keep */
static DECL_FIFO_ANCHOR(recvbuf_t) full_recv_fifo;
static recvbuf_t * free_recv_list;
@@ -33,11 +44,16 @@ static recvbuf_t * free_recv_list;
* short a time as possible
*/
static CRITICAL_SECTION RecvLock;
-# define LOCK() EnterCriticalSection(&RecvLock)
-# define UNLOCK() LeaveCriticalSection(&RecvLock)
+static CRITICAL_SECTION FreeLock;
+# define LOCK_R() EnterCriticalSection(&RecvLock)
+# define UNLOCK_R() LeaveCriticalSection(&RecvLock)
+# define LOCK_F() EnterCriticalSection(&FreeLock)
+# define UNLOCK_F() LeaveCriticalSection(&FreeLock)
#else
-# define LOCK() do {} while (FALSE)
-# define UNLOCK() do {} while (FALSE)
+# define LOCK_R() do {} while (FALSE)
+# define UNLOCK_R() do {} while (FALSE)
+# define LOCK_F() do {} while (FALSE)
+# define UNLOCK_F() do {} while (FALSE)
#endif
#ifdef DEBUG
@@ -76,33 +92,52 @@ initialise_buffer(recvbuf_t *buff)
}
static void
-create_buffers(int nbufs)
+create_buffers(
+ size_t nbufs)
{
+# ifndef DEBUG
+ static const u_int chunk = RECV_INC;
+# else
+ /* Allocate each buffer individually so they can be free()d
+ * during ntpd shutdown on DEBUG builds to keep them out of heap
+ * leak reports.
+ */
+ static const u_int chunk = 1;
+# endif
+
register recvbuf_t *bufp;
- int i, abuf;
+ u_int i;
+ size_t abuf;
+ if (limit_recvbufs <= total_recvbufs)
+ return;
+
abuf = nbufs + buffer_shortfall;
buffer_shortfall = 0;
-#ifndef DEBUG
- bufp = eallocarray(abuf, sizeof(*bufp));
-#endif
-
- for (i = 0; i < abuf; i++) {
-#ifdef DEBUG
- /*
- * Allocate each buffer individually so they can be
- * free()d during ntpd shutdown on DEBUG builds to
- * keep them out of heap leak reports.
- */
- bufp = emalloc_zero(sizeof(*bufp));
-#endif
- LINK_SLIST(free_recv_list, bufp, link);
- bufp++;
- free_recvbufs++;
- total_recvbufs++;
+ if (abuf < nbufs || abuf > RECV_BATCH)
+ abuf = RECV_BATCH; /* clamp on overflow */
+ else
+ abuf += (~abuf + 1) & (RECV_INC - 1); /* round up */
+
+ if (abuf > (limit_recvbufs - total_recvbufs))
+ abuf = limit_recvbufs - total_recvbufs;
+ abuf += (~abuf + 1) & (chunk - 1); /* round up */
+
+ while (abuf) {
+ bufp = calloc(chunk, sizeof(*bufp));
+ if (!bufp) {
+ limit_recvbufs = total_recvbufs;
+ break;
+ }
+ for (i = chunk; i; --i,++bufp) {
+ LINK_SLIST(free_recv_list, bufp, link);
+ }
+ free_recvbufs += chunk;
+ total_recvbufs += chunk;
+ abuf -= chunk;
}
- lowater_adds++;
+ ++lowater_adds;
}
void
@@ -115,15 +150,19 @@ init_recvbuff(int nbufs)
free_recvbufs = total_recvbufs = 0;
full_recvbufs = lowater_adds = 0;
+ limit_recvbufs = RECV_TOOMANY;
+ emerg_recvbufs = RECV_CLOCK;
+
create_buffers(nbufs);
-#if defined(SYS_WINNT)
+# if defined(SYS_WINNT)
InitializeCriticalSection(&RecvLock);
-#endif
+ InitializeCriticalSection(&FreeLock);
+# endif
-#ifdef DEBUG
+# ifdef DEBUG
atexit(&uninit_recvbuff);
-#endif
+# endif
}
@@ -146,6 +185,10 @@ uninit_recvbuff(void)
break;
free(rbunlinked);
}
+# if defined(SYS_WINNT)
+ DeleteCriticalSection(&FreeLock);
+ DeleteCriticalSection(&RecvLock);
+# endif
}
#endif /* DEBUG */
@@ -157,13 +200,14 @@ void
freerecvbuf(recvbuf_t *rb)
{
if (rb) {
- LOCK();
- rb->used--;
- if (rb->used != 0)
+ if (--rb->used != 0) {
msyslog(LOG_ERR, "******** freerecvbuff non-zero usage: %d *******", rb->used);
+ rb->used = 0;
+ }
+ LOCK_F();
LINK_SLIST(free_recv_list, rb, link);
- free_recvbufs++;
- UNLOCK();
+ ++free_recvbufs;
+ UNLOCK_F();
}
}
@@ -175,28 +219,34 @@ add_full_recv_buffer(recvbuf_t *rb)
msyslog(LOG_ERR, "add_full_recv_buffer received NULL buffer");
return;
}
- LOCK();
+ LOCK_R();
LINK_FIFO(full_recv_fifo, rb, link);
- full_recvbufs++;
- UNLOCK();
+ ++full_recvbufs;
+ UNLOCK_R();
}
recvbuf_t *
-get_free_recv_buffer(void)
+get_free_recv_buffer(
+ int /*BOOL*/ urgent
+ )
{
- recvbuf_t *buffer;
+ recvbuf_t *buffer = NULL;
- LOCK();
- UNLINK_HEAD_SLIST(buffer, free_recv_list, link);
+ LOCK_F();
+ if (free_recvbufs > (urgent ? emerg_recvbufs : 0)) {
+ UNLINK_HEAD_SLIST(buffer, free_recv_list, link);
+ }
+
if (buffer != NULL) {
- free_recvbufs--;
+ if (free_recvbufs)
+ --free_recvbufs;
initialise_buffer(buffer);
- buffer->used++;
+ ++buffer->used;
} else {
- buffer_shortfall++;
+ ++buffer_shortfall;
}
- UNLOCK();
+ UNLOCK_F();
return buffer;
}
@@ -204,17 +254,15 @@ get_free_recv_buffer(void)
#ifdef HAVE_IO_COMPLETION_PORT
recvbuf_t *
-get_free_recv_buffer_alloc(void)
+get_free_recv_buffer_alloc(
+ int /*BOOL*/ urgent
+ )
{
- recvbuf_t *buffer;
-
- buffer = get_free_recv_buffer();
- if (NULL == buffer) {
+ LOCK_F();
+ if (free_recvbufs <= emerg_recvbufs || buffer_shortfall > 0)
create_buffers(RECV_INC);
- buffer = get_free_recv_buffer();
- }
- ENSURE(buffer != NULL);
- return (buffer);
+ UNLOCK_F();
+ return get_free_recv_buffer(urgent);
}
#endif
@@ -224,30 +272,26 @@ get_full_recv_buffer(void)
{
recvbuf_t * rbuf;
- LOCK();
-
/*
- * make sure there are free buffers when we
- * wander off to do lengthy packet processing with
- * any buffer we grab from the full list.
+ * make sure there are free buffers when we wander off to do
+ * lengthy packet processing with any buffer we grab from the
+ * full list.
*
- * fixes malloc() interrupted by SIGIO risk
- * (Bug 889)
+ * fixes malloc() interrupted by SIGIO risk (Bug 889)
*/
- if (NULL == free_recv_list || buffer_shortfall > 0) {
- /*
- * try to get us some more buffers
- */
+ LOCK_F();
+ if (free_recvbufs <= emerg_recvbufs || buffer_shortfall > 0)
create_buffers(RECV_INC);
- }
+ UNLOCK_F();
/*
* try to grab a full buffer
*/
+ LOCK_R();
UNLINK_FIFO(rbuf, full_recv_fifo, link);
- if (rbuf != NULL)
- full_recvbufs--;
- UNLOCK();
+ if (rbuf != NULL && full_recvbufs)
+ --full_recvbufs;
+ UNLOCK_R();
return rbuf;
}
@@ -265,12 +309,18 @@ purge_recv_buffers_for_fd(
recvbuf_t *rbufp;
recvbuf_t *next;
recvbuf_t *punlinked;
+ recvbuf_t *freelist = NULL;
- LOCK();
+ /* We want to hold only one lock at a time. So we do a scan on
+ * the full buffer queue, collecting items as we go, and when
+ * done we spool the the collected items to 'freerecvbuf()'.
+ */
+ LOCK_R();
for (rbufp = HEAD_FIFO(full_recv_fifo);
rbufp != NULL;
- rbufp = next) {
+ rbufp = next)
+ {
next = rbufp->link;
# ifdef HAVE_IO_COMPLETION_PORT
if (rbufp->dstadr == NULL && rbufp->fd == fd)
@@ -281,12 +331,20 @@ purge_recv_buffers_for_fd(
UNLINK_MID_FIFO(punlinked, full_recv_fifo,
rbufp, link, recvbuf_t);
INSIST(punlinked == rbufp);
- full_recvbufs--;
- freerecvbuf(rbufp);
+ if (full_recvbufs)
+ --full_recvbufs;
+ rbufp->link = freelist;
+ freelist = rbufp;
}
}
- UNLOCK();
+ UNLOCK_R();
+
+ while (freelist) {
+ next = freelist->link;
+ freerecvbuf(freelist);
+ freelist = next;
+ }
}
diff --git a/libntp/strdup.c b/libntp/strdup.c
index 62d5a16d433c..8af9ff81b39c 100644
--- a/libntp/strdup.c
+++ b/libntp/strdup.c
@@ -1,13 +1,15 @@
#include <config.h>
#include <ntp_assert.h>
-#include "ntp_malloc.h"
#include <string.h>
+#include "ntp_malloc.h"
+#include "l_stdlib.h"
-#ifndef HAVE_STRDUP
+#define STRDUP_EMPTY_UNIT
+#ifndef HAVE_STRDUP
+# undef STRDUP_EMPTY_UNIT
char *strdup(const char *s);
-
char *
strdup(
const char *s
@@ -24,6 +26,30 @@ strdup(
return cp;
}
-#else
+#endif
+
+#ifndef HAVE_MEMCHR
+# undef STRDUP_EMPTY_UNIT
+void *memchr(const void *s, int c, size_t n)
+{
+ const unsigned char *p = s;
+ while (n && *p != c) {
+ --n;
+ ++p;
+ }
+ return n ? (char*)p : NULL;
+}
+#endif
+
+#ifndef HAVE_STRNLEN
+# undef STRDUP_EMPTY_UNIT
+size_t strnlen(const char *s, size_t n)
+{
+ const char *e = memchr(s, 0, n);
+ return e ? (size_t)(e - s) : n;
+}
+#endif
+
+#ifdef STRDUP_EMPTY_UNIT
int strdup_c_nonempty_compilation_unit;
#endif
diff --git a/libntp/timexsup.c b/libntp/timexsup.c
index 498961f3b3c7..979a7c4aea8e 100644
--- a/libntp/timexsup.c
+++ b/libntp/timexsup.c
@@ -27,13 +27,13 @@ clamp_rounded(
dval = floor(dval + 0.5);
/* clamp / saturate */
- if (dval >= LONG_MAX)
+ if (dval >= (double)LONG_MAX)
return LONG_MAX;
- if (dval <= LONG_MIN)
+ if (dval <= (double)LONG_MIN)
return LONG_MIN;
return (long)dval;
-
}
+
double
dbl_from_var_long(
long lval,
@@ -80,4 +80,3 @@ usec_long_from_dbl(
{
return clamp_rounded(dval * 1e+6);
}
-
diff --git a/ntpd/invoke-ntp.conf.texi b/ntpd/invoke-ntp.conf.texi
index 5ef61c7aaf3a..b504ce0b047f 100644
--- a/ntpd/invoke-ntp.conf.texi
+++ b/ntpd/invoke-ntp.conf.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:40:57 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:20:31 AM by AutoGen 5.18.5
# From the definitions ntp.conf.def
# and the template file agtexi-file.tpl
@end ignore
diff --git a/ntpd/invoke-ntp.keys.texi b/ntpd/invoke-ntp.keys.texi
index 1687d9d6b338..fcaa19499102 100644
--- a/ntpd/invoke-ntp.keys.texi
+++ b/ntpd/invoke-ntp.keys.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:40:59 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:20:33 AM by AutoGen 5.18.5
# From the definitions ntp.keys.def
# and the template file agtexi-file.tpl
@end ignore
diff --git a/ntpd/invoke-ntpd.texi b/ntpd/invoke-ntpd.texi
index 47919ffb2105..3438285956e5 100644
--- a/ntpd/invoke-ntpd.texi
+++ b/ntpd/invoke-ntpd.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:00 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:20:35 AM by AutoGen 5.18.5
# From the definitions ntpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -142,7 +142,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpd - NTP daemon program - Ver. 4.2.8p14
+ntpd - NTP daemon program - Ver. 4.2.8p15
Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ <server1> ... <serverN> ]
Flg Arg Option-Name Description
diff --git a/ntpd/ntp.conf.5man b/ntpd/ntp.conf.5man
index a24c9866d21e..a3649f052106 100644
--- a/ntpd/ntp.conf.5man
+++ b/ntpd/ntp.conf.5man
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5man "03 Mar 2020" "4.2.8p14" "File Formats"
+.TH ntp.conf 5man "23 Jun 2020" "4.2.8p15" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:02 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:36 AM by AutoGen 5.18.5
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpd/ntp.conf.5mdoc b/ntpd/ntp.conf.5mdoc
index 2272d58b2750..c833cf008bad 100644
--- a/ntpd/ntp.conf.5mdoc
+++ b/ntpd/ntp.conf.5mdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_CONF 5mdoc File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:53 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:27 AM by AutoGen 5.18.5
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpd/ntp.conf.html b/ntpd/ntp.conf.html
index 7dc61eda73aa..686ec9981104 100644
--- a/ntpd/ntp.conf.html
+++ b/ntpd/ntp.conf.html
@@ -61,7 +61,7 @@ Next: <a href="#ntp_002econf-Description" accesskey="n" rel="next">ntp.conf Desc
<p>This document describes the configuration file for the NTP Project&rsquo;s
<code>ntpd</code> program.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntp.conf</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntp.conf</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
diff --git a/ntpd/ntp.conf.man.in b/ntpd/ntp.conf.man.in
index f871c3bb17ea..ba4cff523831 100644
--- a/ntpd/ntp.conf.man.in
+++ b/ntpd/ntp.conf.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5 "03 Mar 2020" "4.2.8p14" "File Formats"
+.TH ntp.conf 5 "23 Jun 2020" "4.2.8p15" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:02 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:36 AM by AutoGen 5.18.5
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpd/ntp.conf.mdoc.in b/ntpd/ntp.conf.mdoc.in
index eaaf14cb0942..973e52823e30 100644
--- a/ntpd/ntp.conf.mdoc.in
+++ b/ntpd/ntp.conf.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_CONF 5 File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:53 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:27 AM by AutoGen 5.18.5
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpd/ntp.keys.5man b/ntpd/ntp.keys.5man
index 6225ee3f0ccd..1470ee73a25e 100644
--- a/ntpd/ntp.keys.5man
+++ b/ntpd/ntp.keys.5man
@@ -1,8 +1,8 @@
-.TH ntp.keys 5man "03 Mar 2020" "4.2.8p14" "File Formats"
+.TH ntp.keys 5man "23 Jun 2020" "4.2.8p15" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:04 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:38 AM by AutoGen 5.18.5
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
diff --git a/ntpd/ntp.keys.5mdoc b/ntpd/ntp.keys.5mdoc
index 7a728a3d435f..cec0a573aeb0 100644
--- a/ntpd/ntp.keys.5mdoc
+++ b/ntpd/ntp.keys.5mdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_KEYS 5mdoc File Formats
.Os FreeBSD 11.2-RELEASE_SI
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:54 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:28 AM by AutoGen 5.18.5
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
diff --git a/ntpd/ntp.keys.html b/ntpd/ntp.keys.html
index 015111692627..afe07283b87f 100644
--- a/ntpd/ntp.keys.html
+++ b/ntpd/ntp.keys.html
@@ -61,7 +61,7 @@ Next: <a href="#ntp_002ekeys-Description" accesskey="n" rel="next">ntp.keys Desc
<p>This document describes the symmetric key file for the NTP Project&rsquo;s
<code>ntpd</code> program.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntp.keys</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntp.keys</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
diff --git a/ntpd/ntp.keys.man.in b/ntpd/ntp.keys.man.in
index dac04dda45fd..2437cd1cdab2 100644
--- a/ntpd/ntp.keys.man.in
+++ b/ntpd/ntp.keys.man.in
@@ -1,8 +1,8 @@
-.TH ntp.keys 5 "03 Mar 2020" "4.2.8p14" "File Formats"
+.TH ntp.keys 5 "23 Jun 2020" "4.2.8p15" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:04 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:38 AM by AutoGen 5.18.5
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
diff --git a/ntpd/ntp.keys.mdoc.in b/ntpd/ntp.keys.mdoc.in
index 0cbb20e0f432..f2a8bb98471c 100644
--- a/ntpd/ntp.keys.mdoc.in
+++ b/ntpd/ntp.keys.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_KEYS 5 File Formats
.Os FreeBSD 11.2-RELEASE_SI
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:54 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:28 AM by AutoGen 5.18.5
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
diff --git a/ntpd/ntp_config.c b/ntpd/ntp_config.c
index ee9df318a630..cdc391c1b95b 100644
--- a/ntpd/ntp_config.c
+++ b/ntpd/ntp_config.c
@@ -137,6 +137,16 @@ typedef struct peer_resolved_ctx_tag {
#define MAXPPS 20 /* maximum length of PPS device string */
/*
+ * Poll Skew List
+ */
+
+static psl_item psl[17-3+1]; /* values for polls 3-17 */
+ /* To simplify the runtime code we */
+ /* don't want to have to special-case */
+ /* dealing with a default */
+
+
+/*
* Miscellaneous macros
*/
#define ISEOL(c) ((c) == '#' || (c) == '\n' || (c) == '\0')
diff --git a/ntpd/ntp_io.c b/ntpd/ntp_io.c
index 4ad1c7fbc3e5..c0dcea598121 100644
--- a/ntpd/ntp_io.c
+++ b/ntpd/ntp_io.c
@@ -3293,15 +3293,20 @@ read_refclock_packet(
int consumed;
struct recvbuf * rb;
- rb = get_free_recv_buffer();
+ rb = get_free_recv_buffer(TRUE);
if (NULL == rb) {
/*
- * No buffer space available - just drop the packet
+ * No buffer space available - just drop the 'packet'.
+ * Since this is a non-blocking character stream we read
+ * all data that we can.
+ *
+ * ...hmmmm... what about "tcflush(fd,TCIFLUSH)" here?!?
*/
- char buf[RX_BUFF_SIZE];
-
- buflen = read(fd, buf, sizeof buf);
+ char buf[128];
+ do
+ buflen = read(fd, buf, sizeof(buf));
+ while (buflen > 0);
packets_dropped++;
return (buflen);
}
@@ -3487,15 +3492,18 @@ read_network_packet(
#endif
/*
- * Get a buffer and read the frame. If we
- * haven't got a buffer, or this is received
- * on a disallowed socket, just dump the
+ * Get a buffer and read the frame. If we haven't got a buffer,
+ * or this is received on a disallowed socket, just dump the
* packet.
*/
- rb = get_free_recv_buffer();
- if (NULL == rb || itf->ignore_packets) {
- char buf[RX_BUFF_SIZE];
+ rb = itf->ignore_packets ? NULL : get_free_recv_buffer(FALSE);
+ if (NULL == rb) {
+ /* A partial read on a UDP socket truncates the data and
+ * removes the message from the queue. So there's no
+ * need to have a full buffer here on the stack.
+ */
+ char buf[16];
sockaddr_u from;
if (rb != NULL)
@@ -4740,12 +4748,14 @@ process_routing_msgs(struct asyncio_reader *reader)
#ifdef HAVE_RTNETLINK
for (nh = UA_PTR(struct nlmsghdr, buffer);
NLMSG_OK(nh, cnt);
- nh = NLMSG_NEXT(nh, cnt)) {
+ nh = NLMSG_NEXT(nh, cnt))
+ {
msg_type = nh->nlmsg_type;
#else
for (p = buffer;
(p + sizeof(struct rt_msghdr)) <= (buffer + cnt);
- p += rtm.rtm_msglen) {
+ p += rtm.rtm_msglen)
+ {
memcpy(&rtm, p, sizeof(rtm));
if (rtm.rtm_version != RTM_VERSION) {
msyslog(LOG_ERR,
diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c
index 33e97ef9d989..cde5a30852dd 100644
--- a/ntpd/ntp_proto.c
+++ b/ntpd/ntp_proto.c
@@ -1333,9 +1333,10 @@ receive(
* manycaster has already synchronized to us.
*/
if ( sys_leap == LEAP_NOTINSYNC
- || sys_stratum >= hisstratum
+ || sys_stratum > hisstratum + 1
|| (!sys_cohort && sys_stratum == hisstratum + 1)
|| rbufp->dstadr->addr_refid == pkt->refid) {
+ DPRINTF(2, ("receive: sys leap: %0x, sys_stratum %d > hisstratum+1 %d, !sys_cohort %d && sys_stratum == hisstratum+1, loop refid %#x == pkt refid %#x\n", sys_leap, sys_stratum, hisstratum + 1, !sys_cohort, rbufp->dstadr->addr_refid, pkt->refid));
DPRINTF(2, ("receive: AM_FXMIT drop: LEAP_NOTINSYNC || stratum || loop\n"));
sys_declined++;
return; /* no help */
@@ -1681,8 +1682,9 @@ receive(
* MODE_ACTIVE KoDs, which will time out eventually.
*/
if ( hisleap != LEAP_NOTINSYNC
- && (hisstratum < sys_floor || hisstratum >= sys_ceiling)) {
- DPRINTF(2, ("receive: AM_NEWPASS drop: Autokey group mismatch\n"));
+ && (hisstratum < sys_floor || hisstratum >= sys_ceiling)) {
+ DPRINTF(2, ("receive: AM_NEWPASS drop: Remote stratum (%d) out of range\n",
+ hisstratum));
sys_declined++;
return; /* no help */
}
@@ -2485,10 +2487,6 @@ process_packet(
double etemp, ftemp, td;
#endif /* ASSYM */
-#if 0
- sys_processed++;
- peer->processed++;
-#endif
p_del = FPTOD(NTOHS_FP(pkt->rootdelay));
p_offset = 0;
p_disp = FPTOD(NTOHS_FP(pkt->rootdisp));
@@ -2501,10 +2499,6 @@ process_packet(
pversion = PKT_VERSION(pkt->li_vn_mode);
pstratum = PKT_TO_STRATUM(pkt->stratum);
- /**/
-
- /**/
-
/*
* Verify the server is synchronized; that is, the leap bits,
* stratum and root distance are valid.
@@ -2524,19 +2518,15 @@ process_packet(
peer->seldisptoolarge++;
DPRINTF(1, ("packet: flash header %04x\n",
peer->flash));
-
- /* ppoll updated? */
- /* XXX: Fuzz the poll? */
- poll_update(peer, peer->hpoll, (peer->hmode == MODE_CLIENT));
+ /* [Bug 3592] do *not* update poll on bad packets! */
return;
}
- /**/
-
-#if 1
+ /*
+ * update stats, now that we really handle this packet:
+ */
sys_processed++;
peer->processed++;
-#endif
/*
* Capture the header values in the client/peer association..
@@ -2571,9 +2561,6 @@ process_packet(
if (peer->burst > 0)
peer->nextdate = current_time;
}
- poll_update(peer, peer->hpoll, (peer->hmode == MODE_CLIENT));
-
- /**/
/*
* If the peer was previously unreachable, raise a trap. In any
@@ -3455,11 +3442,13 @@ clock_select(void)
double d, e, f, g;
double high, low;
double speermet;
+ double lastresort_dist = MAXDISPERSE;
double orphmet = 2.0 * U_INT32_MAX; /* 2x is greater than */
struct endpoint endp;
struct peer *osys_peer;
struct peer *sys_prefer = NULL; /* prefer peer */
struct peer *typesystem = NULL;
+ struct peer *typelastresort = NULL;
struct peer *typeorphan = NULL;
#ifdef REFCLOCK
struct peer *typeacts = NULL;
@@ -3524,6 +3513,22 @@ clock_select(void)
}
/*
+ * If we have never been synchronised, look for any peer
+ * which has ever been synchronised and pick the one which
+ * has the lowest root distance. This can be used as a last
+ * resort if all else fails. Once we get an initial sync
+ * with this peer, sys_reftime gets set and so this
+ * function becomes disabled.
+ */
+ if (L_ISZERO(&sys_reftime)) {
+ d = root_distance(peer);
+ if (!L_ISZERO(&peer->reftime) && d < lastresort_dist) {
+ typelastresort = peer;
+ lastresort_dist = d;
+ }
+ }
+
+ /*
* If this peer is an orphan parent, elect the
* one with the lowest metric defined as the
* IPv4 address or the first 64 bits of the
@@ -3756,6 +3761,9 @@ clock_select(void)
if (typeorphan != NULL) {
peers[0].peer = typeorphan;
nlist = 1;
+ } else if (typelastresort != NULL) {
+ peers[0].peer = typelastresort;
+ nlist = 1;
}
}
@@ -3949,8 +3957,7 @@ clock_select(void)
*/
if (typesystem == NULL) {
if (osys_peer != NULL) {
- if (sys_orphwait > 0)
- orphwait = current_time + sys_orphwait;
+ orphwait = current_time + sys_orphwait;
report_event(EVNT_NOPEER, NULL, NULL);
}
sys_peer = NULL;
@@ -5344,7 +5351,7 @@ proto_config(
case PROTO_ORPHWAIT: /* orphan wait (orphwait) */
orphwait -= sys_orphwait;
- sys_orphwait = (int)dvalue;
+ sys_orphwait = (dvalue >= 1) ? (int)dvalue : NTP_ORPHWAIT;
orphwait += sys_orphwait;
break;
diff --git a/ntpd/ntp_refclock.c b/ntpd/ntp_refclock.c
index 6a0861ed03bc..872f4a05263f 100644
--- a/ntpd/ntp_refclock.c
+++ b/ntpd/ntp_refclock.c
@@ -48,15 +48,15 @@
* structure, which contains for most drivers the decimal equivalants
* of the year, day, month, hour, second and millisecond/microsecond
* decoded from the ASCII timecode. Additional information includes
- * the receive timestamp, exception report, statistics tallies, etc.
+ * the receive timestamp, exception report, statistics tallies, etc.
* In addition, there may be a driver-specific unit structure used for
* local control of the device.
*
* The support routines are passed a pointer to the peer structure,
* which is used for all peer-specific processing and contains a
* pointer to the refclockproc structure, which in turn contains a
- * pointer to the unit structure, if used. The peer structure is
- * identified by an interface address in the dotted quad form
+ * pointer to the unit structure, if used. The peer structure is
+ * identified by an interface address in the dotted quad form
* 127.127.t.u, where t is the clock type and u the unit.
*/
#define FUDGEFAC .1 /* fudge correction factor */
@@ -343,7 +343,7 @@ refclock_timer(
if (pp->action != NULL && pp->nextaction <= current_time)
(*pp->action)(p);
}
-
+
/*
* refclock_transmit - simulate the transmit procedure
@@ -435,17 +435,17 @@ refclock_samples_avail(
)
{
u_int na;
-
+
# if MAXSTAGE & (MAXSTAGE - 1)
-
+
na = pp->coderecv - pp->codeproc;
if (na > MAXSTAGE)
na += MAXSTAGE;
-
+
# else
-
+
na = (pp->coderecv - pp->codeproc) & (MAXSTAGE - 1);
-
+
# endif
return na;
}
@@ -462,26 +462,26 @@ refclock_samples_expire(
)
{
u_int na;
-
+
if (nd <= 0)
return 0;
# if MAXSTAGE & (MAXSTAGE - 1)
-
+
na = pp->coderecv - pp->codeproc;
if (na > MAXSTAGE)
na += MAXSTAGE;
if ((u_int)nd < na)
- nd = na;
+ nd = na;
pp->codeproc = (pp->codeproc + nd) % MAXSTAGE;
-
+
# else
-
+
na = (pp->coderecv - pp->codeproc) & (MAXSTAGE - 1);
if ((u_int)nd > na)
nd = (int)na;
pp->codeproc = (pp->codeproc + nd) & (MAXSTAGE - 1);
-
+
# endif
return nd;
}
@@ -615,14 +615,14 @@ refclock_sample(
/*
* Determine the offset and jitter.
*/
- pp->offset = 0;
+ pp->offset = off[i];
pp->jitter = 0;
- for (k = i; k < j; k++) {
+ for (k = i + 1; k < j; k++) {
pp->offset += off[k];
- if (k > i)
- pp->jitter += SQUARE(off[k] - off[k - 1]);
+ pp->jitter += SQUARE(off[k] - off[k - 1]);
}
pp->offset /= m;
+ m -= (m > 1); /* only (m-1) terms attribute to jitter! */
pp->jitter = max(SQRT(pp->jitter / m), LOGTOD(sys_precision));
/*
@@ -736,7 +736,7 @@ refclock_gtlin(
while (sp != spend && dp != dpend) {
char c;
-
+
c = *sp++ & 0x7f;
if (c >= 0x20 && c < 0x7f)
*dp++ = c;
@@ -1407,7 +1407,7 @@ refclock_params(
ap->pps_params.mode & ~PPS_TSFMT_TSPEC,
PPS_TSFMT_TSPEC) < 0)
{
- if (errno != EOPNOTSUPP) {
+ if (errno != EOPNOTSUPP) {
msyslog(LOG_ERR,
"refclock_params: time_pps_kcbind: %m");
return (0);
@@ -1431,7 +1431,7 @@ int
refclock_pps(
struct peer *peer, /* peer structure pointer */
struct refclock_atom *ap, /* atom structure pointer */
- int mode /* mode bits */
+ int mode /* mode bits */
)
{
struct refclockproc *pp;
@@ -1443,7 +1443,7 @@ refclock_pps(
* We require the clock to be synchronized before setting the
* parameters. When the parameters have been set, fetch the
* most recent PPS timestamp.
- */
+ */
pp = peer->procptr;
if (ap->handle == 0)
return (0);
@@ -1519,7 +1519,7 @@ refclock_pps(
pp->lastrec.l_uf = (u_int32)(dtemp * FRAC);
clk_add_sample(pp, dcorr);
refclock_checkburst(peer, pp);
-
+
#ifdef DEBUG
if (debug > 1)
printf("refclock_pps: %lu %f %f\n", current_time,
@@ -1579,7 +1579,7 @@ refclock_ppsaugment(
)
{
l_fp delta[1];
-
+
#ifdef HAVE_PPSAPI
pps_info_t pps_info;
@@ -1589,14 +1589,14 @@ refclock_ppsaugment(
static const uint32_t s_plim_hi = UINT32_C(1932735284);
static const uint32_t s_plim_lo = UINT32_C(2362232013);
-
+
/* fixup receive time in case we have to bail out early */
DTOLFP(rcvfudge, delta);
L_SUB(rcvtime, delta);
if (NULL == ap)
return FALSE;
-
+
ZERO(timeout);
ZERO(pps_info);
@@ -1630,7 +1630,7 @@ refclock_ppsaugment(
phase = delta->l_ui;
if (phase >= 2 && phase < (uint32_t)-2)
return FALSE; /* PPS is stale, don't use it */
-
+
/* If the phase is too close to 0.5, the decision whether to
* move up or down is becoming noise sensitive. That is, we
* might amplify usec noise between samples into seconds with a
@@ -1642,7 +1642,7 @@ refclock_ppsaugment(
phase = delta->l_uf;
if (phase > s_plim_hi && phase < s_plim_lo)
return FALSE; /* we're in the noise lock gap */
-
+
/* sign-extend fraction into seconds */
delta->l_ui = UINT32_C(0) - ((phase >> 31) & 1);
/* add it up now */
@@ -1650,7 +1650,7 @@ refclock_ppsaugment(
return TRUE;
# else /* have no PPS support at all */
-
+
/* just fixup receive time and fail */
UNUSED_ARG(ap);
UNUSED_ARG(ppsfudge);
@@ -1658,7 +1658,7 @@ refclock_ppsaugment(
DTOLFP(rcvfudge, delta);
L_SUB(rcvtime, delta);
return FALSE;
-
+
# endif
}
@@ -1694,7 +1694,7 @@ refclock_checkburst(
* reach mask. With less samples available, we break away.
*/
needs = peer->reach;
- needs -= (needs >> 1) & 0x55;
+ needs -= (needs >> 1) & 0x55;
needs = (needs & 0x33) + ((needs >> 2) & 0x33);
needs = (needs + (needs >> 4)) & 0x0F;
if (needs > 6)
@@ -1706,7 +1706,7 @@ refclock_checkburst(
/* Get serious. Reduce the poll to minimum and schedule early.
* (Changing the peer poll is probably in vain, as it will be
- * re-adjusted, but maybe some time the hint will work...)
+ * re-adjusted, but maybe some time the hint will work...)
*/
peer->hpoll = peer->minpoll;
peer->nextdate = limit;
@@ -1749,7 +1749,7 @@ refclock_vformat_lcode(
len = 0;
else if (len >= sizeof(pp->a_lastcode))
len = sizeof(pp->a_lastcode) - 1;
-
+
pp->lencode = (u_short)len;
pp->a_lastcode[len] = '\0';
/* !note! the NUL byte is needed in case vsnprintf() really fails */
@@ -1763,10 +1763,10 @@ refclock_format_lcode(
)
{
va_list va;
-
+
va_start(va, fmt);
refclock_vformat_lcode(pp, fmt, va);
- va_end(va);
+ va_end(va);
}
#endif /* REFCLOCK */
diff --git a/ntpd/ntp_request.c b/ntpd/ntp_request.c
index bffdec5a9d1d..e7997a3b9095 100644
--- a/ntpd/ntp_request.c
+++ b/ntpd/ntp_request.c
@@ -1184,7 +1184,7 @@ mem_stats(
for (i = 0; i < NTP_HASH_SIZE; i++)
ms->hashcount[i] = (u_char)
- max((u_int)peer_hash_count[i], UCHAR_MAX);
+ min((u_int)peer_hash_count[i], UCHAR_MAX);
(void) more_pkt();
flush_pkt();
diff --git a/ntpd/ntp_timer.c b/ntpd/ntp_timer.c
index 9725b5bda312..4f669f0699fa 100644
--- a/ntpd/ntp_timer.c
+++ b/ntpd/ntp_timer.c
@@ -350,21 +350,38 @@ timer(void)
* than the orphan stratum are available. A server with no other
* synchronization source is an orphan. It shows offset zero and
* reference ID the loopback address.
+ *
+ * [bug 3644] If the orphan stratum is >= STRATUM_UNSPEC, we
+ * have to do it a bit different. 'clock_select()' simply
+ * tiptoed home, but since we're unsync'd and have no peer, we
+ * should eventually declare we're out of sync. Otherwise we
+ * would persistently claim we're good, and we're everything but
+ * that...
+ *
+ * XXX: do we want to log an event about this?
*/
- if (sys_orphan < STRATUM_UNSPEC && sys_peer == NULL &&
- current_time > orphwait) {
- if (sys_leap == LEAP_NOTINSYNC) {
- set_sys_leap(LEAP_NOWARNING);
+ if (sys_peer == NULL && current_time > orphwait) {
+ if (sys_orphan < STRATUM_UNSPEC) {
+ if (sys_leap == LEAP_NOTINSYNC) {
+ set_sys_leap(LEAP_NOWARNING);
#ifdef AUTOKEY
- if (crypto_flags)
- crypto_update();
+ if (crypto_flags)
+ crypto_update();
#endif /* AUTOKEY */
+ }
+ sys_stratum = (u_char)sys_orphan;
+ } else {
+ if (sys_leap != LEAP_NOTINSYNC) {
+ set_sys_leap(LEAP_NOTINSYNC);
+ msyslog(LOG_WARNING, "%s",
+ "no peer for too long, server running free now");
+ }
+ sys_stratum = STRATUM_UNSPEC;
}
- sys_stratum = (u_char)sys_orphan;
if (sys_stratum > 1)
- sys_refid = htonl(LOOPBACKADR);
+ sys_refid = htonl(LOOPBACKADR);
else
- memcpy(&sys_refid, "LOOP", 4);
+ memcpy(&sys_refid, "LOOP", 4);
sys_offset = 0;
sys_rootdelay = 0;
sys_rootdisp = 0;
diff --git a/ntpd/ntpd-opts.c b/ntpd/ntpd-opts.c
index e463b4b4822f..42b2a7722cc1 100644
--- a/ntpd/ntpd-opts.c
+++ b/ntpd/ntpd-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:40:30 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:04 AM by AutoGen 5.18.5
* From the definitions ntpd-opts.def
* and the template file options
*
@@ -75,7 +75,7 @@ extern FILE * option_usage_fp;
* static const strings for ntpd options
*/
static char const ntpd_opt_strs[3132] =
-/* 0 */ "ntpd 4.2.8p14\n"
+/* 0 */ "ntpd 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -205,12 +205,12 @@ static char const ntpd_opt_strs[3132] =
/* 2901 */ "output version information and exit\0"
/* 2937 */ "version\0"
/* 2945 */ "NTPD\0"
-/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p14\n"
+/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ <server1> ... <serverN> ]\n\0"
/* 3082 */ "http://bugs.ntp.org, bugs@ntp.org\0"
/* 3116 */ "\n\0"
-/* 3118 */ "ntpd 4.2.8p14";
+/* 3118 */ "ntpd 4.2.8p15";
/**
* ipv4 option description with
@@ -1529,7 +1529,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpdOptions.pzCopyright */
- puts(_("ntpd 4.2.8p14\n\
+ puts(_("ntpd 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -1670,7 +1670,7 @@ implied warranty.\n"));
puts(_("output version information and exit"));
/* referenced via ntpdOptions.pzUsageTitle */
- puts(_("ntpd - NTP daemon program - Ver. 4.2.8p14\n\
+ puts(_("ntpd - NTP daemon program - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ <server1> ... <serverN> ]\n"));
@@ -1678,7 +1678,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
puts(_("\n"));
/* referenced via ntpdOptions.pzFullVersion */
- puts(_("ntpd 4.2.8p14"));
+ puts(_("ntpd 4.2.8p15"));
/* referenced via ntpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpd/ntpd-opts.h b/ntpd/ntpd-opts.h
index a2e1904003c0..07cdc2e3e54b 100644
--- a/ntpd/ntpd-opts.h
+++ b/ntpd/ntpd-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:40:30 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:04 AM by AutoGen 5.18.5
* From the definitions ntpd-opts.def
* and the template file options
*
@@ -106,9 +106,9 @@ typedef enum {
/** count of all options for ntpd */
#define OPTION_CT 38
/** ntpd version */
-#define NTPD_VERSION "4.2.8p14"
+#define NTPD_VERSION "4.2.8p15"
/** Full ntpd version text */
-#define NTPD_FULL_VERSION "ntpd 4.2.8p14"
+#define NTPD_FULL_VERSION "ntpd 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpd/ntpd.1ntpdman b/ntpd/ntpd.1ntpdman
index 675bd799bd90..461f37d43be8 100644
--- a/ntpd/ntpd.1ntpdman
+++ b/ntpd/ntpd.1ntpdman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd 1ntpdman "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpd 1ntpdman "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:05 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:39 AM by AutoGen 5.18.5
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpd/ntpd.1ntpdmdoc b/ntpd/ntpd.1ntpdmdoc
index 8d06869e5afc..60703324ea10 100644
--- a/ntpd/ntpd.1ntpdmdoc
+++ b/ntpd/ntpd.1ntpdmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPD 1ntpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:55 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:30 AM by AutoGen 5.18.5
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpd/ntpd.html b/ntpd/ntpd.html
index 4ac6127dda45..f002faa2ac5e 100644
--- a/ntpd/ntpd.html
+++ b/ntpd/ntpd.html
@@ -67,7 +67,7 @@ The program can operate in any of several modes, including client/server,
symmetric and broadcast modes, and with both symmetric-key and public-key
cryptography.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntpd</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntpd</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -309,7 +309,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p14
+<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p15
Usage: ntpd [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... \
[ &lt;server1&gt; ... &lt;serverN&gt; ]
Flg Arg Option-Name Description
diff --git a/ntpd/ntpd.man.in b/ntpd/ntpd.man.in
index 087af030cf20..00c567f508df 100644
--- a/ntpd/ntpd.man.in
+++ b/ntpd/ntpd.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd @NTPD_MS@ "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpd @NTPD_MS@ "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:05 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:39 AM by AutoGen 5.18.5
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpd/ntpd.mdoc.in b/ntpd/ntpd.mdoc.in
index 9f360073d332..8eb547a438f6 100644
--- a/ntpd/ntpd.mdoc.in
+++ b/ntpd/ntpd.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPD @NTPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:55 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:30 AM by AutoGen 5.18.5
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpd/refclock_jjy.c b/ntpd/refclock_jjy.c
index a73cdd88948d..0b554fac6674 100644
--- a/ntpd/refclock_jjy.c
+++ b/ntpd/refclock_jjy.c
@@ -4,7 +4,7 @@
/**********************************************************************/
/* */
-/* Copyright (C) 2001-2015, Takao Abe. All rights reserved. */
+/* Copyright (C) 2001-2020, Takao Abe. All rights reserved. */
/* */
/* Permission to use, copy, modify, and distribute this software */
/* and its documentation for any purpose is hereby granted */
@@ -115,6 +115,13 @@
/* tool. ( The code is harmless and has no bug. ) */
/* teljjy_conn_send() */
/* */
+/* 2020/01/19 */
+/* [Change] Handling TS-JJY01/02 status of the the STUS reply. */
+/* Time synchronization can be skipped by the settings of */
+/* the flag2 when the status of the reply is UNADJUSTED. */
+/* [Change] Quiet compilation for the GCC 9.2.0. */
+/* [Fix] Correct typos in comment lines */
+/* */
/**********************************************************************/
#ifdef HAVE_CONFIG_H
@@ -194,6 +201,10 @@ struct jjyunit {
char sTextBuf [ MAX_RAWBUF ] ;
int iTextBufLen ;
char bSkipCntrlCharOnly ;
+/* TS-JJY01, TS-JJY02 */
+ time_t tLastAdjustedTimestamp ;
+ char bStusReplyAdjusted ;
+ char bStusReplyAdjustedAtLeastOnce ;
/* Telephone JJY auto measurement of the loopback delay */
char bLoopbackMode ;
short iLoopbackCount ;
@@ -371,7 +382,7 @@ struct refclock refclock_jjy = {
* Local constants definition
*/
-#define MAX_LOGTEXT 100
+#define MAX_LOGTEXT 200
#ifndef TRUE
#define TRUE (0==0)
@@ -410,6 +421,7 @@ struct refclock refclock_jjy = {
#define JJY_CLOCKSTATS_MESSAGE_LOOPBACK_DELAY "* Loopback delay : %d.%03d mSec."
#define JJY_CLOCKSTATS_MESSAGE_DELAY_ADJUST "* Delay adjustment : %d mSec. ( valid=%hd/%d )"
#define JJY_CLOCKSTATS_MESSAGE_DELAY_UNADJUST "* Delay adjustment : None ( valid=%hd/%d )"
+#define JJY_CLOCKSTATS_MESSAGE_STUS_UNADJUSTED "* Skip time synchronization : STUS is 'UNADJUSTED' for %.0lf %s"
#define JJY_CLOCKSTATS_MESSAGE_UNEXPECTED_REPLY "# Unexpected reply : [%s]"
#define JJY_CLOCKSTATS_MESSAGE_INVALID_LENGTH "# Invalid length : length=%d"
@@ -619,7 +631,7 @@ jjy_receive ( struct recvbuf *rbufp )
/* To avoid its claim, pass the value BMAX-1. */
/*
- * Append received charaters to temporary buffer
+ * Append received characters to temporary buffer
*/
for ( i = 0 ;
i < pp->lencode && up->iRawBufLen < MAX_RAWBUF - 2 ;
@@ -703,7 +715,7 @@ jjy_receive ( struct recvbuf *rbufp )
iBreakPosition = up->iRawBufLen - 1 ;
}
- /* Copy charaters from temporary buffer to process buffer */
+ /* Copy characters from temporary buffer to process buffer */
up->iLineBufLen = up->iTextBufLen = 0 ;
for ( i = iReadRawBuf ; i <= iBreakPosition ; i ++ ) {
@@ -926,7 +938,7 @@ jjy_poll ( int unit, struct peer *peer )
up->iRawBufLen = 0 ;
switch ( up->unittype ) {
-
+
case UNITTYPE_TRISTATE_JJY01 :
jjy_poll_tristate_jjy01 ( unit, peer ) ;
break ;
@@ -991,7 +1003,7 @@ jjy_timer ( int unit, struct peer *peer )
}
switch ( up->unittype ) {
-
+
case UNITTYPE_TELEPHONE :
jjy_timer_telephone ( unit, peer ) ;
break ;
@@ -1020,8 +1032,8 @@ jjy_synctime ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
pp->second = up->second ;
pp->nsec = up->msecond * 1000000 ;
- /*
- * JST to UTC
+ /*
+ * JST to UTC
*/
pp->hour -= 9 ;
if ( pp->hour < 0 ) {
@@ -1070,7 +1082,7 @@ jjy_synctime ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
case 5 : cStatus = '#' ; pStatus = "Selected" ; break ;
case 6 : cStatus = '*' ; pStatus = "Sys.Peer" ; break ;
case 7 : cStatus = 'o' ; pStatus = "PPS.Peer" ; break ;
- default : break ;
+ default : break ;
}
snprintf ( sLog, sizeof(sLog),
@@ -1151,6 +1163,9 @@ jjy_start_tristate_jjy01 ( int unit, struct peer *peer, struct jjyunit *up )
up->linespeed = SPEED232_TRISTATE_JJY01 ;
up->linediscipline = LDISC_CLK ;
+ time( &(up->tLastAdjustedTimestamp) ) ;
+ up->bStusReplyAdjustedAtLeastOnce = FALSE ;
+
return 0 ;
}
@@ -1164,10 +1179,12 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
struct refclockproc *pp ;
struct peer *peer;
- char * pBuf ;
- char sLog [ 100 ] ;
- int iLen ;
- int rc ;
+ char * pBuf ;
+ char sLog [ MAX_LOGTEXT ] ;
+ int iLen ;
+ int rc ;
+ time_t now ;
+ double fSeconds ;
const char * pCmd ;
int iCmdLen ;
@@ -1269,11 +1286,17 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
case TS_JJY01_COMMAND_NUMBER_STUS :
if ( strncmp( pBuf, TS_JJY01_REPLY_STUS_ADJUSTED,
- TS_JJY01_REPLY_LENGTH_STUS_ADJUSTED ) == 0
- || strncmp( pBuf, TS_JJY01_REPLY_STUS_UNADJUSTED,
- TS_JJY01_REPLY_LENGTH_STUS_UNADJUSTED ) == 0 ) {
- /* Good */
+ TS_JJY01_REPLY_LENGTH_STUS_ADJUSTED ) == 0 ) {
+ /* STUS reply : adjusted */
+ up->bStusReplyAdjusted = TRUE ;
+ up->bStusReplyAdjustedAtLeastOnce = TRUE ;
+ time( &(up->tLastAdjustedTimestamp) ) ;
+ } else if ( strncmp( pBuf, TS_JJY01_REPLY_STUS_UNADJUSTED,
+ TS_JJY01_REPLY_LENGTH_STUS_UNADJUSTED ) == 0 ) {
+ /* STUS reply : unadjusted */
+ up->bStusReplyAdjusted = FALSE ;
} else {
+ /* Bad reply */
snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_INVALID_REPLY,
pBuf ) ;
jjy_write_clockstats( peer, JJY_CLOCKSTATS_MARK_ERROR, sLog ) ;
@@ -1286,11 +1309,12 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
case TS_JJY01_COMMAND_NUMBER_DCST :
if ( strncmp( pBuf, TS_JJY01_REPLY_DCST_VALID,
- TS_JJY01_REPLY_LENGTH_DCST_VALID ) == 0
+ TS_JJY01_REPLY_LENGTH_DCST_VALID ) == 0
|| strncmp( pBuf, TS_JJY01_REPLY_DCST_INVALID,
- TS_JJY01_REPLY_LENGTH_DCST_INVALID ) == 0 ) {
- /* Good */
+ TS_JJY01_REPLY_LENGTH_DCST_INVALID ) == 0 ) {
+ /* Valid reply */
} else {
+ /* Bad reply */
snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_INVALID_REPLY,
pBuf ) ;
jjy_write_clockstats( peer, JJY_CLOCKSTATS_MARK_ERROR, sLog ) ;
@@ -1300,7 +1324,7 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
break ;
- default : /* Unexpected reply */
+ default : /* Unexpected reply */
snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_INVALID_REPLY,
pBuf ) ;
@@ -1313,9 +1337,27 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
if ( up->iTimestampCount == 2 ) {
/* Process date and time */
- if ( up->iTimestamp[1] - 2 <= up->iTimestamp[0]
- && up->iTimestamp[0] <= up->iTimestamp[1] ) {
- /* 3 commands (time,date,stim) was excuted in two seconds */
+ time( &now ) ;
+ fSeconds = difftime( now, up->tLastAdjustedTimestamp ) ;
+
+ if ( ( pp->sloppyclockflag & CLK_FLAG2 ) != 0
+ && ( ! up->bStusReplyAdjusted )
+ && ( fSeconds >= ( pp->fudgetime2 * 3600 ) || ( ! up->bStusReplyAdjustedAtLeastOnce ) ) ) {
+ /* STUS is not ADJUSTED */
+ if ( fSeconds < 60 ) {
+ snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_STUS_UNADJUSTED, fSeconds, "seconds" ) ;
+ } else if ( fSeconds < 3600 ) {
+ snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_STUS_UNADJUSTED, fSeconds / 60, "minutes" ) ;
+ } else if ( fSeconds < 86400 ) {
+ snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_STUS_UNADJUSTED, fSeconds / 3600, "hours" ) ;
+ } else {
+ snprintf( sLog, sizeof(sLog)-1, JJY_CLOCKSTATS_MESSAGE_STUS_UNADJUSTED, fSeconds / 86400, "days" ) ;
+ }
+ jjy_write_clockstats( peer, JJY_CLOCKSTATS_MARK_INFORMATION, sLog ) ;
+ return JJY_RECEIVE_SKIP ;
+ } else if ( up->iTimestamp[1] - 2 <= up->iTimestamp[0]
+ && up->iTimestamp[0] <= up->iTimestamp[1] ) {
+ /* 3 commands (time,date,stim) was executed in two seconds */
jjy_synctime( peer, pp, up ) ;
return JJY_RECEIVE_DONE ;
} else if ( up->iTimestamp[0] > up->iTimestamp[1] ) {
@@ -1385,6 +1427,8 @@ jjy_poll_tristate_jjy01 ( int unit, struct peer *peer )
up->iLineCount = 2 ;
}
+ up->bStusReplyAdjusted = FALSE ;
+
#ifdef DEBUG
if ( debug ) {
printf ( "%s (refclock_jjy.c) : flag1=%X CLK_FLAG1=%X up->iLineCount=%d\n",
@@ -1421,7 +1465,7 @@ jjy_poll_tristate_jjy01 ( int unit, struct peer *peer )
/* */
/* Command Response Remarks */
/* -------------------- ---------------------------------------- ---------------------------- */
-/* <ENQ>1J<ETX> <STX>JYYMMDD HHMMSSS<ETX> J is a fixed character */
+/* <ENQ>1J<ETX> <STX>JYYMMDDWHHMMSSS<ETX> J is a fixed character */
/* */
/*################################################################################################*/
@@ -1461,7 +1505,7 @@ jjy_receive_cdex_jst2000 ( struct recvbuf *rbufp )
struct refclockproc *pp ;
struct peer *peer ;
- char *pBuf, sLog [ 100 ] ;
+ char *pBuf, sLog [ MAX_LOGTEXT ] ;
int iLen ;
int rc ;
@@ -1946,8 +1990,8 @@ jjy_poll_citizentic_jjy200 ( int unit, struct peer *peer )
/*################################################################################################*/
/*################################################################################################*/
/* */
-/* This clock has NMEA mode and command/respose mode. */
-/* When this jjy driver are used, set to command/respose mode of this clock */
+/* This clock has NMEA mode and command/response mode. */
+/* When this jjy driver are used, set to command/response mode of this clock */
/* by the onboard switch SW4, and make sure the LED-Y is tured on. */
/* Other than this JJY driver, the refclock driver type 20, generic NMEA driver, */
/* works with the NMEA mode of this clock. */
@@ -2022,7 +2066,7 @@ jjy_receive_tristate_gpsclock01 ( struct recvbuf *rbufp )
struct peer *peer;
char * pBuf ;
- char sLog [ 100 ] ;
+ char sLog [ MAX_LOGTEXT ] ;
int iLen ;
int rc ;
@@ -2189,7 +2233,7 @@ jjy_receive_tristate_gpsclock01 ( struct recvbuf *rbufp )
if ( up->iTimestamp[1] - 2 <= up->iTimestamp[0]
&& up->iTimestamp[0] <= up->iTimestamp[1] ) {
- /* 3 commands (time,date,stim) was excuted in two seconds */
+ /* 3 commands (time,date,stim) was executed in two seconds */
jjy_synctime( peer, pp, up ) ;
return JJY_RECEIVE_DONE ;
} else if ( up->iTimestamp[0] > up->iTimestamp[1] ) {
@@ -2344,7 +2388,7 @@ jjy_receive_seiko_tsys_tdc_300 ( struct recvbuf *rbufp )
struct refclockproc *pp ;
struct jjyunit *up ;
- char *pBuf, sLog [ 100 ] ;
+ char *pBuf, sLog [ MAX_LOGTEXT ] ;
int iLen, i ;
int rc, iWeekday ;
time_t now ;
@@ -3402,7 +3446,7 @@ teljjy_conn_data ( struct peer *peer, struct refclockproc *pp, struct jjyunit *u
char *pBuf ;
int iLen, rc ;
- char sLog [ 80 ] ;
+ char sLog [ MAX_LOGTEXT ] ;
char bAdjustment ;
diff --git a/ntpd/refclock_nmea.c b/ntpd/refclock_nmea.c
index 4fdadea61dff..1d7997c6aaf9 100644
--- a/ntpd/refclock_nmea.c
+++ b/ntpd/refclock_nmea.c
@@ -289,7 +289,7 @@ static int nmea_start (int, struct peer *);
static void nmea_shutdown (int, struct peer *);
static void nmea_receive (struct recvbuf *);
static void nmea_poll (int, struct peer *);
-static void nmea_procrec (struct peer *, l_fp);
+static void nmea_procrec (struct peer * const, l_fp);
#ifdef HAVE_PPSAPI
static double tabsdiffd (l_fp, l_fp);
static void nmea_control (int, const struct refclockstat *,
diff --git a/ntpd/refclock_palisade.c b/ntpd/refclock_palisade.c
index e698d72cc521..cb68255d05b0 100644
--- a/ntpd/refclock_palisade.c
+++ b/ntpd/refclock_palisade.c
@@ -304,13 +304,13 @@ palisade_start (
int fd;
char gpsdev[20];
struct termios tio;
+ u_int speed;
snprintf(gpsdev, sizeof(gpsdev), DEVICE, unit);
/*
* Open serial port.
*/
- u_int speed;
speed = (CLK_TYPE(peer) == CLK_COPERNICUS) ? SPEED232COP : SPEED232;
fd = refclock_open(gpsdev, speed, LDISC_RAW);
if (fd <= 0) {
@@ -941,30 +941,32 @@ TSIP_decode (
return 0;
}
/* Get date & time from WN & ToW minus offset */
- TCivilDate cd;
- TGpsDatum wd;
- l_fp ugo; /* UTC-GPS offset, negative number */
- ugo.Ul_i.Xl_i = (int32_t)-GPS_UTC_Offset;
- ugo.l_uf = 0;
- wd = gpscal_from_gpsweek((wn % 1024), (int32_t)tow, ugo);
- gpscal_to_calendar(&cd, &wd);
- pp->year = cd.year;
- pp->day = cd.yearday;
- pp->hour = cd.hour;
- pp->minute = cd.minute;
- pp->second = cd.second;
- pp->nsec = 0;
- pp->leap = LEAP_NOWARNING;
+ {
+ TCivilDate cd;
+ TGpsDatum wd;
+ l_fp ugo; /* UTC-GPS offset, negative number */
+ ugo.Ul_i.Xl_i = (int32_t)-GPS_UTC_Offset;
+ ugo.l_uf = 0;
+ wd = gpscal_from_gpsweek((wn % 1024), (int32_t)tow, ugo);
+ gpscal_to_calendar(&cd, &wd);
+ pp->year = cd.year;
+ pp->day = cd.yearday;
+ pp->hour = cd.hour;
+ pp->minute = cd.minute;
+ pp->second = cd.second;
+ pp->nsec = 0;
+ pp->leap = LEAP_NOWARNING;
#ifdef DEBUG
- if (debug > 1) {
- printf("GPS TOW: %ld\n", tow);
- printf("GPS WN: %d\n", wn);
- printf("GPS UTC-GPS Offset: %d\n", GPS_UTC_Offset);
- printf("TSIP_decode: unit %d: %02X #%d %02d:%02d:%02d.%09ld %02d/%02d/%04d ",
- up->unit, mb(0) & 0xff, event, pp->hour, pp->minute, pp->second,
- pp->nsec, cd.month, cd.monthday, pp->year);
- }
+ if (debug > 1) {
+ printf("GPS TOW: %ld\n", tow);
+ printf("GPS WN: %d\n", wn);
+ printf("GPS UTC-GPS Offset: %d\n", GPS_UTC_Offset);
+ printf("TSIP_decode: unit %d: %02X #%d %02d:%02d:%02d.%09ld %02d/%02d/%04d ",
+ up->unit, mb(0) & 0xff, event, pp->hour, pp->minute, pp->second,
+ pp->nsec, cd.month, cd.monthday, pp->year);
+ }
#endif
+ }
return 1;
}
diff --git a/ntpd/refclock_parse.c b/ntpd/refclock_parse.c
index b4a65b80377f..043bc8673c7e 100644
--- a/ntpd/refclock_parse.c
+++ b/ntpd/refclock_parse.c
@@ -2366,7 +2366,7 @@ local_input(
}
if (count)
{ /* simulate receive */
- buf = get_free_recv_buffer();
+ buf = get_free_recv_buffer(TRUE);
if (buf != NULL) {
memmove((caddr_t)buf->recv_buffer,
(caddr_t)&parse->parseio.parse_dtime,
diff --git a/ntpdate/ntpdate.c b/ntpdate/ntpdate.c
index f6c5156ee20a..fd48604c912b 100644
--- a/ntpdate/ntpdate.c
+++ b/ntpdate/ntpdate.c
@@ -1984,7 +1984,7 @@ input_handler(void)
continue;
}
- rb = get_free_recv_buffer();
+ rb = get_free_recv_buffer(TRUE);
fromlen = sizeof(rb->recv_srcadr);
rb->recv_length = recvfrom(fdc, (char *)&rb->recv_pkt,
@@ -2013,7 +2013,7 @@ l_adj_systime(
l_fp *ts
)
{
- struct timeval adjtv, oadjtv;
+ struct timeval adjtv;
int isneg = 0;
l_fp offset;
#ifndef STEP_SLEW
@@ -2053,6 +2053,7 @@ l_adj_systime(
/* A time correction needs to be applied. */
#if !defined SYS_WINNT && !defined SYS_CYGWIN32
/* Slew the time on systems that support this. */
+ struct timeval oadjtv;
if (adjtime(&adjtv, &oadjtv) < 0) {
msyslog(LOG_ERR, "Can't adjust the time of day: %m");
exit(1);
diff --git a/ntpdc/invoke-ntpdc.texi b/ntpdc/invoke-ntpdc.texi
index e0eadb7aac0a..f37dfe572f70 100644
--- a/ntpdc/invoke-ntpdc.texi
+++ b/ntpdc/invoke-ntpdc.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:11 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:20:45 AM by AutoGen 5.18.5
# From the definitions ntpdc-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -76,7 +76,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p14
+ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p15
Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
diff --git a/ntpdc/ntpdc-opts.c b/ntpdc/ntpdc-opts.c
index 88d04ea6028f..b5eda1138aaa 100644
--- a/ntpdc/ntpdc-opts.c
+++ b/ntpdc/ntpdc-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:07 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:41 AM by AutoGen 5.18.5
* From the definitions ntpdc-opts.def
* and the template file options
*
@@ -69,7 +69,7 @@ extern FILE * option_usage_fp;
* static const strings for ntpdc options
*/
static char const ntpdc_opt_strs[1914] =
-/* 0 */ "ntpdc 4.2.8p14\n"
+/* 0 */ "ntpdc 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -128,14 +128,14 @@ static char const ntpdc_opt_strs[1914] =
/* 1695 */ "no-load-opts\0"
/* 1708 */ "no\0"
/* 1711 */ "NTPDC\0"
-/* 1717 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p14\n"
+/* 1717 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
/* 1848 */ "$HOME\0"
/* 1854 */ ".\0"
/* 1856 */ ".ntprc\0"
/* 1863 */ "http://bugs.ntp.org, bugs@ntp.org\0"
/* 1897 */ "\n\0"
-/* 1899 */ "ntpdc 4.2.8p14";
+/* 1899 */ "ntpdc 4.2.8p15";
/**
* ipv4 option description with
@@ -796,7 +796,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpdcOptions.pzCopyright */
- puts(_("ntpdc 4.2.8p14\n\
+ puts(_("ntpdc 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -862,14 +862,14 @@ implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpdcOptions.pzUsageTitle */
- puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p14\n\
+ puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpdcOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpdcOptions.pzFullVersion */
- puts(_("ntpdc 4.2.8p14"));
+ puts(_("ntpdc 4.2.8p15"));
/* referenced via ntpdcOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpdc/ntpdc-opts.h b/ntpdc/ntpdc-opts.h
index 36e736e8ec5b..9c7659e4735f 100644
--- a/ntpdc/ntpdc-opts.h
+++ b/ntpdc/ntpdc-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:07 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:41 AM by AutoGen 5.18.5
* From the definitions ntpdc-opts.def
* and the template file options
*
@@ -83,9 +83,9 @@ typedef enum {
/** count of all options for ntpdc */
#define OPTION_CT 15
/** ntpdc version */
-#define NTPDC_VERSION "4.2.8p14"
+#define NTPDC_VERSION "4.2.8p15"
/** Full ntpdc version text */
-#define NTPDC_FULL_VERSION "ntpdc 4.2.8p14"
+#define NTPDC_FULL_VERSION "ntpdc 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpdc/ntpdc.1ntpdcman b/ntpdc/ntpdc.1ntpdcman
index c7130610eadd..7ac601fa4dcb 100644
--- a/ntpdc/ntpdc.1ntpdcman
+++ b/ntpdc/ntpdc.1ntpdcman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc 1ntpdcman "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpdc 1ntpdcman "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:12 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:47 AM by AutoGen 5.18.5
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpdc/ntpdc.1ntpdcmdoc b/ntpdc/ntpdc.1ntpdcmdoc
index 6ec4135af24e..59bd61373cca 100644
--- a/ntpdc/ntpdc.1ntpdcmdoc
+++ b/ntpdc/ntpdc.1ntpdcmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPDC 1ntpdcmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:10 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:44 AM by AutoGen 5.18.5
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpdc/ntpdc.html b/ntpdc/ntpdc.html
index d5e7f069fd6b..a0b953d9176b 100644
--- a/ntpdc/ntpdc.html
+++ b/ntpdc/ntpdc.html
@@ -64,7 +64,7 @@ display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntpdc</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntpdc</code>.
</p>
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
@@ -214,7 +214,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p14
+<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p15
Usage: ntpdc [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
diff --git a/ntpdc/ntpdc.man.in b/ntpdc/ntpdc.man.in
index e03484df741c..43b9138b768b 100644
--- a/ntpdc/ntpdc.man.in
+++ b/ntpdc/ntpdc.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc @NTPDC_MS@ "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpdc @NTPDC_MS@ "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:12 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:47 AM by AutoGen 5.18.5
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpdc/ntpdc.mdoc.in b/ntpdc/ntpdc.mdoc.in
index 787b22a3e1ec..349af271d18f 100644
--- a/ntpdc/ntpdc.mdoc.in
+++ b/ntpdc/ntpdc.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPDC @NTPDC_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:10 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:44 AM by AutoGen 5.18.5
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpq/invoke-ntpq.texi b/ntpq/invoke-ntpq.texi
index 4534bebed5d3..040575a44b70 100644
--- a/ntpq/invoke-ntpq.texi
+++ b/ntpq/invoke-ntpq.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:21 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:20:55 AM by AutoGen 5.18.5
# From the definitions ntpq-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -944,7 +944,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpq - standard NTP query program - Ver. 4.2.8p14
+ntpq - standard NTP query program - Ver. 4.2.8p15
Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 name resolution
diff --git a/ntpq/ntpq-opts.c b/ntpq/ntpq-opts.c
index 52a299d01385..ca08c3f0cfd7 100644
--- a/ntpq/ntpq-opts.c
+++ b/ntpq/ntpq-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:14 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:48 AM by AutoGen 5.18.5
* From the definitions ntpq-opts.def
* and the template file options
*
@@ -69,7 +69,7 @@ extern FILE * option_usage_fp;
* static const strings for ntpq options
*/
static char const ntpq_opt_strs[1977] =
-/* 0 */ "ntpq 4.2.8p14\n"
+/* 0 */ "ntpq 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -132,13 +132,13 @@ static char const ntpq_opt_strs[1977] =
/* 1768 */ "no-load-opts\0"
/* 1781 */ "no\0"
/* 1784 */ "NTPQ\0"
-/* 1789 */ "ntpq - standard NTP query program - Ver. 4.2.8p14\n"
+/* 1789 */ "ntpq - standard NTP query program - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
/* 1909 */ "$HOME\0"
/* 1915 */ ".\0"
/* 1917 */ ".ntprc\0"
/* 1924 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 1958 */ "ntpq 4.2.8p14\0"
+/* 1958 */ "ntpq 4.2.8p15\0"
/* 1972 */ "hash";
/**
@@ -841,7 +841,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpqOptions.pzCopyright */
- puts(_("ntpq 4.2.8p14\n\
+ puts(_("ntpq 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -910,11 +910,11 @@ implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpqOptions.pzUsageTitle */
- puts(_("ntpq - standard NTP query program - Ver. 4.2.8p14\n\
+ puts(_("ntpq - standard NTP query program - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpqOptions.pzFullVersion */
- puts(_("ntpq 4.2.8p14"));
+ puts(_("ntpq 4.2.8p15"));
/* referenced via ntpqOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpq/ntpq-opts.h b/ntpq/ntpq-opts.h
index dea113b43997..9bc23b8f0eca 100644
--- a/ntpq/ntpq-opts.h
+++ b/ntpq/ntpq-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:14 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:48 AM by AutoGen 5.18.5
* From the definitions ntpq-opts.def
* and the template file options
*
@@ -84,9 +84,9 @@ typedef enum {
/** count of all options for ntpq */
#define OPTION_CT 16
/** ntpq version */
-#define NTPQ_VERSION "4.2.8p14"
+#define NTPQ_VERSION "4.2.8p15"
/** Full ntpq version text */
-#define NTPQ_FULL_VERSION "ntpq 4.2.8p14"
+#define NTPQ_FULL_VERSION "ntpq 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpq/ntpq.1ntpqman b/ntpq/ntpq.1ntpqman
index 524bbfd1a5f2..4723f9ff29ed 100644
--- a/ntpq/ntpq.1ntpqman
+++ b/ntpq/ntpq.1ntpqman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq 1ntpqman "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpq 1ntpqman "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:22 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:56 AM by AutoGen 5.18.5
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpq/ntpq.1ntpqmdoc b/ntpq/ntpq.1ntpqmdoc
index f64841c958b8..4b21e393ed0a 100644
--- a/ntpq/ntpq.1ntpqmdoc
+++ b/ntpq/ntpq.1ntpqmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPQ 1ntpqmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:19 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:53 AM by AutoGen 5.18.5
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpq/ntpq.html b/ntpq/ntpq.html
index 6122791cf74b..7e1f7cad5fe7 100644
--- a/ntpq/ntpq.html
+++ b/ntpq/ntpq.html
@@ -73,7 +73,7 @@ monitor the operational status
and determine the performance of
<code>ntpd</code>, the NTP daemon.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntpq</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntpq</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpq-Description" accesskey="1">ntpq Description</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -1293,7 +1293,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p13
+<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p14
Usage: ntpq [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 name resolution
diff --git a/ntpq/ntpq.man.in b/ntpq/ntpq.man.in
index 2e06128024c8..f14c575aef86 100644
--- a/ntpq/ntpq.man.in
+++ b/ntpq/ntpq.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq @NTPQ_MS@ "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpq @NTPQ_MS@ "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:22 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:56 AM by AutoGen 5.18.5
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpq/ntpq.mdoc.in b/ntpq/ntpq.mdoc.in
index f705f68c779a..45c7a5301fbc 100644
--- a/ntpq/ntpq.mdoc.in
+++ b/ntpq/ntpq.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPQ @NTPQ_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:19 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:53 AM by AutoGen 5.18.5
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpsnmpd/invoke-ntpsnmpd.texi b/ntpsnmpd/invoke-ntpsnmpd.texi
index eefdb8e92985..ad4376d69a7c 100644
--- a/ntpsnmpd/invoke-ntpsnmpd.texi
+++ b/ntpsnmpd/invoke-ntpsnmpd.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsnmpd.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:26 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:00 AM by AutoGen 5.18.5
# From the definitions ntpsnmpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
diff --git a/ntpsnmpd/ntpsnmpd-opts.c b/ntpsnmpd/ntpsnmpd-opts.c
index 2be0508ab2ab..8716879a1251 100644
--- a/ntpsnmpd/ntpsnmpd-opts.c
+++ b/ntpsnmpd/ntpsnmpd-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:23 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:57 AM by AutoGen 5.18.5
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
@@ -61,7 +61,7 @@ extern FILE * option_usage_fp;
* static const strings for ntpsnmpd options
*/
static char const ntpsnmpd_opt_strs[1613] =
-/* 0 */ "ntpsnmpd 4.2.8p14\n"
+/* 0 */ "ntpsnmpd 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -101,14 +101,14 @@ static char const ntpsnmpd_opt_strs[1613] =
/* 1415 */ "no-load-opts\0"
/* 1428 */ "no\0"
/* 1431 */ "NTPSNMPD\0"
-/* 1440 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p14\n"
+/* 1440 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
/* 1544 */ "$HOME\0"
/* 1550 */ ".\0"
/* 1552 */ ".ntprc\0"
/* 1559 */ "http://bugs.ntp.org, bugs@ntp.org\0"
/* 1593 */ "\n\0"
-/* 1595 */ "ntpsnmpd 4.2.8p14";
+/* 1595 */ "ntpsnmpd 4.2.8p15";
/**
* nofork option description:
@@ -554,7 +554,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpsnmpdOptions.pzCopyright */
- puts(_("ntpsnmpd 4.2.8p14\n\
+ puts(_("ntpsnmpd 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -599,14 +599,14 @@ implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpsnmpdOptions.pzUsageTitle */
- puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p14\n\
+ puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
/* referenced via ntpsnmpdOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpsnmpdOptions.pzFullVersion */
- puts(_("ntpsnmpd 4.2.8p14"));
+ puts(_("ntpsnmpd 4.2.8p15"));
/* referenced via ntpsnmpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpsnmpd/ntpsnmpd-opts.h b/ntpsnmpd/ntpsnmpd-opts.h
index 973ee1add273..0921e356e5e6 100644
--- a/ntpsnmpd/ntpsnmpd-opts.h
+++ b/ntpsnmpd/ntpsnmpd-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:23 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:20:57 AM by AutoGen 5.18.5
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
@@ -76,9 +76,9 @@ typedef enum {
/** count of all options for ntpsnmpd */
#define OPTION_CT 8
/** ntpsnmpd version */
-#define NTPSNMPD_VERSION "4.2.8p14"
+#define NTPSNMPD_VERSION "4.2.8p15"
/** Full ntpsnmpd version text */
-#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p14"
+#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpsnmpd/ntpsnmpd.1ntpsnmpdman b/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
index 68055caae492..a3353c4c3e28 100644
--- a/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
+++ b/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd 1ntpsnmpdman "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpsnmpd 1ntpsnmpdman "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:27 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:01 AM by AutoGen 5.18.5
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc b/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
index a3ab4184a3e2..f92b97ec6fc0 100644
--- a/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
+++ b/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPSNMPD 1ntpsnmpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:24 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:59 AM by AutoGen 5.18.5
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/ntpsnmpd/ntpsnmpd.html b/ntpsnmpd/ntpsnmpd.html
index 4c723913085d..0be532d656e6 100644
--- a/ntpsnmpd/ntpsnmpd.html
+++ b/ntpsnmpd/ntpsnmpd.html
@@ -71,7 +71,7 @@ Next: <a href="#ntpsnmpd-Description" accesskey="n" rel="next">ntpsnmpd Descript
<p>The <code>ntpsnmpd</code> utility program is used to monitor NTP daemon <code>ntpd</code>
operations and determine performance. It uses the standard NTP mode 6 control
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntpsnmpd</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntpsnmpd</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpsnmpd-Description" accesskey="1">ntpsnmpd Description</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
diff --git a/ntpsnmpd/ntpsnmpd.man.in b/ntpsnmpd/ntpsnmpd.man.in
index 5dff31cce1ed..f79b58428e1e 100644
--- a/ntpsnmpd/ntpsnmpd.man.in
+++ b/ntpsnmpd/ntpsnmpd.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd @NTPSNMPD_MS@ "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH ntpsnmpd @NTPSNMPD_MS@ "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:27 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:01 AM by AutoGen 5.18.5
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/ntpsnmpd/ntpsnmpd.mdoc.in b/ntpsnmpd/ntpsnmpd.mdoc.in
index 87d3ec0f385f..899e4c36994e 100644
--- a/ntpsnmpd/ntpsnmpd.mdoc.in
+++ b/ntpsnmpd/ntpsnmpd.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPSNMPD @NTPSNMPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:24 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:20:59 AM by AutoGen 5.18.5
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/packageinfo.sh b/packageinfo.sh
index 5d11eecf5a33..bab605d54002 100644
--- a/packageinfo.sh
+++ b/packageinfo.sh
@@ -83,7 +83,7 @@ CLTAG=NTP_4_2_0
# - Numeric values increment
# - empty 'increments' to 1
# - NEW 'increments' to empty
-point=14
+point=15
### betapoint is normally modified by script.
# ntp-stable Beta number (betapoint)
diff --git a/ports/winnt/include/config.h b/ports/winnt/include/config.h
index 57b9f7fe79cf..17526c266434 100644
--- a/ports/winnt/include/config.h
+++ b/ports/winnt/include/config.h
@@ -259,6 +259,8 @@ typedef int socklen_t;
#ifdef OPENSSL
# define USE_OPENSSL_CRYPTO_RAND 1
# define AUTOKEY
+# define HAVE_OPENSSL_CMAC_H
+# define ENABLE_CMAC
#endif
extern void arc4random_buf(void *buf, size_t nbytes);
@@ -409,6 +411,8 @@ typedef int ssize_t; /* ssize is an int */
# define HAVE_SETVBUF 1
# define HAVE_STRCHR 1 /* for libopts */
# define HAVE_STRDUP 1
+# define HAVE_STRNLEN 1
+# define HAVE_MEMCHR 1
# define HAVE_TIMEGM 1 /* actually _mkgmtime */
# define HAVE_STRUCT_TIMESPEC
diff --git a/ports/winnt/libntp/messages.h b/ports/winnt/libntp/messages.h
index 475371169a2a..16197e34fdee 100644
--- a/ports/winnt/libntp/messages.h
+++ b/ports/winnt/libntp/messages.h
@@ -160,9 +160,9 @@ FacilityNames=(System=0x0:FACILITY_SYSTEM
//
// Define the severity codes
//
-#define STATUS_SEVERITY_WARNING 0x2
#define STATUS_SEVERITY_SUCCESS 0x0
#define STATUS_SEVERITY_INFORMATIONAL 0x1
+#define STATUS_SEVERITY_WARNING 0x2
#define STATUS_SEVERITY_ERROR 0x3
diff --git a/ports/winnt/ntpd/ntp_iocompletionport.c b/ports/winnt/ntpd/ntp_iocompletionport.c
index c5db62a8dd5f..9cf095225bc2 100644
--- a/ports/winnt/ntpd/ntp_iocompletionport.c
+++ b/ports/winnt/ntpd/ntp_iocompletionport.c
@@ -708,7 +708,7 @@ QueueSerialWait(
recvbuf_t * buff
)
{
- static const char * const msg =
+ static const char * const msgh =
"QueueSerialWait: cannot wait for COM event";
BOOL rc;
@@ -720,7 +720,7 @@ QueueSerialWait(
buff->fd = lpo->iopad->riofd;
/* keep receive position for continuation of partial lines! */
rc = WaitCommEvent(lpo->io.hnd, &lpo->aux.com_events, &lpo->ol);
- return rc || IoResultCheck(GetLastError(), lpo, msg);
+ return rc || IoResultCheck(GetLastError(), lpo, msgh);
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
@@ -731,7 +731,7 @@ OnSerialWaitComplete(
IoCtx_t * lpo
)
{
- static const char * const msg =
+ static const char * const msgh =
"OnSerialWaitComplete: wait for COM event failed";
DevCtx_t * dev;
@@ -740,7 +740,7 @@ OnSerialWaitComplete(
u_long covc;
/* Make sure this RIO is not closed. */
- if (NULL == getRioFromIoCtx(lpo, key, msg))
+ if (NULL == getRioFromIoCtx(lpo, key, msgh))
return;
/* start next IO and leave if we hit an error */
@@ -847,7 +847,7 @@ QueueSerialReadCommon(
recvbuf_t * buff
)
{
- static const char * const msg =
+ static const char * const msgh =
"QueueSerialRead: cannot schedule device read";
BOOL rc;
@@ -866,7 +866,7 @@ QueueSerialReadCommon(
(char*)buff->recv_buffer + buff->recv_length,
sizeof(buff->recv_buffer) - buff->recv_length,
NULL, &lpo->ol);
- return rc || IoResultCheck(GetLastError(), lpo, msg);
+ return rc || IoResultCheck(GetLastError(), lpo, msgh);
}
/*
@@ -904,11 +904,11 @@ OnSerialReadComplete(
IoCtx_t * lpo
)
{
- static const char * const msg =
+ static const char * const msgh =
"OnSerialReadComplete: read from device failed";
/* Make sure this RIO is not closed. */
- if (NULL == getRioFromIoCtx(lpo, key, msg))
+ if (NULL == getRioFromIoCtx(lpo, key, msgh))
return;
/* start next IO and leave if we hit an error */
@@ -1035,7 +1035,12 @@ OnSerialReadWorker(
st_new_obuf:
/* Get new receive buffer to store the line. */
- obuf = get_free_recv_buffer_alloc();
+ obuf = get_free_recv_buffer_alloc(TRUE);
+ if (!obuf) {
+ ++packets_dropped; /* maybe atomic? */
+ buff->recv_length = 0;
+ goto st_read_fresh;
+ }
obuf->fd = buff->fd;
obuf->receiver = buff->receiver;
obuf->dstadr = NULL;
@@ -1154,11 +1159,11 @@ OnRawSerialReadComplete(
IoCtx_t * lpo
)
{
- static const char * const msg =
+ static const char * const msgh =
"OnRawSerialReadComplete: read from device failed";
recvbuf_t * buff = lpo->recv_buf;
- RIO_t * rio = getRioFromIoCtx(lpo, key, msg);
+ RIO_t * rio = getRioFromIoCtx(lpo, key, msgh);
/* Make sure this RIO is not closed. */
if (rio == NULL)
return;
@@ -1167,10 +1172,16 @@ OnRawSerialReadComplete(
if (lpo->errCode == ERROR_SUCCESS && lpo->byteCount > 0) {
buff->recv_length = (int)lpo->byteCount;
set_serial_recv_time(buff, lpo);
- iohpQueueLocked(lpo->iopad, iohpRefClockOK, buff);
- buff = get_free_recv_buffer_alloc();
+ lpo->recv_buf = get_free_recv_buffer_alloc(TRUE);
+ if (lpo->recv_buf) {
+ iohpQueueLocked(lpo->iopad, iohpRefClockOK, buff);
+ } else {
+ ++packets_dropped; /* maybe atomic? */
+ buff->recv_length = 0;
+ lpo->recv_buf = buff;
+ }
}
- IoCtxStartChecked(lpo, QueueSerialWait, buff);
+ IoCtxStartChecked(lpo, QueueSerialWait, lpo->recv_buf);
}
@@ -1217,7 +1228,7 @@ async_write(
unsigned int count
)
{
- static const char * const msg =
+ static const char * const msgh =
"async_write: cannot schedule device write";
static const char * const dmsg =
"overlapped IO data buffer";
@@ -1242,7 +1253,7 @@ async_write(
rc = WriteFile(lpo->io.hnd, lpo->trans_buf, count,
NULL, &lpo->ol);
- if (rc || IoResultCheck(GetLastError(), lpo, msg))
+ if (rc || IoResultCheck(GetLastError(), lpo, msgh))
return count; /* normal/success return */
errno = EBADF;
@@ -1264,10 +1275,10 @@ OnSerialWriteComplete(
* error processing, and it returns with a valid RIO, just
* drop the complete context.
*/
- static const char * const msg =
+ static const char * const msgh =
"OnSerialWriteComplete: serial output failed";
- if (NULL != getRioFromIoCtx(lpo, key, msg))
+ if (NULL != getRioFromIoCtx(lpo, key, msgh))
IoCtxRelease(lpo);
}
@@ -1367,6 +1378,7 @@ io_completion_port_add_clock_io(
IoCtx_t * lpo;
HANDLE h;
IoHndPad_T * iopad = NULL;
+ recvbuf_t * rbuf;
/* preset to clear state for error cleanup:*/
rio->ioreg_ctx = NULL;
@@ -1395,8 +1407,7 @@ io_completion_port_add_clock_io(
}
if (NULL == (lpo = IoCtxAlloc(iopad, rio->device_ctx))) {
- msyslog(LOG_ERR, "%: Failed to allocate IO context",
- msgh);
+ msyslog(LOG_ERR, "%: no IO context: %m", msgh);
goto fail;
}
@@ -1407,7 +1418,11 @@ io_completion_port_add_clock_io(
}
lpo->io.hnd = h;
memset(&lpo->aux, 0, sizeof(lpo->aux));
- return QueueSerialWait(lpo, get_free_recv_buffer_alloc());
+ if (NULL == (rbuf = get_free_recv_buffer_alloc(TRUE))) {
+ msyslog(LOG_ERR, "%s: no receive buffer: %m", msgh);
+ goto fail;
+ }
+ return QueueSerialWait(lpo, rbuf);
fail:
rio->ioreg_ctx = iohpDetach(rio->ioreg_ctx);
@@ -1470,7 +1485,7 @@ QueueSocketRecv(
recvbuf_t * buff
)
{
- static const char * const msg =
+ static const char * const msgh =
"QueueSocketRecv: cannot schedule socket receive";
WSABUF wsabuf;
@@ -1492,7 +1507,7 @@ QueueSocketRecv(
rc = WSARecvFrom(lpo->io.sfd, &wsabuf, 1, NULL, &lpo->ioFlags,
&buff->recv_srcadr.sa, &buff->recv_srcadr_len,
&lpo->ol, NULL);
- return !rc || IoResultCheck((DWORD)WSAGetLastError(), lpo, msg);
+ return !rc || IoResultCheck((DWORD)WSAGetLastError(), lpo, msgh);
}
/* ----------------------------------------------------------------- */
@@ -1502,7 +1517,7 @@ OnSocketRecv(
IoCtx_t * lpo
)
{
- static const char * const msg =
+ static const char * const msgh =
"OnSocketRecv: receive from socket failed";
recvbuf_t * buff = NULL;
@@ -1511,7 +1526,7 @@ OnSocketRecv(
int rc;
/* order is important -- check first, then get endpoint! */
- rc = socketErrorCheck(lpo, msg);
+ rc = socketErrorCheck(lpo, msgh);
ep = getEndptFromIoCtx(lpo, key);
/* Make sure this endpoint is not closed. */
@@ -1528,10 +1543,15 @@ OnSocketRecv(
if (rc == PKT_OK && lpo->byteCount > 0) {
/* keep input buffer, create new one for IO */
buff = lpo->recv_buf;
- lpo->recv_buf = get_free_recv_buffer_alloc();
-
- buff->recv_time = lpo->aux.RecvTime;
- buff->recv_length = (int)lpo->byteCount;
+ lpo->recv_buf = get_free_recv_buffer_alloc(FALSE);
+ if (lpo->recv_buf) {
+ buff->recv_time = lpo->aux.RecvTime;
+ buff->recv_length = (int)lpo->byteCount;
+ } else {
+ lpo->recv_buf = buff;
+ buff = NULL;
+ ++packets_dropped; /* maybe atomic? */
+ }
} /* Note: else we use the current buffer again */
@@ -1547,7 +1567,7 @@ OnSocketRecv(
* then feed it to the input queue. And we can be sure we have
* a packet here, so we can update the stats.
*/
- if (buff != NULL) {
+ if (buff) {
INSIST(buff->recv_srcadr_len <= sizeof(buff->recv_srcadr));
DPRINTF(4, ("%sfd %d %s recv packet mode is %d\n",
(MODE_BROADCAST == get_packet_mode(buff))
@@ -1578,14 +1598,14 @@ OnSocketSend(
)
{
/* this is somewhat easier: */
- static const char * const msg =
+ static const char * const msgh =
"OnSocketSend: send to socket failed";
endpt * ep = NULL;
int rc;
/* order is important -- check first, then get endpoint! */
- rc = socketErrorCheck(lpo, msg);
+ rc = socketErrorCheck(lpo, msgh);
ep = getEndptFromIoCtx(lpo, key);
/* Make sure this endpoint is not closed. */
@@ -1686,13 +1706,14 @@ io_completion_port_add_socket(
/* Assume the endpoint is already registered. Set the socket
* handle into the proper slot, and then start up the IO engine.
*/
- static const char * const msg =
+ static const char * const msgh =
"Can't add socket to i/o completion port";
IoCtx_t * lpo;
size_t n;
ULONG_PTR key;
IoHndPad_T * iopad = NULL;
+ recvbuf_t * rbuf;
key = ((ULONG_PTR)ep & ~(ULONG_PTR)1u) + !!bcast;
@@ -1709,16 +1730,20 @@ io_completion_port_add_socket(
if (NULL == CreateIoCompletionPort((HANDLE)sfd,
hndIOCPLPort, key, 0))
{
- msyslog(LOG_ERR, "%s: %m", msg);
+ msyslog(LOG_ERR, "%s: %m", msgh);
goto fail;
}
for (n = s_SockRecvSched; n > 0; --n) {
if (NULL == (lpo = IoCtxAlloc(ep->ioreg_ctx, NULL))) {
- msyslog(LOG_ERR, "%s: no read buffer: %m", msg);
+ msyslog(LOG_ERR, "%s: no IO context: %m", msgh);
goto fail;
}
lpo->io.sfd = sfd;
- if (!QueueSocketRecv(lpo, get_free_recv_buffer_alloc()))
+ if (NULL == (rbuf = get_free_recv_buffer_alloc(FALSE))) {
+ msyslog(LOG_ERR, "%s: no receive buffer: %m", msgh);
+ goto fail;
+ }
+ if (!QueueSocketRecv(lpo, rbuf))
goto fail;
}
return TRUE;
@@ -1765,7 +1790,7 @@ io_completion_port_sendto(
sockaddr_u * dest
)
{
- static const char * const msg =
+ static const char * const msgh =
"sendto: cannot schedule socket send";
static const char * const dmsg =
"overlapped IO data buffer";
@@ -1798,7 +1823,7 @@ io_completion_port_sendto(
rc = WSASendTo(sfd, &wsabuf, 1, NULL, 0,
&dest->sa, SOCKLEN(dest),
&lpo->ol, NULL);
- if (!rc || IoResultCheck((DWORD)WSAGetLastError(), lpo, msg))
+ if (!rc || IoResultCheck((DWORD)WSAGetLastError(), lpo, msgh))
return (int)len; /* normal/success return */
errno = EBADF;
diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
index d1a319f3154b..691a06cf9196 100644
--- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
+++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:52 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:27 AM by AutoGen 5.18.5
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
index f5f75c4f5973..1ee73c1a212e 100644
--- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
+++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:53 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:28 AM by AutoGen 5.18.5
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.html b/scripts/calc_tickadj/calc_tickadj.html
index 5247962c2b12..a29110e9ede1 100644
--- a/scripts/calc_tickadj/calc_tickadj.html
+++ b/scripts/calc_tickadj/calc_tickadj.html
@@ -58,7 +58,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<h1 class="top">calc_tickadj User&rsquo;s Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>calc_tickadj</code> program.
-This document applies to version 4.2.8p14 of <code>calc_tickadj</code>.
+This document applies to version 4.2.8p15 of <code>calc_tickadj</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
diff --git a/scripts/calc_tickadj/calc_tickadj.man.in b/scripts/calc_tickadj/calc_tickadj.man.in
index d1a319f3154b..691a06cf9196 100644
--- a/scripts/calc_tickadj/calc_tickadj.man.in
+++ b/scripts/calc_tickadj/calc_tickadj.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:52 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:27 AM by AutoGen 5.18.5
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.mdoc.in b/scripts/calc_tickadj/calc_tickadj.mdoc.in
index f5f75c4f5973..1ee73c1a212e 100644
--- a/scripts/calc_tickadj/calc_tickadj.mdoc.in
+++ b/scripts/calc_tickadj/calc_tickadj.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:53 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:28 AM by AutoGen 5.18.5
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/calc_tickadj/invoke-calc_tickadj.texi b/scripts/calc_tickadj/invoke-calc_tickadj.texi
index f6789af8dedf..14ede3c6ab59 100644
--- a/scripts/calc_tickadj/invoke-calc_tickadj.texi
+++ b/scripts/calc_tickadj/invoke-calc_tickadj.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:54 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:29 AM by AutoGen 5.18.5
# From the definitions calc_tickadj-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
diff --git a/scripts/invoke-plot_summary.texi b/scripts/invoke-plot_summary.texi
index 1e66baad42c5..bbaa8cd979e1 100644
--- a/scripts/invoke-plot_summary.texi
+++ b/scripts/invoke-plot_summary.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:11 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:46 AM by AutoGen 5.18.5
# From the definitions plot_summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -41,7 +41,7 @@ with a status code of 0.
@exampleindent 0
@example
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8p14
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p15
USAGE: plot_summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Where the summary files are
diff --git a/scripts/invoke-summary.texi b/scripts/invoke-summary.texi
index 8ddc1a313854..cc80112a0c2c 100644
--- a/scripts/invoke-summary.texi
+++ b/scripts/invoke-summary.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-summary.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:15 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:50 AM by AutoGen 5.18.5
# From the definitions summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -42,7 +42,7 @@ with a status code of 0.
@exampleindent 0
@example
-summary - compute various stastics from NTP stat files - Ver. 4.2.8p14
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p15
USAGE: summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Directory containing stat files
diff --git a/scripts/ntp-wait/invoke-ntp-wait.texi b/scripts/ntp-wait/invoke-ntp-wait.texi
index fee1b21b0170..3a0f61f79a8a 100644
--- a/scripts/ntp-wait/invoke-ntp-wait.texi
+++ b/scripts/ntp-wait/invoke-ntp-wait.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:57 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:32 AM by AutoGen 5.18.5
# From the definitions ntp-wait-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -61,7 +61,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p14
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p15
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait-opts b/scripts/ntp-wait/ntp-wait-opts
index 7f42434406f1..125e5920349f 100644
--- a/scripts/ntp-wait/ntp-wait-opts
+++ b/scripts/ntp-wait/ntp-wait-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntp-wait-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:56 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:30 AM by AutoGen 5.18.5
# From the definitions ntp-wait-opts.def
# and the template file perlopt
@@ -40,7 +40,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p14
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p15
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitman b/scripts/ntp-wait/ntp-wait.1ntp-waitman
index 60a998813bfb..930f56067857 100644
--- a/scripts/ntp-wait/ntp-wait.1ntp-waitman
+++ b/scripts/ntp-wait/ntp-wait.1ntp-waitman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait 1ntp-waitman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntp-wait 1ntp-waitman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:58 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:33 AM by AutoGen 5.18.5
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
index 8d191ff63b1a..882ec9bd6811 100644
--- a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
+++ b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_WAIT 1ntp-waitmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:56 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:30 AM by AutoGen 5.18.5
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntp-wait/ntp-wait.html b/scripts/ntp-wait/ntp-wait.html
index 77154e0fa4a6..0b0862df6a25 100644
--- a/scripts/ntp-wait/ntp-wait.html
+++ b/scripts/ntp-wait/ntp-wait.html
@@ -68,7 +68,7 @@ until the system&rsquo;s time has stabilized and synchronized,
and only then start any applicaitons (like database servers) that require
accurate and stable time.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntp-wait</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntp-wait</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -159,7 +159,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p14
+<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p15
USAGE: ntp-wait [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait.man.in b/scripts/ntp-wait/ntp-wait.man.in
index 926255fe01a7..0fdf23a7b964 100644
--- a/scripts/ntp-wait/ntp-wait.man.in
+++ b/scripts/ntp-wait/ntp-wait.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait @NTP_WAIT_MS@ "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntp-wait @NTP_WAIT_MS@ "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:58 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:33 AM by AutoGen 5.18.5
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntp-wait/ntp-wait.mdoc.in b/scripts/ntp-wait/ntp-wait.mdoc.in
index fd401340d4f5..27b572f3ac60 100644
--- a/scripts/ntp-wait/ntp-wait.mdoc.in
+++ b/scripts/ntp-wait/ntp-wait.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_WAIT @NTP_WAIT_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:56 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:30 AM by AutoGen 5.18.5
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntpsweep/invoke-ntpsweep.texi b/scripts/ntpsweep/invoke-ntpsweep.texi
index 1348e0560a03..f75dd010c98a 100644
--- a/scripts/ntpsweep/invoke-ntpsweep.texi
+++ b/scripts/ntpsweep/invoke-ntpsweep.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsweep.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:00 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:34 AM by AutoGen 5.18.5
# From the definitions ntpsweep-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -45,7 +45,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p14
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p15
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep-opts b/scripts/ntpsweep/ntpsweep-opts
index 2f761bd82f84..2c243e7ec5e2 100644
--- a/scripts/ntpsweep/ntpsweep-opts
+++ b/scripts/ntpsweep/ntpsweep-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntpsweep-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:59 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:34 AM by AutoGen 5.18.5
# From the definitions ntpsweep-opts.def
# and the template file perlopt
@@ -43,7 +43,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p14
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p15
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepman b/scripts/ntpsweep/ntpsweep.1ntpsweepman
index 98a96eb8c542..9f9fca1ddbf8 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepman
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntpsweep 1ntpsweepman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:02 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:37 AM by AutoGen 5.18.5
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
index a915d40d84aa..72550bcc3eb7 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:01 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:36 AM by AutoGen 5.18.5
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntpsweep/ntpsweep.html b/scripts/ntpsweep/ntpsweep.html
index 2c2bf023ea73..5a2cd11539aa 100644
--- a/scripts/ntpsweep/ntpsweep.html
+++ b/scripts/ntpsweep/ntpsweep.html
@@ -59,7 +59,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<p>This document describes the use of the NTP Project&rsquo;s <code>ntpsweep</code> program.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntpsweep</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntpsweep</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -134,7 +134,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p14
+<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p15
USAGE: ntpsweep [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.man.in b/scripts/ntpsweep/ntpsweep.man.in
index 98a96eb8c542..9f9fca1ddbf8 100644
--- a/scripts/ntpsweep/ntpsweep.man.in
+++ b/scripts/ntpsweep/ntpsweep.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntpsweep 1ntpsweepman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:02 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:37 AM by AutoGen 5.18.5
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.mdoc.in b/scripts/ntpsweep/ntpsweep.mdoc.in
index a915d40d84aa..72550bcc3eb7 100644
--- a/scripts/ntpsweep/ntpsweep.mdoc.in
+++ b/scripts/ntpsweep/ntpsweep.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:01 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:36 AM by AutoGen 5.18.5
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntptrace/invoke-ntptrace.texi b/scripts/ntptrace/invoke-ntptrace.texi
index ccec94e35c5e..11b73e91e49f 100644
--- a/scripts/ntptrace/invoke-ntptrace.texi
+++ b/scripts/ntptrace/invoke-ntptrace.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntptrace.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:05 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:39 AM by AutoGen 5.18.5
# From the definitions ntptrace-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -62,7 +62,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p14
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p15
USAGE: ntptrace [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace-opts b/scripts/ntptrace/ntptrace-opts
index 486564002e42..8ab36622e9ee 100644
--- a/scripts/ntptrace/ntptrace-opts
+++ b/scripts/ntptrace/ntptrace-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntptrace-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:03 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:38 AM by AutoGen 5.18.5
# From the definitions ntptrace-opts.def
# and the template file perlopt
@@ -40,7 +40,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p14
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p15
USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.1ntptraceman b/scripts/ntptrace/ntptrace.1ntptraceman
index 1c2c5adbd989..56dc6b2189a2 100644
--- a/scripts/ntptrace/ntptrace.1ntptraceman
+++ b/scripts/ntptrace/ntptrace.1ntptraceman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace 1ntptraceman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntptrace 1ntptraceman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:06 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:41 AM by AutoGen 5.18.5
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntptrace/ntptrace.1ntptracemdoc b/scripts/ntptrace/ntptrace.1ntptracemdoc
index 7ce9fe373d35..62ae7b1078b1 100644
--- a/scripts/ntptrace/ntptrace.1ntptracemdoc
+++ b/scripts/ntptrace/ntptrace.1ntptracemdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPTRACE 1ntptracemdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:03 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:38 AM by AutoGen 5.18.5
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntptrace/ntptrace.html b/scripts/ntptrace/ntptrace.html
index d5b4aa79bfbc..4b48abcf2470 100644
--- a/scripts/ntptrace/ntptrace.html
+++ b/scripts/ntptrace/ntptrace.html
@@ -59,7 +59,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<h1 class="top">Simple Network Time Protocol User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntptrace</code> program.
-This document applies to version 4.2.8p14 of <code>ntptrace</code>.
+This document applies to version 4.2.8p15 of <code>ntptrace</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -150,7 +150,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p14
+<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p15
USAGE: ntptrace [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.man.in b/scripts/ntptrace/ntptrace.man.in
index 5fcedfb31839..3686ffd61ff2 100644
--- a/scripts/ntptrace/ntptrace.man.in
+++ b/scripts/ntptrace/ntptrace.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace @NTPTRACE_MS@ "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntptrace @NTPTRACE_MS@ "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:06 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:41 AM by AutoGen 5.18.5
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntptrace/ntptrace.mdoc.in b/scripts/ntptrace/ntptrace.mdoc.in
index 65a4750e2382..47bac3124f41 100644
--- a/scripts/ntptrace/ntptrace.mdoc.in
+++ b/scripts/ntptrace/ntptrace.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTPTRACE @NTPTRACE_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:03 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:38 AM by AutoGen 5.18.5
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/plot_summary-opts b/scripts/plot_summary-opts
index fa1c62f5af0d..4f5f5755bf43 100644
--- a/scripts/plot_summary-opts
+++ b/scripts/plot_summary-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (plot_summary-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:11 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:46 AM by AutoGen 5.18.5
# From the definitions plot_summary-opts.def
# and the template file perlopt
@@ -46,7 +46,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8p14
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p15
USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Where the summary files are
diff --git a/scripts/plot_summary.1plot_summaryman b/scripts/plot_summary.1plot_summaryman
index 5d197f36c3df..366b14d88d6b 100644
--- a/scripts/plot_summary.1plot_summaryman
+++ b/scripts/plot_summary.1plot_summaryman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH plot_summary 1plot_summaryman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:13 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:47 AM by AutoGen 5.18.5
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/plot_summary.1plot_summarymdoc b/scripts/plot_summary.1plot_summarymdoc
index 2b749d25f408..144b95a839cd 100644
--- a/scripts/plot_summary.1plot_summarymdoc
+++ b/scripts/plot_summary.1plot_summarymdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:14 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:48 AM by AutoGen 5.18.5
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/plot_summary.html b/scripts/plot_summary.html
index fce726498311..d1a6b76e1fc3 100644
--- a/scripts/plot_summary.html
+++ b/scripts/plot_summary.html
@@ -59,7 +59,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<h1 class="top">Plot_summary User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>plot_summary</code> program.
-This document applies to version 4.2.8p14 of <code>plot_summary</code>.
+This document applies to version 4.2.8p15 of <code>plot_summary</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -131,7 +131,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p14
+<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p15
USAGE: plot_summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Where the summary files are
diff --git a/scripts/plot_summary.man.in b/scripts/plot_summary.man.in
index 5d197f36c3df..366b14d88d6b 100644
--- a/scripts/plot_summary.man.in
+++ b/scripts/plot_summary.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH plot_summary 1plot_summaryman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:13 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:47 AM by AutoGen 5.18.5
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/plot_summary.mdoc.in b/scripts/plot_summary.mdoc.in
index 2b749d25f408..144b95a839cd 100644
--- a/scripts/plot_summary.mdoc.in
+++ b/scripts/plot_summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:14 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:48 AM by AutoGen 5.18.5
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/summary-opts b/scripts/summary-opts
index 7e47b7f768de..0fc894eb209e 100644
--- a/scripts/summary-opts
+++ b/scripts/summary-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (summary-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:11 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:46 AM by AutoGen 5.18.5
# From the definitions summary-opts.def
# and the template file perlopt
@@ -44,7 +44,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-summary - compute various stastics from NTP stat files - Ver. 4.2.8p14
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p15
USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Directory containing stat files
diff --git a/scripts/summary.1summaryman b/scripts/summary.1summaryman
index c9d71fdf9ada..d91e6f9015f0 100644
--- a/scripts/summary.1summaryman
+++ b/scripts/summary.1summaryman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH summary 1summaryman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:16 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:51 AM by AutoGen 5.18.5
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/summary.1summarymdoc b/scripts/summary.1summarymdoc
index e8dc86afd0a6..4759a2abbe78 100644
--- a/scripts/summary.1summarymdoc
+++ b/scripts/summary.1summarymdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:17 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:52 AM by AutoGen 5.18.5
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/summary.html b/scripts/summary.html
index 1e6aa5addacc..455d711628e3 100644
--- a/scripts/summary.html
+++ b/scripts/summary.html
@@ -59,7 +59,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<h1 class="top">Summary User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>summary</code> program.
-This document applies to version 4.2.8p14 of <code>summary</code>.
+This document applies to version 4.2.8p15 of <code>summary</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
@@ -131,7 +131,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p14
+<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p15
USAGE: summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Directory containing stat files
diff --git a/scripts/summary.man.in b/scripts/summary.man.in
index c9d71fdf9ada..d91e6f9015f0 100644
--- a/scripts/summary.man.in
+++ b/scripts/summary.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH summary 1summaryman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:16 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:51 AM by AutoGen 5.18.5
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/summary.mdoc.in b/scripts/summary.mdoc.in
index e8dc86afd0a6..4759a2abbe78 100644
--- a/scripts/summary.mdoc.in
+++ b/scripts/summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:17 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:52 AM by AutoGen 5.18.5
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/update-leap/invoke-update-leap.texi b/scripts/update-leap/invoke-update-leap.texi
index 5cceef0fd9c2..5b74cbf35ade 100644
--- a/scripts/update-leap/invoke-update-leap.texi
+++ b/scripts/update-leap/invoke-update-leap.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-update-leap.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:09 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:43 AM by AutoGen 5.18.5
# From the definitions update-leap-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
diff --git a/scripts/update-leap/update-leap-opts b/scripts/update-leap/update-leap-opts
index 5a4b4c15f190..b0dae49eef44 100644
--- a/scripts/update-leap/update-leap-opts
+++ b/scripts/update-leap/update-leap-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (update-leap-opts)
#
-# It has been AutoGen-ed March 3, 2020 at 05:42:11 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:46 AM by AutoGen 5.18.5
# From the definitions update-leap-opts.def
# and the template file perlopt
@@ -46,7 +46,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-update-leap - leap-seconds file manager/updater - Ver. 4.2.8p14
+update-leap - leap-seconds file manager/updater - Ver. 4.2.8p15
USAGE: update-leap [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
-s, --source-url=str The URL of the master copy of the leapseconds file
diff --git a/scripts/update-leap/update-leap.1update-leapman b/scripts/update-leap/update-leap.1update-leapman
index c9f79d133783..cebca7f66452 100644
--- a/scripts/update-leap/update-leap.1update-leapman
+++ b/scripts/update-leap/update-leap.1update-leapman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH update-leap 1update-leapman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH update-leap 1update-leapman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:10 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:45 AM by AutoGen 5.18.5
.\" From the definitions update-leap-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/update-leap/update-leap.1update-leapmdoc b/scripts/update-leap/update-leap.1update-leapmdoc
index fbc36299ed5d..ab83b9ea98d1 100644
--- a/scripts/update-leap/update-leap.1update-leapmdoc
+++ b/scripts/update-leap/update-leap.1update-leapmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:07 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:42 AM by AutoGen 5.18.5
.\" From the definitions update-leap-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/update-leap/update-leap.html b/scripts/update-leap/update-leap.html
index 32756a239714..b8e12c1f8f96 100644
--- a/scripts/update-leap/update-leap.html
+++ b/scripts/update-leap/update-leap.html
@@ -59,7 +59,7 @@ Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href
<p>This document describes the use of the NTP Project&rsquo;s <code>update-leap</code> program.
</p>
-<p>This document applies to version 4.2.8p14 of <code>update-leap</code>.
+<p>This document applies to version 4.2.8p15 of <code>update-leap</code>.
</p>
<a name="SEC_Overview"></a>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
diff --git a/scripts/update-leap/update-leap.man.in b/scripts/update-leap/update-leap.man.in
index c9f79d133783..cebca7f66452 100644
--- a/scripts/update-leap/update-leap.man.in
+++ b/scripts/update-leap/update-leap.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH update-leap 1update-leapman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH update-leap 1update-leapman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:10 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:45 AM by AutoGen 5.18.5
.\" From the definitions update-leap-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/update-leap/update-leap.mdoc.in b/scripts/update-leap/update-leap.mdoc.in
index fbc36299ed5d..ab83b9ea98d1 100644
--- a/scripts/update-leap/update-leap.mdoc.in
+++ b/scripts/update-leap/update-leap.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:42:07 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:42 AM by AutoGen 5.18.5
.\" From the definitions update-leap-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/sntp/configure b/sntp/configure
index b446a654cc87..a2e3d0fba9f7 100755
--- a/sntp/configure
+++ b/sntp/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for sntp 4.2.8p14.
+# Generated by GNU Autoconf 2.69 for sntp 4.2.8p15.
#
# Report bugs to <http://bugs.ntp.org./>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sntp'
PACKAGE_TARNAME='sntp'
-PACKAGE_VERSION='4.2.8p14'
-PACKAGE_STRING='sntp 4.2.8p14'
+PACKAGE_VERSION='4.2.8p15'
+PACKAGE_STRING='sntp 4.2.8p15'
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
PACKAGE_URL='http://www.ntp.org./'
@@ -1486,7 +1486,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures sntp 4.2.8p14 to adapt to many kinds of systems.
+\`configure' configures sntp 4.2.8p15 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1556,7 +1556,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sntp 4.2.8p14:";;
+ short | recursive ) echo "Configuration of sntp 4.2.8p15:";;
esac
cat <<\_ACEOF
@@ -1707,7 +1707,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sntp configure 4.2.8p14
+sntp configure 4.2.8p15
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2416,7 +2416,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by sntp $as_me 4.2.8p14, which was
+It was created by sntp $as_me 4.2.8p15, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3413,7 +3413,7 @@ fi
# Define the identity of the package.
PACKAGE='sntp'
- VERSION='4.2.8p14'
+ VERSION='4.2.8p15'
cat >>confdefs.h <<_ACEOF
@@ -27147,7 +27147,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by sntp $as_me 4.2.8p14, which was
+This file was extended by sntp $as_me 4.2.8p15, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27214,7 +27214,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-sntp config.status 4.2.8p14
+sntp config.status 4.2.8p15
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/sntp/crypto.c b/sntp/crypto.c
index 8ffe006f9912..8a47edef7184 100644
--- a/sntp/crypto.c
+++ b/sntp/crypto.c
@@ -70,7 +70,8 @@ compute_mac(
}
len = (u_int)slen;
- CMAC_CTX_cleanup(ctx);
+ if (ctx)
+ CMAC_CTX_free(ctx);
/* Test our AES-128-CMAC implementation */
} else /* MD5 MAC handling */
diff --git a/sntp/include/version.def b/sntp/include/version.def
index 1bb1853839a0..4f36d06d1971 100644
--- a/sntp/include/version.def
+++ b/sntp/include/version.def
@@ -1 +1 @@
-version = '4.2.8p14';
+version = '4.2.8p15';
diff --git a/sntp/include/version.texi b/sntp/include/version.texi
index 70830c33d960..9dfcfd768fbe 100644
--- a/sntp/include/version.texi
+++ b/sntp/include/version.texi
@@ -1,3 +1,3 @@
-@set UPDATED 03 March 2020
-@set EDITION 4.2.8p14
-@set VERSION 4.2.8p14
+@set UPDATED 23 June 2020
+@set EDITION 4.2.8p15
+@set VERSION 4.2.8p15
diff --git a/sntp/invoke-sntp.texi b/sntp/invoke-sntp.texi
index 4beaec2ea422..29f097ce6276 100644
--- a/sntp/invoke-sntp.texi
+++ b/sntp/invoke-sntp.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-sntp.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:40:02 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:19:36 AM by AutoGen 5.18.5
# From the definitions sntp-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -101,7 +101,7 @@ with a status code of 0.
@exampleindent 0
@example
-sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p14
+sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p15
Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
diff --git a/sntp/m4/version.m4 b/sntp/m4/version.m4
index 836702a2efc7..1b44051c8c0e 100644
--- a/sntp/m4/version.m4
+++ b/sntp/m4/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[4.2.8p14])
+m4_define([VERSION_NUMBER],[4.2.8p15])
diff --git a/sntp/sntp-opts.c b/sntp/sntp-opts.c
index e5857c3fe1d4..66d9811f538a 100644
--- a/sntp/sntp-opts.c
+++ b/sntp/sntp-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:39:59 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:19:32 AM by AutoGen 5.18.5
* From the definitions sntp-opts.def
* and the template file options
*
@@ -70,7 +70,7 @@ extern FILE * option_usage_fp;
* static const strings for sntp options
*/
static char const sntp_opt_strs[2566] =
-/* 0 */ "sntp 4.2.8p14\n"
+/* 0 */ "sntp 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -156,7 +156,7 @@ static char const sntp_opt_strs[2566] =
/* 2313 */ "LOAD_OPTS\0"
/* 2323 */ "no-load-opts\0"
/* 2336 */ "SNTP\0"
-/* 2341 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p14\n"
+/* 2341 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ hostname-or-IP ...]\n\0"
/* 2501 */ "$HOME\0"
@@ -164,7 +164,7 @@ static char const sntp_opt_strs[2566] =
/* 2509 */ ".ntprc\0"
/* 2516 */ "http://bugs.ntp.org, bugs@ntp.org\0"
/* 2550 */ "\n\0"
-/* 2552 */ "sntp 4.2.8p14";
+/* 2552 */ "sntp 4.2.8p15";
/**
* ipv4 option description with
@@ -1176,7 +1176,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via sntpOptions.pzCopyright */
- puts(_("sntp 4.2.8p14\n\
+ puts(_("sntp 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -1266,7 +1266,7 @@ implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via sntpOptions.pzUsageTitle */
- puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p14\n\
+ puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ hostname-or-IP ...]\n"));
@@ -1274,7 +1274,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
puts(_("\n"));
/* referenced via sntpOptions.pzFullVersion */
- puts(_("sntp 4.2.8p14"));
+ puts(_("sntp 4.2.8p15"));
/* referenced via sntpOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/sntp/sntp-opts.h b/sntp/sntp-opts.h
index 1a5f8740fc43..338732e6ddf2 100644
--- a/sntp/sntp-opts.h
+++ b/sntp/sntp-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:39:58 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:19:32 AM by AutoGen 5.18.5
* From the definitions sntp-opts.def
* and the template file options
*
@@ -91,9 +91,9 @@ typedef enum {
/** count of all options for sntp */
#define OPTION_CT 23
/** sntp version */
-#define SNTP_VERSION "4.2.8p14"
+#define SNTP_VERSION "4.2.8p15"
/** Full sntp version text */
-#define SNTP_FULL_VERSION "sntp 4.2.8p14"
+#define SNTP_FULL_VERSION "sntp 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/sntp/sntp.1sntpman b/sntp/sntp.1sntpman
index 50ee5774ba87..fd1d906e186a 100644
--- a/sntp/sntp.1sntpman
+++ b/sntp/sntp.1sntpman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp 1sntpman "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH sntp 1sntpman "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:04 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:19:38 AM by AutoGen 5.18.5
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/sntp/sntp.1sntpmdoc b/sntp/sntp.1sntpmdoc
index 6e1ede0098aa..af0d1d3b3dd2 100644
--- a/sntp/sntp.1sntpmdoc
+++ b/sntp/sntp.1sntpmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt SNTP 1sntpmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:01 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:19:35 AM by AutoGen 5.18.5
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/sntp/sntp.html b/sntp/sntp.html
index e89319fbc4b5..7a1e582d04ce 100644
--- a/sntp/sntp.html
+++ b/sntp/sntp.html
@@ -64,7 +64,7 @@ display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
</p>
-<p>This document applies to version 4.2.8p14 of <code>sntp</code>.
+<p>This document applies to version 4.2.8p15 of <code>sntp</code>.
</p>
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
@@ -243,7 +243,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p14
+<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p15
Usage: sntp [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
diff --git a/sntp/sntp.man.in b/sntp/sntp.man.in
index 6410619ecd2a..a31c74698ee6 100644
--- a/sntp/sntp.man.in
+++ b/sntp/sntp.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp @SNTP_MS@ "03 Mar 2020" "4.2.8p14" "User Commands"
+.TH sntp @SNTP_MS@ "23 Jun 2020" "4.2.8p15" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:04 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:19:38 AM by AutoGen 5.18.5
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/sntp/sntp.mdoc.in b/sntp/sntp.mdoc.in
index 14caa5a762f4..329a6d24af77 100644
--- a/sntp/sntp.mdoc.in
+++ b/sntp/sntp.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt SNTP @SNTP_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:40:01 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:19:35 AM by AutoGen 5.18.5
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/sntp/version.c b/sntp/version.c
index 0285c3075f6f..9574047d5d4d 100644
--- a/sntp/version.c
+++ b/sntp/version.c
@@ -2,4 +2,4 @@
* version file for sntp
*/
#include <config.h>
-const char * Version = "sntp 4.2.8p14@1.3728-o Wed Mar 4 01:42:35 UTC 2020 (8)";
+const char * Version = "sntp 4.2.8p15@1.3728-o Tue Jun 23 09:22:10 UTC 2020 (10)";
diff --git a/tests/libntp/decodenetnum.c b/tests/libntp/decodenetnum.c
index 85463e868d0b..961ea6d308c9 100644
--- a/tests/libntp/decodenetnum.c
+++ b/tests/libntp/decodenetnum.c
@@ -9,8 +9,11 @@ extern void test_IPv4AddressOnly(void);
extern void test_IPv4AddressWithPort(void);
extern void test_IPv6AddressOnly(void);
extern void test_IPv6AddressWithPort(void);
+extern void test_IPv6AddressWithScope(void);
+extern void test_IPv6AddressWithPortAndScope(void);
extern void test_IllegalAddress(void);
extern void test_IllegalCharInPort(void);
+extern void test_NameBufOverflow(void);
/*
* NOTE: The IPv6 specific tests are reduced to stubs when IPv6 is
@@ -35,6 +38,7 @@ test_IPv4AddressOnly(void)
sockaddr_u actual;
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa4.sin_family = AF_INET;
expected.sa4.sin_addr.s_addr = inet_addr("192.0.2.1");
SET_PORT(&expected, NTP_PORT);
@@ -50,6 +54,7 @@ test_IPv4AddressWithPort(void)
sockaddr_u actual;
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa4.sin_family = AF_INET;
expected.sa4.sin_addr.s_addr = inet_addr("192.0.2.2");
SET_PORT(&expected, 2000);
@@ -71,21 +76,26 @@ test_IPv6AddressOnly(void)
0x03, 0x70, 0x73, 0x34
};
- const char *str = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
+ const char *str1 = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
+ const char *str2 = "[2001:0db8:85a3:08d3:1319:8a2e:0370:7334]";
sockaddr_u actual;
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa6.sin6_family = AF_INET6;
expected.sa6.sin6_addr = address;
SET_PORT(&expected, NTP_PORT);
- TEST_ASSERT_TRUE(decodenetnum(str, &actual));
+ TEST_ASSERT_TRUE(decodenetnum(str1, &actual));
+ TEST_ASSERT_TRUE(IsEqual(expected, actual));
+
+ TEST_ASSERT_TRUE(decodenetnum(str2, &actual));
TEST_ASSERT_TRUE(IsEqual(expected, actual));
#else
-
+
TEST_IGNORE_MESSAGE("IPV6 disabled in build");
-
+
#endif
}
@@ -106,6 +116,7 @@ test_IPv6AddressWithPort(void)
sockaddr_u actual;
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa6.sin6_family = AF_INET6;
expected.sa6.sin6_addr = address;
SET_PORT(&expected, 3000);
@@ -114,12 +125,77 @@ test_IPv6AddressWithPort(void)
TEST_ASSERT_TRUE(IsEqual(expected, actual));
#else
-
+
+ TEST_IGNORE_MESSAGE("IPV6 disabled in build");
+
+#endif
+}
+
+void test_IPv6AddressWithScope(void)
+{
+#if defined(ISC_PLATFORM_HAVEIPV6) && defined(WANT_IPV6)
+
+ const struct in6_addr address = {
+ 0x20, 0x01, 0x0d, 0xb8,
+ 0x85, 0xa3, 0x08, 0xd3,
+ 0x13, 0x19, 0x8a, 0x2e,
+ 0x03, 0x70, 0x73, 0x34
+ };
+
+ const char *str1 = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334%42";
+ const char *str2 = "[2001:0db8:85a3:08d3:1319:8a2e:0370:7334%42]";
+ sockaddr_u actual;
+
+ sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
+ expected.sa6.sin6_family = AF_INET6;
+ expected.sa6.sin6_addr = address;
+ expected.sa6.sin6_scope_id = 42;
+ SET_PORT(&expected, NTP_PORT);
+
+ TEST_ASSERT_TRUE(decodenetnum(str1, &actual));
+ TEST_ASSERT_TRUE(IsEqual(expected, actual));
+
+ TEST_ASSERT_TRUE(decodenetnum(str2, &actual));
+ TEST_ASSERT_TRUE(IsEqual(expected, actual));
+
+#else
+
TEST_IGNORE_MESSAGE("IPV6 disabled in build");
-
+
#endif
}
+void test_IPv6AddressWithPortAndScope(void)
+{
+#if defined(ISC_PLATFORM_HAVEIPV6) && defined(WANT_IPV6)
+
+ const struct in6_addr address = {
+ 0x20, 0x01, 0x0d, 0xb8,
+ 0x85, 0xa3, 0x08, 0xd3,
+ 0x13, 0x19, 0x8a, 0x2e,
+ 0x03, 0x70, 0x73, 0x34
+ };
+
+ const char *str = "[2001:0db8:85a3:08d3:1319:8a2e:0370:7334%42]:3000";
+ sockaddr_u actual;
+
+ sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
+ expected.sa6.sin6_family = AF_INET6;
+ expected.sa6.sin6_addr = address;
+ expected.sa6.sin6_scope_id = 42;
+ SET_PORT(&expected, 3000);
+
+ TEST_ASSERT_TRUE(decodenetnum(str, &actual));
+ TEST_ASSERT_TRUE(IsEqual(expected, actual));
+
+#else
+
+ TEST_IGNORE_MESSAGE("IPV6 disabled in build");
+
+#endif
+}
void
test_IllegalAddress(void)
@@ -141,6 +217,7 @@ test_IllegalCharInPort(void)
sockaddr_u actual;
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa4.sin_family = AF_INET;
expected.sa4.sin_addr.s_addr = inet_addr("192.0.2.1");
SET_PORT(&expected, NTP_PORT);
@@ -148,3 +225,14 @@ test_IllegalCharInPort(void)
TEST_ASSERT_TRUE(decodenetnum(str, &actual));
TEST_ASSERT_TRUE(IsEqual(expected, actual));
}
+
+void
+test_NameBufOverflow(void)
+{
+ const char *str =
+ "loremipsumloremipsumloremipsumloremipsumloremipsum"
+ "loremipsumloremipsumloremipsumloremipsum";
+
+ sockaddr_u actual;
+ TEST_ASSERT_FALSE(decodenetnum(str, &actual));
+}
diff --git a/tests/libntp/netof.c b/tests/libntp/netof.c
index 59dd7098d2a7..be197cf18b8a 100644
--- a/tests/libntp/netof.c
+++ b/tests/libntp/netof.c
@@ -89,11 +89,13 @@ test_IPv6Address(void)
} } }; // 2001:0db8:85a3:08d3:0000:0000:0000:0000
sockaddr_u input;
+ memset(&input, 0, sizeof(input));
input.sa6.sin6_family = AF_INET6;
input.sa6.sin6_addr = input_address;
SET_PORT(&input, 3000);
sockaddr_u expected;
+ memset(&expected, 0, sizeof(expected));
expected.sa6.sin6_family = AF_INET6;
expected.sa6.sin6_addr = expected_address;
SET_PORT(&expected, 3000);
diff --git a/tests/libntp/recvbuff.c b/tests/libntp/recvbuff.c
index 6c089bb4c33f..90986e0aba95 100644
--- a/tests/libntp/recvbuff.c
+++ b/tests/libntp/recvbuff.c
@@ -29,7 +29,7 @@ test_Initialization(void) {
void
test_GetAndFree(void) {
u_long initial = free_recvbuffs();
- recvbuf_t* buf = get_free_recv_buffer();
+ recvbuf_t* buf = get_free_recv_buffer(TRUE);
TEST_ASSERT_EQUAL_UINT(initial-1, free_recvbuffs());
freerecvbuf(buf);
@@ -40,7 +40,7 @@ test_GetAndFree(void) {
void
test_GetAndFill(void) {
// int initial = free_recvbuffs();
- recvbuf_t* buf = get_free_recv_buffer();
+ recvbuf_t* buf = get_free_recv_buffer(TRUE);
add_full_recv_buffer(buf);
TEST_ASSERT_EQUAL_UINT(1, full_recvbuffs());
diff --git a/tests/libntp/run-decodenetnum.c b/tests/libntp/run-decodenetnum.c
index ef2b3c68eb61..0d306497201a 100644
--- a/tests/libntp/run-decodenetnum.c
+++ b/tests/libntp/run-decodenetnum.c
@@ -33,8 +33,11 @@ extern void test_IPv4AddressOnly(void);
extern void test_IPv4AddressWithPort(void);
extern void test_IPv6AddressOnly(void);
extern void test_IPv6AddressWithPort(void);
+extern void test_IPv6AddressWithScope(void);
+extern void test_IPv6AddressWithPortAndScope(void);
extern void test_IllegalAddress(void);
extern void test_IllegalCharInPort(void);
+extern void test_NameBufOverflow(void);
//=======Suite Setup=====
@@ -67,8 +70,11 @@ int main(int argc, char *argv[])
RUN_TEST(test_IPv4AddressWithPort, 9);
RUN_TEST(test_IPv6AddressOnly, 10);
RUN_TEST(test_IPv6AddressWithPort, 11);
- RUN_TEST(test_IllegalAddress, 12);
- RUN_TEST(test_IllegalCharInPort, 13);
+ RUN_TEST(test_IPv6AddressWithScope, 12);
+ RUN_TEST(test_IPv6AddressWithPortAndScope, 13);
+ RUN_TEST(test_IllegalAddress, 14);
+ RUN_TEST(test_IllegalCharInPort, 15);
+ RUN_TEST(test_NameBufOverflow, 16);
return (UnityEnd());
}
diff --git a/tests/libntp/sockaddrtest.c b/tests/libntp/sockaddrtest.c
index bbf669c78487..5a37fab56fea 100644
--- a/tests/libntp/sockaddrtest.c
+++ b/tests/libntp/sockaddrtest.c
@@ -26,9 +26,9 @@ IsEqual(const sockaddr_u expected, const sockaddr_u actual) {
}
if (actual.sa.sa_family == AF_INET) { // IPv4
- if (expected.sa4.sin_port == actual.sa4.sin_port &&
- memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr,
- sizeof( in )) == 0) {
+ if ( expected.sa4.sin_port == actual.sa4.sin_port
+ && memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr,
+ sizeof( in )) == 0) {
return TRUE;
} else {
char buf[4][32];
@@ -41,9 +41,10 @@ IsEqual(const sockaddr_u expected, const sockaddr_u actual) {
return FALSE;
}
} else if (actual.sa.sa_family == AF_INET6) { //IPv6
- if (expected.sa6.sin6_port == actual.sa6.sin6_port &&
- memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr,
- sizeof(in6)) == 0) {
+ if ( expected.sa6.sin6_port == actual.sa6.sin6_port
+ && expected.sa6.sin6_scope_id == actual.sa6.sin6_scope_id
+ && memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr,
+ sizeof(in6)) == 0) {
return TRUE;
} else {
printf("IPv6 comparision failed");
diff --git a/util/invoke-ntp-keygen.texi b/util/invoke-ntp-keygen.texi
index d8356378fe70..868ca818dec0 100644
--- a/util/invoke-ntp-keygen.texi
+++ b/util/invoke-ntp-keygen.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-keygen.texi)
#
-# It has been AutoGen-ed March 3, 2020 at 05:41:32 PM by AutoGen 5.18.5
+# It has been AutoGen-ed June 23, 2020 at 02:21:07 AM by AutoGen 5.18.5
# From the definitions ntp-keygen-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -1056,7 +1056,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p14
+ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p15
Usage: ntp-keygen [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
Flg Arg Option-Name Description
-b Num imbits identity modulus bits
diff --git a/util/ntp-keygen-opts.c b/util/ntp-keygen-opts.c
index ad1258c9e51c..2dbd4cc16275 100644
--- a/util/ntp-keygen-opts.c
+++ b/util/ntp-keygen-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:28 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:21:03 AM by AutoGen 5.18.5
* From the definitions ntp-keygen-opts.def
* and the template file options
*
@@ -72,7 +72,7 @@ extern FILE * option_usage_fp;
* static const strings for ntp-keygen options
*/
static char const ntp_keygen_opt_strs[2442] =
-/* 0 */ "ntp-keygen (ntp) 4.2.8p14\n"
+/* 0 */ "ntp-keygen (ntp) 4.2.8p15\n"
"Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
@@ -165,14 +165,14 @@ static char const ntp_keygen_opt_strs[2442] =
/* 2223 */ "no-load-opts\0"
/* 2236 */ "no\0"
/* 2239 */ "NTP_KEYGEN\0"
-/* 2250 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p14\n"
+/* 2250 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p15\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
/* 2365 */ "$HOME\0"
/* 2371 */ ".\0"
/* 2373 */ ".ntprc\0"
/* 2380 */ "http://bugs.ntp.org, bugs@ntp.org\0"
/* 2414 */ "\n\0"
-/* 2416 */ "ntp-keygen (ntp) 4.2.8p14";
+/* 2416 */ "ntp-keygen (ntp) 4.2.8p15";
/**
* imbits option description:
@@ -1310,7 +1310,7 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntp_keygenOptions.pzCopyright */
- puts(_("ntp-keygen (ntp) 4.2.8p14\n\
+ puts(_("ntp-keygen (ntp) 4.2.8p15\n\
Copyright (C) 1992-2020 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
@@ -1409,14 +1409,14 @@ implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntp_keygenOptions.pzUsageTitle */
- puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p14\n\
+ puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p15\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
/* referenced via ntp_keygenOptions.pzExplain */
puts(_("\n"));
/* referenced via ntp_keygenOptions.pzFullVersion */
- puts(_("ntp-keygen (ntp) 4.2.8p14"));
+ puts(_("ntp-keygen (ntp) 4.2.8p15"));
/* referenced via ntp_keygenOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/util/ntp-keygen-opts.h b/util/ntp-keygen-opts.h
index 170ad319a2a5..e17412417f92 100644
--- a/util/ntp-keygen-opts.h
+++ b/util/ntp-keygen-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.h)
*
- * It has been AutoGen-ed March 3, 2020 at 05:41:28 PM by AutoGen 5.18.5
+ * It has been AutoGen-ed June 23, 2020 at 02:21:03 AM by AutoGen 5.18.5
* From the definitions ntp-keygen-opts.def
* and the template file options
*
@@ -94,9 +94,9 @@ typedef enum {
/** count of all options for ntp-keygen */
#define OPTION_CT 26
/** ntp-keygen version */
-#define NTP_KEYGEN_VERSION "4.2.8p14"
+#define NTP_KEYGEN_VERSION "4.2.8p15"
/** Full ntp-keygen version text */
-#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p14"
+#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p15"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/util/ntp-keygen.1ntp-keygenman b/util/ntp-keygen.1ntp-keygenman
index 4b9785424f5b..8ed9a945b540 100644
--- a/util/ntp-keygen.1ntp-keygenman
+++ b/util/ntp-keygen.1ntp-keygenman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen 1ntp-keygenman "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntp-keygen 1ntp-keygenman "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:34 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:08 AM by AutoGen 5.18.5
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/util/ntp-keygen.1ntp-keygenmdoc b/util/ntp-keygen.1ntp-keygenmdoc
index 0af3df0cf5e1..0faf3187b2c5 100644
--- a/util/ntp-keygen.1ntp-keygenmdoc
+++ b/util/ntp-keygen.1ntp-keygenmdoc
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_KEYGEN 1ntp-keygenmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:30 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:05 AM by AutoGen 5.18.5
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/util/ntp-keygen.html b/util/ntp-keygen.html
index 38d5345ddc01..47daf5e0dfa0 100644
--- a/util/ntp-keygen.html
+++ b/util/ntp-keygen.html
@@ -95,7 +95,7 @@ All other files are in PEM-encoded
printable ASCII format so they can be embedded as MIME attachments in
mail to other sites.
</p>
-<p>This document applies to version 4.2.8p14 of <code>ntp-keygen</code>.
+<p>This document applies to version 4.2.8p15 of <code>ntp-keygen</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Description" accesskey="1">Description</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -1405,7 +1405,7 @@ used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p13
+<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p14
Usage: ntp-keygen [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
Flg Arg Option-Name Description
-b Num imbits identity modulus bits
diff --git a/util/ntp-keygen.man.in b/util/ntp-keygen.man.in
index b5939b79c758..de93b031a3af 100644
--- a/util/ntp-keygen.man.in
+++ b/util/ntp-keygen.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen @NTP_KEYGEN_MS@ "03 Mar 2020" "ntp (4.2.8p14)" "User Commands"
+.TH ntp-keygen @NTP_KEYGEN_MS@ "23 Jun 2020" "ntp (4.2.8p15)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:34 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:08 AM by AutoGen 5.18.5
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/util/ntp-keygen.mdoc.in b/util/ntp-keygen.mdoc.in
index 8ddd1fc0799d..23ee11caf9bc 100644
--- a/util/ntp-keygen.mdoc.in
+++ b/util/ntp-keygen.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 3 2020
+.Dd June 23 2020
.Dt NTP_KEYGEN @NTP_KEYGEN_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed March 3, 2020 at 05:41:30 PM by AutoGen 5.18.5
+.\" It has been AutoGen-ed June 23, 2020 at 02:21:05 AM by AutoGen 5.18.5
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME