17352 lines
640 KiB
Diff
17352 lines
640 KiB
Diff
Index: contrib/ntp/ChangeLog
|
|
===================================================================
|
|
--- contrib/ntp/ChangeLog (revision 294707)
|
|
+++ contrib/ntp/ChangeLog (working copy)
|
|
@@ -1,4 +1,38 @@
|
|
---
|
|
+(4.2.8p6) 2016/01/20 Released by Harlan Stenn <stenn@ntp.org>
|
|
+
|
|
+* [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. HStenn.
|
|
+* [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+* [Sec 2937] ntpq: nextvar() missing length check. perlinger@ntp.org
|
|
+* [Sec 2938] ntpq saveconfig command allows dangerous characters
|
|
+ in filenames. perlinger@ntp.org
|
|
+* [Sec 2939] reslist NULL pointer dereference. perlinger@ntp.org
|
|
+* [Sec 2940] Stack exhaustion in recursive traversal of restriction
|
|
+ list. perlinger@ntp.org
|
|
+* [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+* [Sec 2945] Zero Origin Timestamp Bypass. perlinger@ntp.org
|
|
+* [Sec 2948] Potential Infinite Loop in ntpq ( and ntpdc) perlinger@ntp.org
|
|
+* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
|
|
+* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
|
|
+ - applied patch by shenpeng11@huawei.com with minor adjustments
|
|
+* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
|
|
+* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
|
|
+* [Bug 2892] Several test cases assume IPv6 capabilities even when
|
|
+ IPv6 is disabled in the build. perlinger@ntp.org
|
|
+ - Found this already fixed, but validation led to cleanup actions.
|
|
+* [Bug 2905] DNS lookups broken. perlinger@ntp.org
|
|
+ - added limits to stack consumption, fixed some return code handling
|
|
+* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
|
|
+ - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
|
|
+* [Bug 2980] reduce number of warnings. perlinger@ntp.org
|
|
+ - integrated several patches from Havard Eidnes (he@uninett.no)
|
|
+* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
|
|
+ - implement 'auth_log2()' using integer bithack instead of float calculation
|
|
+* Make leapsec_query debug messages less verbose. Harlan Stenn.
|
|
+* Disable incomplete t-ntp_signd.c test. Harlan Stenn.
|
|
+
|
|
+---
|
|
(4.2.8p5) 2016/01/07 Released by Harlan Stenn <stenn@ntp.org>
|
|
|
|
* [Sec 2956] small-step/big-step. Close the panic gate earlier. HStenn.
|
|
@@ -47,6 +81,7 @@
|
|
lots of clients. perlinger@ntp.org
|
|
* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
- changed stacked/nested handling of CTRL-C. perlinger@ntp.org
|
|
+ - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
|
|
* Unity cleanup for FreeBSD-6.4. Harlan Stenn.
|
|
* Unity test cleanup. Harlan Stenn.
|
|
* Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
|
|
@@ -55,9 +90,8 @@
|
|
* Quiet a warning from clang. Harlan Stenn.
|
|
* Update the NEWS file. Harlan Stenn.
|
|
* Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
|
|
+
|
|
---
|
|
-(4.2.8p4) 2015/10/21 Released by Harlan Stenn <stenn@ntp.org>
|
|
-(4.2.8p4-RC1) 2015/10/06 Released by Harlan Stenn <stenn@ntp.org>
|
|
|
|
* [Sec 2899] CVE-2014-9297 perlinger@ntp.org
|
|
* [Sec 2901] Drop invalid packet before checking KoD. Check for all KoD's.
|
|
Index: contrib/ntp/CommitLog
|
|
===================================================================
|
|
--- contrib/ntp/CommitLog (revision 294707)
|
|
+++ contrib/ntp/CommitLog (working copy)
|
|
@@ -1,8 +1,633 @@
|
|
-ChangeSet@1.3623, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu
|
|
+ChangeSet@1.3628, 2016-01-20 04:20:12-05:00, stenn@deacon.udel.edu
|
|
+ NTP_4_2_8P6
|
|
+ TAG: NTP_4_2_8P6
|
|
+
|
|
+ ChangeLog@1.1793 +1 -0
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/invoke-ntp.conf.texi@1.196 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/invoke-ntp.keys.texi@1.188 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/invoke-ntpd.texi@1.504 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.conf.5man@1.230 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.conf.5mdoc@1.230 +2 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.conf.html@1.183 +60 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.conf.man.in@1.230 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.conf.mdoc.in@1.230 +2 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.keys.5man@1.222 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.keys.5mdoc@1.222 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.keys.html@1.184 +21 -33
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.keys.man.in@1.222 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntp.keys.mdoc.in@1.222 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd-opts.c@1.526 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd-opts.h@1.525 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd.1ntpdman@1.333 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd.1ntpdmdoc@1.333 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd.html@1.177 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd.man.in@1.333 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpd/ntpd.mdoc.in@1.333 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/invoke-ntpdc.texi@1.501 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc-opts.c@1.519 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc-opts.h@1.518 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc.1ntpdcman@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc.1ntpdcmdoc@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc.html@1.345 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc.man.in@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpdc/ntpdc.mdoc.in@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/invoke-ntpq.texi@1.508 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq-opts.c@1.525 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq-opts.h@1.523 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq.1ntpqman@1.336 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq.1ntpqmdoc@1.336 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq.html@1.174 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq.man.in@1.336 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpq/ntpq.mdoc.in@1.336 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/invoke-ntpsnmpd.texi@1.503 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd-opts.c@1.521 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd-opts.h@1.520 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd.html@1.172 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd.man.in@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ ntpsnmpd/ntpsnmpd.mdoc.in@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ packageinfo.sh@1.524 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.93 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.94 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/calc_tickadj.html@1.95 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/calc_tickadj.man.in@1.92 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/calc_tickadj.mdoc.in@1.94 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/calc_tickadj/invoke-calc_tickadj.texi@1.97 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/invoke-plot_summary.texi@1.114 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/invoke-summary.texi@1.114 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/invoke-ntp-wait.texi@1.324 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait-opts@1.60 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait.1ntp-waitman@1.321 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.322 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait.html@1.341 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait.man.in@1.321 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntp-wait/ntp-wait.mdoc.in@1.322 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/invoke-ntpsweep.texi@1.112 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep-opts@1.62 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep.1ntpsweepman@1.100 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.100 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep.html@1.113 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep.man.in@1.100 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntpsweep/ntpsweep.mdoc.in@1.101 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/invoke-ntptrace.texi@1.113 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace-opts@1.62 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace.1ntptraceman@1.100 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace.1ntptracemdoc@1.101 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace.html@1.114 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace.man.in@1.100 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/ntptrace/ntptrace.mdoc.in@1.102 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary-opts@1.62 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary.1plot_summaryman@1.112 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary.1plot_summarymdoc@1.112 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary.html@1.115 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary.man.in@1.112 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/plot_summary.mdoc.in@1.112 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary-opts@1.62 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary.1summaryman@1.112 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary.1summarymdoc@1.112 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary.html@1.115 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary.man.in@1.112 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/summary.mdoc.in@1.112 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/invoke-update-leap.texi@1.13 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap-opts@1.13 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap.1update-leapman@1.13 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap.1update-leapmdoc@1.13 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap.html@1.13 +1 -1
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap.man.in@1.13 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ scripts/update-leap/update-leap.mdoc.in@1.13 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/invoke-sntp.texi@1.501 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp-opts.c@1.520 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp-opts.h@1.518 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp.1sntpman@1.336 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp.1sntpmdoc@1.336 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp.html@1.516 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp.man.in@1.336 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ sntp/sntp.mdoc.in@1.336 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/invoke-ntp-keygen.texi@1.504 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen-opts.c@1.522 +10 -10
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen-opts.h@1.520 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen.1ntp-keygenman@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen.1ntp-keygenmdoc@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen.html@1.178 +2 -2
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen.man.in@1.332 +4 -4
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ util/ntp-keygen.mdoc.in@1.332 +3 -3
|
|
+ NTP_4_2_8P6
|
|
+
|
|
+ChangeSet@1.3627, 2016-01-20 04:14:51-05:00, stenn@deacon.udel.edu
|
|
+ solaris hack
|
|
+
|
|
+ libntp/work_thread.c@1.20 +2 -0
|
|
+ solaris hack
|
|
+
|
|
+ChangeSet@1.3626, 2016-01-20 01:50:09-05:00, stenn@deacon.udel.edu
|
|
+ 4.2.8p6
|
|
+
|
|
+ packageinfo.sh@1.523 +1 -1
|
|
+ 4.2.8p6
|
|
+
|
|
+ChangeSet@1.3625, 2016-01-20 00:34:15+00:00, stenn@psp-deb1.ntp.org
|
|
+ updates
|
|
+
|
|
+ NEWS@1.160 +24 -24
|
|
+ updates
|
|
+
|
|
+ChangeSet@1.3624, 2016-01-19 22:28:41+00:00, stenn@psp-deb1.ntp.org
|
|
+ typo
|
|
+
|
|
+ NEWS@1.159 +1 -1
|
|
+ typo
|
|
+
|
|
+ChangeSet@1.3623, 2016-01-18 11:55:56+00:00, stenn@psp-deb1.ntp.org
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ChangeLog@1.1792 +1 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ NEWS@1.158 +40 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ include/Makefile.am@1.54 +1 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ include/ntp_io.h@1.23 +2 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ include/ntp_keyacc.h@1.1 +13 -0
|
|
+ BitKeeper file /home/stenn/ntp-stable-2936/include/ntp_keyacc.h
|
|
+
|
|
+ include/ntp_keyacc.h@1.0 +0 -0
|
|
+
|
|
+ include/ntp_stdlib.h@1.81 +4 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ include/ntp_types.h@1.36 +1 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ libntp/Makefile.am@1.77 +1 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ libntp/authkeys.c@1.31 +60 -6
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ libntp/authreadkeys.c@1.25 +50 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ libntp/authusekey.c@1.11 +1 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ libntp/is_ip_address.c@1.1 +129 -0
|
|
+ BitKeeper file /home/stenn/ntp-stable-2936/libntp/is_ip_address.c
|
|
+
|
|
+ libntp/is_ip_address.c@1.0 +0 -0
|
|
+
|
|
+ ntpd/invoke-ntp.keys.texi@1.187 +11 -3
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.5man@1.221 +13 -5
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.5mdoc@1.221 +14 -6
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.def@1.11 +10 -2
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.html@1.183 +42 -22
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.man.in@1.221 +13 -5
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp.keys.mdoc.in@1.221 +14 -6
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp_crypto.c@1.186 +1 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp_io.c@1.412 +0 -72
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ ntpd/ntp_proto.c@1.373 +34 -0
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ tests/libntp/authkeys.c@1.15 +1 -1
|
|
+ [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
|
|
+
|
|
+ChangeSet@1.3622, 2016-01-17 09:03:57+00:00, stenn@psp-deb1.ntp.org
|
|
+ Disable incomplete t-ntp_signd.c test. Harlan Stenn.
|
|
+
|
|
+ ChangeLog@1.1791 +1 -0
|
|
+ Disable incomplete t-ntp_signd.c test. Harlan Stenn.
|
|
+
|
|
+ tests/ntpd/t-ntp_signd.c@1.16 +4 -0
|
|
+ Disable incomplete t-ntp_signd.c test. Harlan Stenn.
|
|
+
|
|
+ChangeSet@1.3621, 2016-01-17 05:51:14+00:00, stenn@psp-deb1.ntp.org
|
|
+ Update NEWS file for 2942
|
|
+
|
|
+ NEWS@1.157 +22 -0
|
|
+ Update NEWS file for 2942
|
|
+
|
|
+ChangeSet@1.3615.13.1, 2016-01-17 05:07:22+00:00, stenn@psp-deb1.ntp.org
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ChangeLog@1.1786.13.1 +4 -0
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ html/miscopt.html@1.85 +11 -3
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ include/ntp.h@1.213.1.1 +3 -0
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/invoke-ntp.conf.texi@1.195 +64 -3
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/keyword-gen-utd@1.27 +1 -1
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/keyword-gen.c@1.33 +3 -0
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp.conf.5man@1.229 +71 -7
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp.conf.5mdoc@1.229 +71 -7
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp.conf.def@1.21 +67 -4
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp.conf.man.in@1.229 +71 -7
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp.conf.mdoc.in@1.229 +71 -7
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_config.c@1.335.1.1 +12 -0
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_keyword.h@1.29 +505 -468
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_parser.c@1.101 +1762 -1513
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_parser.h@1.65 +257 -235
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_parser.y@1.91 +6 -0
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ ntpd/ntp_proto.c@1.368.2.1 +40 -4
|
|
+ [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
|
|
+
|
|
+ChangeSet@1.3619, 2016-01-14 12:19:16+00:00, stenn@psp-at1.ntp.org
|
|
+ NEWS file updates
|
|
+
|
|
+ NEWS@1.156 +21 -0
|
|
+ NEWS file updates
|
|
+
|
|
+ChangeSet@1.3615.1.9, 2016-01-14 11:33:43+00:00, stenn@psp-at1.ntp.org
|
|
+ merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.1.9 +3 -0
|
|
+ merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.1.5, 2016-01-14 10:44:13+00:00, stenn@psp-at1.ntp.org
|
|
+ merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.1.5 +0 -1
|
|
+ merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.12.4, 2016-01-14 10:27:23+00:00, stenn@psp-at1.ntp.org
|
|
+ merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.12.4 +1 -1
|
|
+ merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.12.2, 2016-01-14 09:49:52+00:00, stenn@psp-at1.ntp.org
|
|
+ merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.12.2 +2 -2
|
|
+ merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.3.17, 2016-01-14 09:33:56+00:00, stenn@psp-at1.ntp.org
|
|
+ merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.3.14 +1 -1
|
|
+ merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.3.14, 2016-01-14 07:36:57+00:00, stenn@psp-at1.ntp.org
|
|
+ NEWS update
|
|
+
|
|
+ NEWS@1.155 +98 -7
|
|
+ NEWS update
|
|
+
|
|
+ChangeSet@1.3615.3.12, 2016-01-13 08:07:30+00:00, stenn@psp-deb1.ntp.org
|
|
+ typo
|
|
+
|
|
+ ChangeLog@1.1786.3.10 +1 -1
|
|
+ typo
|
|
+
|
|
+ChangeSet@1.3615.3.10, 2016-01-13 06:08:29+00:00, stenn@psp-deb1.ntp.org
|
|
+ Update NEWS file for bug 2938
|
|
+
|
|
+ NEWS@1.154 +29 -2
|
|
+ Update NEWS file for bug 2938
|
|
+
|
|
+ChangeSet@1.3615.3.8, 2016-01-13 04:23:46+00:00, stenn@psp-deb1.ntp.org
|
|
+ Update NEWS file for bug 2935
|
|
+
|
|
+ NEWS@1.153 +52 -0
|
|
+ Update NEWS file for bug 2935
|
|
+
|
|
+ChangeSet@1.3615.7.12, 2016-01-12 09:53:06+00:00, stenn@psp-at1.ntp.org
|
|
+ [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger
|
|
+
|
|
+ ntpd/ntp_proto.c@1.368.1.5 +4 -1
|
|
+ [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger
|
|
+
|
|
+ChangeSet@1.3615.7.11, 2016-01-11 03:02:53-08:00, harlan@max.pfcs.com
|
|
+ [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
|
|
+
|
|
+ ChangeLog@1.1786.9.1 +4 -0
|
|
+ [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
|
|
+
|
|
+ include/ntp.h@1.215 +1 -0
|
|
+ [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
|
|
+
|
|
+ ntpd/ntp_proto.c@1.368.1.4 +67 -0
|
|
+ [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
|
|
+
|
|
+ChangeSet@1.3615.7.10, 2016-01-11 02:44:25-08:00, harlan@max.pfcs.com
|
|
+ make leapsec_query messages less verbose.
|
|
+
|
|
+ ntpd/ntp_timer.c@1.93.1.1 +6 -4
|
|
+ make leapsec_query messages less verbose.
|
|
+
|
|
+ChangeSet@1.3615.9.1, 2016-01-11 10:26:12+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2985] bogus calculation in authkeys.c
|
|
+ - implement 'auth_log2()' using integer bithack instead of float calculation
|
|
+
|
|
+ ChangeLog@1.1786.7.5 +2 -0
|
|
+ [Bug 2985] bogus calculation in authkeys.c
|
|
+ - implement 'auth_log2()' using integer bithack instead of float calculation
|
|
+
|
|
+ libntp/authkeys.c@1.30 +33 -10
|
|
+ [Bug 2985] bogus calculation in authkeys.c
|
|
+ - implement 'auth_log2()' using integer bithack instead of float calculation
|
|
+
|
|
+ tests/libntp/authkeys.c@1.14 +38 -0
|
|
+ [Bug 2985] bogus calculation in authkeys.c
|
|
+ - test bithack implementation of 'auth_log2()'
|
|
+
|
|
+ tests/libntp/run-authkeys.c@1.12 +9 -6
|
|
+ [Bug 2985] bogus calculation in authkeys.c
|
|
+ - update auto-generated file
|
|
+
|
|
+ChangeSet@1.3615.7.9, 2016-01-09 09:52:44+00:00, stenn@psp-at1.ntp.org
|
|
+ Add timelastrec to the peer structure
|
|
+
|
|
+ include/ntp.h@1.214 +2 -1
|
|
+ Add timelastrec to the peer structure
|
|
+
|
|
+ChangeSet@1.3615.3.6, 2016-01-08 10:00:03+00:00, stenn@psp-at1.ntp.org
|
|
+ 4.2.8p5 merge cleanup
|
|
+
|
|
+ ChangeLog@1.1786.3.6 +1 -1
|
|
+ 4.2.8p5 merge cleanup
|
|
+
|
|
+ChangeSet@1.3615.7.8, 2016-01-08 00:26:09+00:00, stenn@deacon.udel.edu
|
|
+ Update copyright year
|
|
+
|
|
+ sntp/include/copyright.def@1.26 +1 -1
|
|
+ Update copyright year
|
|
+
|
|
+ChangeSet@1.3615.7.7, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu
|
|
NTP_4_2_8P5
|
|
TAG: NTP_4_2_8P5
|
|
|
|
- ChangeLog@1.1791 +1 -0
|
|
+ ChangeLog@1.1786.7.4 +1 -0
|
|
NTP_4_2_8P5
|
|
|
|
ntpd/invoke-ntp.conf.texi@1.194 +1 -1
|
|
@@ -332,60 +957,349 @@
|
|
util/ntp-keygen.mdoc.in@1.331 +2 -2
|
|
NTP_4_2_8P5
|
|
|
|
-ChangeSet@1.3622, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu
|
|
+ChangeSet@1.3615.7.6, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu
|
|
ntp-4.2.8p5
|
|
|
|
packageinfo.sh@1.521 +1 -1
|
|
ntp-4.2.8p5
|
|
|
|
-ChangeSet@1.3621, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org
|
|
+ChangeSet@1.3615.7.5, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org
|
|
cleanup
|
|
|
|
NEWS@1.152 +2 -2
|
|
cleanup
|
|
|
|
-ChangeSet@1.3620, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org
|
|
+ChangeSet@1.3615.7.4, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org
|
|
typo in ntp_proto.c - leap smear. Reported by Martin Burnicki
|
|
|
|
- ntpd/ntp_proto.c@1.371 +1 -1
|
|
+ ntpd/ntp_proto.c@1.368.1.3 +1 -1
|
|
typo in ntp_proto.c - leap smear. Reported by Martin Burnicki
|
|
|
|
-ChangeSet@1.3619, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org
|
|
+ChangeSet@1.3615.7.3, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org
|
|
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
|
|
|
|
- ChangeLog@1.1790 +1 -0
|
|
+ ChangeLog@1.1786.7.3 +1 -0
|
|
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
|
|
|
|
scripts/calc_tickadj/Makefile.am@1.11 +2 -0
|
|
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
|
|
|
|
-ChangeSet@1.3616.1.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org
|
|
+ChangeSet@1.3615.3.2, 2016-01-05 12:34:56+00:00, stenn@psp-at1.ntp.org
|
|
+ ntp-4.2.8p6
|
|
+
|
|
+ ChangeLog@1.1786.3.2 +2 -0
|
|
+ ntp-4.2.8p6
|
|
+
|
|
+ChangeSet@1.3615.8.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org
|
|
Bug 2952 fixes
|
|
|
|
- ChangeLog@1.1787.1.1 +1 -0
|
|
+ ChangeLog@1.1786.8.1 +1 -0
|
|
Bug 2952 fixes
|
|
|
|
- ntpd/ntp_proto.c@1.370 +165 -152
|
|
+ ntpd/ntp_proto.c@1.368.1.2 +165 -152
|
|
Bug 2952 fixes
|
|
|
|
-ChangeSet@1.3617, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org
|
|
+ChangeSet@1.3615.7.1, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org
|
|
ntp-4.2.8p5 prep
|
|
|
|
- ChangeLog@1.1788 +2 -1
|
|
+ ChangeLog@1.1786.7.1 +2 -1
|
|
ntp-4.2.8p5 prep
|
|
|
|
NEWS@1.151 +104 -3
|
|
ntp-4.2.8p5 prep
|
|
|
|
-ChangeSet@1.3616, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org
|
|
+ChangeSet@1.3615.5.1, 2015-12-13 13:35:12+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ Found this already fixed, but validation lead to further cleanup:
|
|
+ - source code formatting
|
|
+ - inline variable definitions moved to start of block
|
|
+ - made some pure input data pointers 'const void*' instead of 'char*'; avoids casts and warnings
|
|
+
|
|
+ ChangeLog@1.1786.5.1 +3 -0
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+
|
|
+ sntp/crypto.c@1.19 +13 -12
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - sidekick: make pure input pointers 'const void*' instead of 'char*'
|
|
+ - sidekick: remove unnecessary casts
|
|
+
|
|
+ sntp/crypto.h@1.11 +11 -9
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - sidekick: make pure input pointers 'const void*' instead of 'char*'
|
|
+ - source formatting
|
|
+
|
|
+ sntp/main.c@1.99 +1 -1
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - no need to cast input to 'make_mac()' any more
|
|
+
|
|
+ sntp/networking.c@1.68 +1 -1
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - no need to cast input to 'auth_md5()' any more
|
|
+
|
|
+ sntp/tests/crypto.c@1.10 +41 -27
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - remove unnecessary casts
|
|
+ - source code formatting
|
|
+
|
|
+ sntp/tests/fileHandlingTest.c@1.4 +43 -20
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*'
|
|
+
|
|
+ sntp/tests/fileHandlingTest.h.in@1.15 +6 -15
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*'
|
|
+
|
|
+ sntp/tests/keyFile.c@1.13 +66 -46
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - use 'DestroyPath()' avoid trouble with 'free()' on 'const char*'
|
|
+ - printf() combined
|
|
+ - source code formatting
|
|
+ - move variable declarations to front
|
|
+
|
|
+ sntp/tests/packetHandling.c@1.6 +75 -64
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - move variable declarations to front
|
|
+ - source code formatting
|
|
+
|
|
+ sntp/tests/packetProcessing.c@1.9 +124 -90
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - move variable declarations to front
|
|
+ - source code formatting
|
|
+ - drop unnecessary casts
|
|
+
|
|
+ sntp/tests/run-packetProcessing.c@1.10 +18 -18
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+
|
|
+ sntp/unity/unity_internals.h@1.6 +1 -1
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - added missing 'const' in pointer casts
|
|
+
|
|
+ tests/libntp/decodenetnum.c@1.11 +33 -23
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - source code formatting + cleanup
|
|
+
|
|
+ tests/libntp/run-decodenetnum.c@1.11 +4 -4
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+
|
|
+ tests/libntp/run-socktoa.c@1.14 +5 -5
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+
|
|
+ tests/libntp/socktoa.c@1.12 +23 -17
|
|
+ [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
|
|
+ - source code formatting + cleanup
|
|
+
|
|
+ChangeSet@1.3615.4.1, 2015-12-11 18:24:16+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2882] Look at ntp_request.c:list_peers_sum()
|
|
+
|
|
+ ChangeLog@1.1786.4.1 +1 -0
|
|
+ [Bug 2882] Look at ntp_request.c:list_peers_sum()
|
|
+
|
|
+ ntpd/ntp_request.c@1.116 +57 -72
|
|
+ [Bug 2882] Look at ntp_request.c:list_peers_sum()
|
|
+ - 'list_peers()' and 'list_peers_sum()' skip IPv6 entires if client does not support them,
|
|
+ but continue processing until end of list now.
|
|
+
|
|
+ChangeSet@1.3615.1.3, 2015-12-09 18:23:31+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+
|
|
+ ChangeLog@1.1786.1.3 +1 -0
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+
|
|
+ include/ntp_worker.h@1.5 +31 -22
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+ - provide signal-safe result-ready detection
|
|
+
|
|
+ libntp/ntp_worker.c@1.7 +27 -0
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+ - support signal-safe result-ready detection
|
|
+ - provide function to harvest async results from mainloop
|
|
+
|
|
+ ntpd/ntp_io.c@1.409.1.1 +160 -133
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+ - do not process async-resolver results from signal handler
|
|
+ - set notification tags to harvest asyn-resolver results from mainloop
|
|
+ - avoid double select for synchronous IO
|
|
+ - avoid several syslog calls in signal-handler context
|
|
+ - refactor / conditionalize some functions that cannot be used in signal-driven IO
|
|
+
|
|
+ ntpd/ntpd.c@1.169 +4 -0
|
|
+ [Bug 2891] Deadlock in deferred DNS lookup framework.
|
|
+ - reap/harvest async resolver results from mainloop
|
|
+
|
|
+ChangeSet@1.3615.1.2, 2015-12-06 21:33:26+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
|
|
+ - applied patch by shenpeng11@huawei.com with minor adjustments
|
|
+
|
|
+ ChangeLog@1.1786.1.2 +2 -0
|
|
+ [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
|
|
+ - applied patch by shenpeng11@huawei.com with minor adjustments
|
|
+
|
|
+ ntpd/ntpd.c@1.168 +26 -3
|
|
+ [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
|
|
+ - applied patch by shenpeng11@huawei.com with minor adjustments
|
|
+
|
|
+ChangeSet@1.3615.2.1, 2015-12-06 20:19:32+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2772] adj_systime overflows tv_usec
|
|
+
|
|
+ ChangeLog@1.1786.2.1 +1 -0
|
|
+ [Bug 2772] adj_systime overflows tv_usec
|
|
+
|
|
+ libntp/systime.c@1.71 +12 -3
|
|
+ [Bug 2772] adj_systime overflows tv_usec
|
|
+ - add missing normalisation for nitpicking implementations of 'adjtime()'
|
|
+
|
|
+ChangeSet@1.3615.1.1, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org
|
|
Quiet a warning from clang. Harlan Stenn.
|
|
|
|
- ChangeLog@1.1787 +1 -0
|
|
+ ChangeLog@1.1786.1.1 +1 -0
|
|
Quiet a warning from clang. Harlan Stenn.
|
|
|
|
libntp/ntp_rfc2553.c@1.50 +3 -2
|
|
Quiet a warning from clang. Harlan Stenn.
|
|
|
|
+ChangeSet@1.3616, 2015-12-05 20:28:19+00:00, perlinger@psp-deb1.ntp.org
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - string formatting(arguments should be literals)
|
|
+ - applying constness where necessary
|
|
+ - removing bad consts that are superfluous
|
|
+ - avoid signed/unsigned clashes in conditionals (either by cast or type change)
|
|
+ - signed/unsigned and promotion conflicts
|
|
+ - add prototypes for function pointer tables
|
|
+ - force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...})
|
|
+
|
|
+ ChangeLog@1.1787 +2 -0
|
|
+ [Bug 2980] reduce number of warnings
|
|
+
|
|
+ include/parse.h@1.14 +3 -3
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - make GPSWRAP and GPSWEEK unqualified literals to avoid signed/unsigned clashes
|
|
+
|
|
+ ntpd/ntp_config.c@1.336 +2 -0
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - add forward declaration of yyparse()
|
|
+
|
|
+ ntpd/ntp_io.c@1.410 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - fix a signedness comparison by adding a cast to size_t
|
|
+
|
|
+ ntpd/ntp_scanner.c@1.49 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - for type compatibility, make counter 'i' a size_t
|
|
+
|
|
+ ntpd/ntp_timer.c@1.94 +5 -6
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - fix a signed / unsigned compare
|
|
+
|
|
+ ntpd/refclock_chu.c@1.58 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - rewrite check to avoid warning about integer overflow
|
|
+
|
|
+ ntpd/refclock_gpsdjson.c@1.24 +13 -15
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - reshuffle to use a literal format string
|
|
+ - fix signed/unsigned clashes in compare
|
|
+
|
|
+ ntpd/refclock_jjy.c@1.30 +47 -44
|
|
+ Bug 2980 - reduce number of warnings
|
|
+ - make several pointers 'const char*'
|
|
+ - add prototypes for function pointer tables
|
|
+ - force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...})
|
|
+
|
|
+ ntpd/refclock_shm.c@1.39 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - fix signed/unsigned clashes in compare
|
|
+
|
|
+ ntpq/ntpq-subs.c@1.114.1.1 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - avoid signed/unsigned clashe in compare
|
|
+
|
|
+ ntpq/ntpq.c@1.165.1.1 +47 -7
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - avoid juggling with formatting into dynamic buffers by a 'asprintf' like function
|
|
+
|
|
+ sntp/libopts/configfile.c@1.24 +22 -22
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - add some pointer constness to avoid casting it away
|
|
+
|
|
+ sntp/libopts/enum.c@1.14 +5 -5
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - avoid some unnecessary casts
|
|
+ - avoid shift/promote ambiguity by proper typing
|
|
+
|
|
+ sntp/libopts/find.c@1.13 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - Use VOIDP instead of a (char*) cast
|
|
+
|
|
+ sntp/libopts/init.c@1.9 +2 -3
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - use VOIDP() to replace a complicated double cast
|
|
+ - remove one useless cast
|
|
+
|
|
+ sntp/libopts/load.c@1.22 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - remove a useless cast
|
|
+
|
|
+ sntp/libopts/makeshell.c@1.21 +3 -3
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - fix integer promotion in calls to toupper/tolower
|
|
+
|
|
+ sntp/libopts/nested.c@1.17 +3 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - avoid casting away constness by using a helper variable
|
|
+
|
|
+ sntp/libopts/parse-duration.c@1.15 +8 -2
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - avoid casting away constness by using a helper variable
|
|
+
|
|
+ sntp/libopts/reset.c@1.18 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - remove a useless cast
|
|
+
|
|
+ sntp/libopts/save.c@1.19 +2 -2
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - use VOIDP() instead of cast via (void**)
|
|
+
|
|
+ sntp/libopts/tokenize.c@1.14 +1 -1
|
|
+ [Bug 2980] reduce number of warnings
|
|
+ - add a required const qualification
|
|
+
|
|
+ChangeSet@1.3597.1.5, 2015-12-05 14:29:10+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - make CTRL-C work for retrieval and printing od MRU list.
|
|
+
|
|
+ ChangeLog@1.1770.1.3 +1 -0
|
|
+ [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - make CTRL-C work for retrieval and printing od MRU list.
|
|
+
|
|
+ ntpq/ntpq-subs.c@1.115 +6 -0
|
|
+ [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - make CTRL-C work for retrieval and printing od MRU list:
|
|
+ 1) CTRL-C while collecting terminates the assembling of respose.
|
|
+ 2) CTRL-C while printing will terminate the print loop.
|
|
+ 3) both work independently of each other.
|
|
+
|
|
+ ntpq/ntpq.c@1.166 +16 -0
|
|
+ [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - when collecting fragments, CTRL-C will try to cleanly return the list of fragments so far.
|
|
+
|
|
+ChangeSet@1.3597.5.1, 2015-12-05 13:44:57+01:00, jnperlin@hydra.localnet
|
|
+ [Bug 2905] DNS lookups broken.
|
|
+ - added limits to stack consumption, fixed some return code handling
|
|
+
|
|
+ ChangeLog@1.1770.5.1 +2 -0
|
|
+ [Bug 2905] DNS lookups broken.
|
|
+ - added limits to stack consumption, fixed some return code handling
|
|
+
|
|
+ libntp/work_thread.c@1.19 +55 -17
|
|
+ [Bug 2905] DNS lookups broken.
|
|
+ - added limits to stack consumption
|
|
+ - fixed some return code handling
|
|
+ - harden queue handling
|
|
+
|
|
+ ntpd/ntpd.c@1.166.1.1 +21 -4
|
|
+ [Bug 2905] DNS lookups broken.
|
|
+ - added limits to stack consumption of wartmup thread
|
|
+
|
|
ChangeSet@1.3615, 2015-12-05 10:41:51+00:00, stenn@psp-at1.ntp.org
|
|
CID 1341677: Nits in sntp/tests/keyFile.c. HStenn.
|
|
|
|
@@ -1113,7 +2027,7 @@ ChangeSet@1.3584.1.1, 2015-11-13 22:54:35+01:00, j
|
|
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
|
|
- avoid 'unused' warnings
|
|
|
|
- ntpd/ntp_proto.c@1.369 +8 -6
|
|
+ ntpd/ntp_proto.c@1.368.1.1 +8 -6
|
|
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
|
|
- promote use of 'size_t' for values that express a size
|
|
- format string fixes
|
|
@@ -1164,7 +2078,7 @@ ChangeSet@1.3584.1.1, 2015-11-13 22:54:35+01:00, j
|
|
- promote use of 'size_t' for values that express a size
|
|
- avoid truncation of SOCKET handles
|
|
|
|
- ntpdc/ntpdc.c@1.105 +36 -34
|
|
+ ntpdc/ntpdc.c@1.104.1.1 +36 -34
|
|
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
|
|
- promote use of 'size_t' for values that express a size
|
|
- format string fixes
|
|
@@ -1827,6 +2741,31 @@ ChangeSet@1.3574, 2015-10-20 08:00:43+00:00, stenn
|
|
NEWS@1.149 +16 -16
|
|
Update CVEs
|
|
|
|
+ChangeSet@1.3558.8.1, 2015-10-17 23:19:57+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2945] Zero Origin Timestamp Bypass
|
|
+
|
|
+ ChangeLog@1.1743.8.1 +2 -0
|
|
+ [Bug 2945] Zero Origin Timestamp Bypass
|
|
+
|
|
+ ntpd/ntp_proto.c@1.364.2.1 +9 -1
|
|
+ [Bug 2945] Zero Origin Timestamp Bypass
|
|
+ - in basic mode 'aorg' is cleared to indicate a response has been received. So a reply has to be dropped
|
|
+ when it either does not match the origin timestamp OR the origin time stamp is zero.
|
|
+
|
|
+ChangeSet@1.3558.7.1, 2015-10-17 21:15:39+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2948] Potential Infinite Loop in ntpq and ntpdc
|
|
+
|
|
+ ChangeLog@1.1743.7.1 +2 -0
|
|
+ [Bug 2948] Potential Infinite Loop in ntpq and ntpdc
|
|
+
|
|
+ ntpdc/ntpdc.c@1.105 +20 -1
|
|
+ [Bug 2948] Potential Infinite Loop in ntpq and ntpdc
|
|
+ - check timeout between request and valid response(s) instead of *any* incoming data
|
|
+
|
|
+ ntpq/ntpq.c@1.161.2.1 +22 -2
|
|
+ [Bug 2948] Potential Infinite Loop in ntpq and ntpdc
|
|
+ - check timeout between request and valid response(s) instead of *any* incoming data
|
|
+
|
|
ChangeSet@1.3573, 2015-10-17 06:28:49+00:00, stenn@psp-deb1.ntp.org
|
|
ntp-4.2.8p4-sec-RC2
|
|
|
|
@@ -2172,6 +3111,53 @@ ChangeSet@1.3571, 2015-10-17 01:39:22+00:00, stenn
|
|
ChangeLog@1.1755 +4 -1
|
|
[Sec 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
|
|
|
|
+ChangeSet@1.3558.6.2, 2015-10-13 23:31:28+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2938] ntpq saveconfig command allows dangerous characters in filenames.
|
|
+ - make sure the file does not exist (no overwrite allowed)
|
|
+ - ensure text mode where applicable (windows)
|
|
+
|
|
+ ntpd/ntp_control.c@1.203.1.2 +17 -3
|
|
+ [Bug 2938] ntpq saveconfig command allows dangerous characters in filenames.
|
|
+ - make sure the file does not exist (no overwrite allowed)
|
|
+ - ensure text mode where applicable (windows)
|
|
+
|
|
+ChangeSet@1.3558.6.1, 2015-10-12 08:18:56+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
|
|
+
|
|
+ ChangeLog@1.1743.6.1 +3 -0
|
|
+ [Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
|
|
+
|
|
+ ntpd/ntp_control.c@1.203.1.1 +161 -37
|
|
+ [Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
|
|
+ - added function to check safe file names ([_A-Za-z0-9][-+._A-Za-z0-9]*)
|
|
+ - checked for truncation, too, not only overrun safey
|
|
+
|
|
+ChangeSet@1.3558.5.1, 2015-10-11 14:12:31+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2939] reslist NULL pointer dereference
|
|
+ [Bug 2940] Stack exhaustion in recursive traversal of restriction list
|
|
+ -- these two where fixed together --
|
|
+
|
|
+ ChangeLog@1.1743.5.1 +4 -0
|
|
+ [Bug 2939] reslist NULL pointer dereference
|
|
+ [Bug 2940] Stack exhaustion in recursive traversal of restriction list
|
|
+
|
|
+ ntpd/ntp_request.c@1.113.1.1 +127 -39
|
|
+ [Bug 2939] reslist NULL pointer dereference
|
|
+ [Bug 2940] Stack exhaustion in recursive traversal of restriction list
|
|
+ - use iteration and a scratch pad stack to do the list reversal; deep recusrsion can be dangerous in C
|
|
+ - properly terminate processing when 'more_pkt()' indicates packet full
|
|
+ - check the return value of 'more_pkt()' when used in iterations, or trash it explicitely
|
|
+ - fixed uint32_t vs. u_long clash that would cause security problems on big-endian 64bit machines
|
|
+
|
|
+ChangeSet@1.3558.4.1, 2015-10-11 09:32:40+02:00, jnperlin@hydra.localnet
|
|
+ [Bug 2937] (NTPQ) nextvar() missing length check
|
|
+
|
|
+ ChangeLog@1.1743.4.1 +2 -0
|
|
+ [Bug 2937] (NTPQ) nextvar() missing length check
|
|
+
|
|
+ ntpq/ntpq.c@1.161.1.1 +2 -0
|
|
+ [Bug 2937] (NTPQ) nextvar() missing length check
|
|
+
|
|
ChangeSet@1.3558.3.3, 2015-10-11 08:10:20+02:00, jnperlin@hydra.localnet
|
|
[Bug 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
|
|
|
|
Index: contrib/ntp/NEWS
|
|
===================================================================
|
|
--- contrib/ntp/NEWS (revision 294707)
|
|
+++ contrib/ntp/NEWS (working copy)
|
|
@@ -1,5 +1,258 @@
|
|
---
|
|
|
|
+NTP 4.2.8p6
|
|
+
|
|
+Focus: Security, Bug fixes, enhancements.
|
|
+
|
|
+Severity: MEDIUM
|
|
+
|
|
+In addition to bug fixes and enhancements, this release fixes the
|
|
+following X low- and Y medium-severity vulnerabilities:
|
|
+
|
|
+* Potential Infinite Loop in 'ntpq'
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2548 / CVE-2015-8158
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS2: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
|
|
+ CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
|
|
+ Summary: 'ntpq' processes incoming packets in a loop in 'getresponse()'.
|
|
+ The loop's only stopping conditions are receiving a complete and
|
|
+ correct response or hitting a small number of error conditions.
|
|
+ If the packet contains incorrect values that don't trigger one of
|
|
+ the error conditions, the loop continues to receive new packets.
|
|
+ Note well, this is an attack against an instance of 'ntpq', not
|
|
+ 'ntpd', and this attack requires the attacker to do one of the
|
|
+ following:
|
|
+ * Own a malicious NTP server that the client trusts
|
|
+ * Prevent a legitimate NTP server from sending packets to
|
|
+ the 'ntpq' client
|
|
+ * MITM the 'ntpq' communications between the 'ntpq' client
|
|
+ and the NTP server
|
|
+ Mitigation:
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page
|
|
+ Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
|
|
+
|
|
+* 0rigin: Zero Origin Timestamp Bypass
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2945 / CVE-2015-8138
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS2: (AV:N/AC:L/Au:N/C:N/I:P/A:N) Base Score: 5.0 - MEDIUM
|
|
+ CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
|
|
+ (3.7 - LOW if you score AC:L)
|
|
+ Summary: To distinguish legitimate peer responses from forgeries, a
|
|
+ client attempts to verify a response packet by ensuring that the
|
|
+ origin timestamp in the packet matches the origin timestamp it
|
|
+ transmitted in its last request. A logic error exists that
|
|
+ allows packets with an origin timestamp of zero to bypass this
|
|
+ check whenever there is not an outstanding request to the server.
|
|
+ Mitigation:
|
|
+ Configure 'ntpd' to get time from multiple sources.
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page.
|
|
+ Monitor your 'ntpd= instances.
|
|
+ Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
|
|
+
|
|
+* Stack exhaustion in recursive traversal of restriction list
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016
|
|
+ References: Sec 2940 / CVE-2015-7978
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
|
|
+ Summary: An unauthenticated 'ntpdc reslist' command can cause a
|
|
+ segmentation fault in ntpd by exhausting the call stack.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page.
|
|
+ If you are unable to upgrade:
|
|
+ In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
|
|
+ If you must enable mode 7:
|
|
+ configure the use of a 'requestkey' to control who can
|
|
+ issue mode 7 requests.
|
|
+ configure 'restrict noquery' to further limit mode 7
|
|
+ requests to trusted sources.
|
|
+ Monitor your ntpd instances.
|
|
+ Credit: This weakness was discovered by Stephen Gray at Cisco ASIG.
|
|
+
|
|
+* Off-path Denial of Service (!DoS) attack on authenticated broadcast mode
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2942 / CVE-2015-7979
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:N/AC:M/Au:N/C:N/I:P/A:P) Base Score: 5.8
|
|
+ Summary: An off-path attacker can send broadcast packets with bad
|
|
+ authentication (wrong key, mismatched key, incorrect MAC, etc)
|
|
+ to broadcast clients. It is observed that the broadcast client
|
|
+ tears down the association with the broadcast server upon
|
|
+ receiving just one bad packet.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page.
|
|
+ Monitor your 'ntpd' instances.
|
|
+ If this sort of attack is an active problem for you, you have
|
|
+ deeper problems to investigate. In this case also consider
|
|
+ having smaller NTP broadcast domains.
|
|
+ Credit: This weakness was discovered by Aanchal Malhotra of Boston
|
|
+ University.
|
|
+
|
|
+* reslist NULL pointer dereference
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2939 / CVE-2015-7977
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
|
|
+ Summary: An unauthenticated 'ntpdc reslist' command can cause a
|
|
+ segmentation fault in ntpd by causing a NULL pointer dereference.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ Upgrade to 4.2.8p6, or later, from NTP Project Download Page or
|
|
+ the NTP Public Services Project Download Page.
|
|
+ If you are unable to upgrade:
|
|
+ mode 7 is disabled by default. Don't enable it.
|
|
+ If you must enable mode 7:
|
|
+ configure the use of a 'requestkey' to control who can
|
|
+ issue mode 7 requests.
|
|
+ configure 'restrict noquery' to further limit mode 7
|
|
+ requests to trusted sources.
|
|
+ Monitor your ntpd instances.
|
|
+ Credit: This weakness was discovered by Stephen Gray of Cisco ASIG.
|
|
+
|
|
+* 'ntpq saveconfig' command allows dangerous characters in filenames.
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2938 / CVE-2015-7976
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:N/AC:L/Au:S/C:N/I:P/A:N) Base Score: 4.0 - MEDIUM
|
|
+ Summary: The ntpq saveconfig command does not do adequate filtering
|
|
+ of special characters from the supplied filename.
|
|
+ Note well: The ability to use the saveconfig command is controlled
|
|
+ by the 'restrict nomodify' directive, and the recommended default
|
|
+ configuration is to disable this capability. If the ability to
|
|
+ execute a 'saveconfig' is required, it can easily (and should) be
|
|
+ limited and restricted to a known small number of IP addresses.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ use 'restrict default nomodify' in your 'ntp.conf' file.
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page.
|
|
+ If you are unable to upgrade:
|
|
+ build NTP with 'configure --disable-saveconfig' if you will
|
|
+ never need this capability, or
|
|
+ use 'restrict default nomodify' in your 'ntp.conf' file. Be
|
|
+ careful about what IPs have the ability to send 'modify'
|
|
+ requests to 'ntpd'.
|
|
+ Monitor your ntpd instances.
|
|
+ 'saveconfig' requests are logged to syslog - monitor your syslog files.
|
|
+ Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
|
|
+
|
|
+* nextvar() missing length check in ntpq
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2937 / CVE-2015-7975
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:L/AC:H/Au:N/C:N/I:N/A:P) Base Score: 1.2 - LOW
|
|
+ If you score A:C, this becomes 4.0.
|
|
+ CVSSv3: (CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) Base Score 2.9, LOW
|
|
+ Summary: ntpq may call nextvar() which executes a memcpy() into the
|
|
+ name buffer without a proper length check against its maximum
|
|
+ length of 256 bytes. Note well that we're taking about ntpq here.
|
|
+ The usual worst-case effect of this vulnerability is that the
|
|
+ specific instance of ntpq will crash and the person or process
|
|
+ that did this will have stopped themselves.
|
|
+ Mitigation:
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page.
|
|
+ If you are unable to upgrade:
|
|
+ If you have scripts that feed input to ntpq make sure there are
|
|
+ some sanity checks on the input received from the "outside".
|
|
+ This is potentially more dangerous if ntpq is run as root.
|
|
+ Credit: This weakness was discovered by Jonathan Gardner at Cisco ASIG.
|
|
+
|
|
+* Skeleton Key: Any trusted key system can serve time
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2936 / CVE-2015-7974
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:N/AC:H/Au:S/C:N/I:C/A:N) Base Score: 4.9
|
|
+ Summary: Symmetric key encryption uses a shared trusted key. The
|
|
+ reported title for this issue was "Missing key check allows
|
|
+ impersonation between authenticated peers" and the report claimed
|
|
+ "A key specified only for one server should only work to
|
|
+ authenticate that server, other trusted keys should be refused."
|
|
+ Except there has never been any correlation between this trusted
|
|
+ key and server v. clients machines and there has never been any
|
|
+ way to specify a key only for one server. We have treated this as
|
|
+ an enhancement request, and ntp-4.2.8p6 includes other checks and
|
|
+ tests to strengthen clients against attacks coming from broadcast
|
|
+ servers.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ If this scenario represents a real or a potential issue for you,
|
|
+ upgrade to 4.2.8p6, or later, from the NTP Project Download
|
|
+ Page or the NTP Public Services Project Download Page, and
|
|
+ use the new field in the ntp.keys file that specifies the list
|
|
+ of IPs that are allowed to serve time. Note that this alone
|
|
+ will not protect against time packets with forged source IP
|
|
+ addresses, however other changes in ntp-4.2.8p6 provide
|
|
+ significant mitigation against broadcast attacks. MITM attacks
|
|
+ are a different story.
|
|
+ If you are unable to upgrade:
|
|
+ Don't use broadcast mode if you cannot monitor your client
|
|
+ servers.
|
|
+ If you choose to use symmetric keys to authenticate time
|
|
+ packets in a hostile environment where ephemeral time
|
|
+ servers can be created, or if it is expected that malicious
|
|
+ time servers will participate in an NTP broadcast domain,
|
|
+ limit the number of participating systems that participate
|
|
+ in the shared-key group.
|
|
+ Monitor your ntpd instances.
|
|
+ Credit: This weakness was discovered by Matt Street of Cisco ASIG.
|
|
+
|
|
+* Deja Vu: Replay attack on authenticated broadcast mode
|
|
+ Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
|
|
+ References: Sec 2935 / CVE-2015-7973
|
|
+ Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
|
|
+ 4.3.0 up to, but not including 4.3.90
|
|
+ CVSS: (AV:A/AC:M/Au:N/C:N/I:P/A:P) Base Score: 4.3 - MEDIUM
|
|
+ Summary: If an NTP network is configured for broadcast operations then
|
|
+ either a man-in-the-middle attacker or a malicious participant
|
|
+ that has the same trusted keys as the victim can replay time packets.
|
|
+ Mitigation:
|
|
+ Implement BCP-38.
|
|
+ Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
|
|
+ or the NTP Public Services Project Download Page.
|
|
+ If you are unable to upgrade:
|
|
+ Don't use broadcast mode if you cannot monitor your client servers.
|
|
+ Monitor your ntpd instances.
|
|
+ Credit: This weakness was discovered by Aanchal Malhotra of Boston
|
|
+ University.
|
|
+
|
|
+Other fixes:
|
|
+
|
|
+* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
|
|
+* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
|
|
+ - applied patch by shenpeng11@huawei.com with minor adjustments
|
|
+* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
|
|
+* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
|
|
+* [Bug 2892] Several test cases assume IPv6 capabilities even when
|
|
+ IPv6 is disabled in the build. perlinger@ntp.org
|
|
+ - Found this already fixed, but validation led to cleanup actions.
|
|
+* [Bug 2905] DNS lookups broken. perlinger@ntp.org
|
|
+ - added limits to stack consumption, fixed some return code handling
|
|
+* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
|
|
+ - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
|
|
+ - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
|
|
+* [Bug 2980] reduce number of warnings. perlinger@ntp.org
|
|
+ - integrated several patches from Havard Eidnes (he@uninett.no)
|
|
+* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
|
|
+ - implement 'auth_log2()' using integer bithack instead of float calculation
|
|
+* Make leapsec_query debug messages less verbose. Harlan Stenn.
|
|
+
|
|
+---
|
|
+
|
|
NTP 4.2.8p5
|
|
|
|
Focus: Security, Bug fixes, enhancements.
|
|
Index: contrib/ntp/configure
|
|
===================================================================
|
|
--- contrib/ntp/configure (revision 294707)
|
|
+++ contrib/ntp/configure (working copy)
|
|
@@ -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.8p5.
|
|
+# Generated by GNU Autoconf 2.69 for ntp 4.2.8p6.
|
|
#
|
|
# 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.8p5'
|
|
-PACKAGE_STRING='ntp 4.2.8p5'
|
|
+PACKAGE_VERSION='4.2.8p6'
|
|
+PACKAGE_STRING='ntp 4.2.8p6'
|
|
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
|
|
PACKAGE_URL='http://www.ntp.org./'
|
|
|
|
@@ -1616,7 +1616,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.8p5 to adapt to many kinds of systems.
|
|
+\`configure' configures ntp 4.2.8p6 to adapt to many kinds of systems.
|
|
|
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
|
|
@@ -1686,7 +1686,7 @@ fi
|
|
|
|
if test -n "$ac_init_help"; then
|
|
case $ac_init_help in
|
|
- short | recursive ) echo "Configuration of ntp 4.2.8p5:";;
|
|
+ short | recursive ) echo "Configuration of ntp 4.2.8p6:";;
|
|
esac
|
|
cat <<\_ACEOF
|
|
|
|
@@ -1919,7 +1919,7 @@ fi
|
|
test -n "$ac_init_help" && exit $ac_status
|
|
if $ac_init_version; then
|
|
cat <<\_ACEOF
|
|
-ntp configure 4.2.8p5
|
|
+ntp configure 4.2.8p6
|
|
generated by GNU Autoconf 2.69
|
|
|
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
|
@@ -2749,7 +2749,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.8p5, which was
|
|
+It was created by ntp $as_me 4.2.8p6, which was
|
|
generated by GNU Autoconf 2.69. Invocation command line was
|
|
|
|
$ $0 $@
|
|
@@ -3750,7 +3750,7 @@ fi
|
|
|
|
# Define the identity of the package.
|
|
PACKAGE='ntp'
|
|
- VERSION='4.2.8p5'
|
|
+ VERSION='4.2.8p6'
|
|
|
|
|
|
cat >>confdefs.h <<_ACEOF
|
|
@@ -37840,7 +37840,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.8p5, which was
|
|
+This file was extended by ntp $as_me 4.2.8p6, which was
|
|
generated by GNU Autoconf 2.69. Invocation command line was
|
|
|
|
CONFIG_FILES = $CONFIG_FILES
|
|
@@ -37907,7 +37907,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.8p5
|
|
+ntp config.status 4.2.8p6
|
|
configured by $0, generated by GNU Autoconf 2.69,
|
|
with options \\"\$ac_cs_config\\"
|
|
|
|
Index: contrib/ntp/html/miscopt.html
|
|
===================================================================
|
|
--- contrib/ntp/html/miscopt.html (revision 294707)
|
|
+++ contrib/ntp/html/miscopt.html (working copy)
|
|
@@ -11,7 +11,7 @@
|
|
<img src="pic/boom3.gif" alt="gif" align="left"><a href="http://www.eecis.udel.edu/~mills/pictures.html">from <i>Pogo</i>, Walt Kelly</a>
|
|
<p>We have three, now looking for more.</p>
|
|
<p>Last update:
|
|
- <!-- #BeginDate format:En2m -->17-Nov-2015 11:06<!-- #EndDate -->
|
|
+ <!-- #BeginDate format:En2m -->16-Jan-2016 13:08<!-- #EndDate -->
|
|
UTC</p>
|
|
<br clear="left">
|
|
<h4>Related Links</h4>
|
|
@@ -29,8 +29,9 @@
|
|
<dd>The file format consists of a single line containing a single floating point number, which records the frequency offset measured in parts-per-million (PPM). The file is updated by first writing the current drift value into a temporary file and then renaming this file to replace the old version.</dd>
|
|
<dt id="dscp"><tt>dscp <i>dscp</i></tt></dt>
|
|
<dd>This command specifies the Differentiated Services Code Point (DSCP) value that is used in sent NTP packets. The default value is 46 for Expedited Forwarding (EF).</dd>
|
|
- <dt id="enable"><tt>enable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</tt><br>
|
|
- <tt>disable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</tt></dt>
|
|
+ <dt id="enable"><tt>enable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</tt></dt>
|
|
+
|
|
+ <dt><tt>disable [auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</tt></dt>
|
|
<dd>Provides a way to enable or disable various system options. Flags not mentioned are unaffected. Note that most of these flags can be modified remotely using <a href="ntpq.html"><tt>ntpq</tt></a> utility program's <tt>:config</tt> and <tt>config-from-file</tt> commands.
|
|
<dl>
|
|
<dt><tt>auth</tt></dt>
|
|
@@ -50,6 +51,13 @@
|
|
<dd>Enables time and frequency discipline. In effect, this switch opens and closes the feedback loop, which is useful for testing. The default for this flag is enable.</dd>
|
|
<dt><tt>stats</tt></dt>
|
|
<dd>Enables the statistics facility. See the <a href="monopt.html">Monitoring Options</a> page for further information. The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
|
|
+| unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early
|
|
+ <dt><tt>unpeer_crypto_early</tt></dt>
|
|
+ <dd>Enables the early resetting of an association in case of a crypto failure. This is generally a feature, but it can be used in a DoS attack. If you are seeing these packets being used as a DoS attack against your server, you should disable this flag. The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
|
|
+ <dt><tt>unpeer_crypto_nak_early</tt></dt>
|
|
+ <dd>Enables the early resetting of an association in case of a crypto_NAK message. This is generally a feature, but it can be used in a DoS attack. If you are seeing these packets being used as a DoS attack against your server, you should disable this flag. The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
|
|
+ <dt><tt>unpeer_digest_early</tt></dt>
|
|
+ <dd>Enables the early resetting of an association in case of an autokey digest failur. This is generally a feature, but it can be used in a DoS attack. If you are seeing these packets being used as a DoS attack against your server, you should disable this flag. The default for this flag is enabled. This flag is excluded from runtime configuration using <tt>ntpq</tt>.</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt id="includefile"><tt>includefile <i>includefile</i></tt></dt>
|
|
Index: contrib/ntp/include/Makefile.am
|
|
===================================================================
|
|
--- contrib/ntp/include/Makefile.am (revision 294707)
|
|
+++ contrib/ntp/include/Makefile.am (working copy)
|
|
@@ -36,6 +36,7 @@ noinst_HEADERS = \
|
|
ntp_if.h \
|
|
ntp_intres.h \
|
|
ntp_io.h \
|
|
+ ntp_keyacc.h \
|
|
ntp_libopts.h \
|
|
ntp_lineedit.h \
|
|
ntp_lists.h \
|
|
Index: contrib/ntp/include/Makefile.in
|
|
===================================================================
|
|
--- contrib/ntp/include/Makefile.in (revision 294707)
|
|
+++ contrib/ntp/include/Makefile.in (working copy)
|
|
@@ -521,6 +521,7 @@ noinst_HEADERS = \
|
|
ntp_if.h \
|
|
ntp_intres.h \
|
|
ntp_io.h \
|
|
+ ntp_keyacc.h \
|
|
ntp_libopts.h \
|
|
ntp_lineedit.h \
|
|
ntp_lists.h \
|
|
Index: contrib/ntp/include/ntp.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp.h (revision 294707)
|
|
+++ contrib/ntp/include/ntp.h (working copy)
|
|
@@ -350,6 +350,7 @@ struct peer {
|
|
l_fp dst; /* destination timestamp */
|
|
l_fp aorg; /* origin timestamp */
|
|
l_fp borg; /* alternate origin timestamp */
|
|
+ l_fp bxmt; /* most recent broadcast transmit timestamp */
|
|
double offset; /* peer clock offset */
|
|
double delay; /* peer roundtrip delay */
|
|
double jitter; /* peer jitter (squares) */
|
|
@@ -382,7 +383,8 @@ struct peer {
|
|
* Statistic counters
|
|
*/
|
|
u_long timereset; /* time stat counters were reset */
|
|
- u_long timereceived; /* last packet received time */
|
|
+ u_long timelastrec; /* last packet received time */
|
|
+ u_long timereceived; /* last (clean) packet received time */
|
|
u_long timereachable; /* last reachable/unreachable time */
|
|
|
|
u_long sent; /* packets sent */
|
|
@@ -708,6 +710,9 @@ struct pkt {
|
|
#define PROTO_ORPHAN 26
|
|
#define PROTO_ORPHWAIT 27
|
|
#define PROTO_MODE7 28
|
|
+#define PROTO_UECRYPTO 29
|
|
+#define PROTO_UECRYPTONAK 30
|
|
+#define PROTO_UEDIGEST 31
|
|
|
|
/*
|
|
* Configuration items for the loop filter
|
|
Index: contrib/ntp/include/ntp_io.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp_io.h (revision 294707)
|
|
+++ contrib/ntp/include/ntp_io.h (working copy)
|
|
@@ -40,6 +40,8 @@
|
|
|
|
#include "libntp.h" /* This needs Something above for GETDTABLESIZE */
|
|
|
|
+#include "ntp_keyacc.h"
|
|
+
|
|
/*
|
|
* Define FNDELAY and FASYNC using O_NONBLOCK and O_ASYNC if we need
|
|
* to (and can). This is here initially for QNX, but may help for
|
|
@@ -83,7 +85,6 @@ typedef enum {
|
|
extern int qos;
|
|
SOCKET move_fd(SOCKET fd);
|
|
isc_boolean_t get_broadcastclient_flag(void);
|
|
-extern int is_ip_address(const char *, u_short, sockaddr_u *);
|
|
extern void sau_from_netaddr(sockaddr_u *, const isc_netaddr_t *);
|
|
extern void add_nic_rule(nic_rule_match match_type,
|
|
const char *if_name, int prefixlen,
|
|
Index: contrib/ntp/include/ntp_keyacc.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp_keyacc.h (nonexistent)
|
|
+++ contrib/ntp/include/ntp_keyacc.h (working copy)
|
|
@@ -0,0 +1,13 @@
|
|
+/*
|
|
+ * ntp_keyacc.h - key access stuff
|
|
+ */
|
|
+#ifndef NTP_KEYACC_H
|
|
+#define NTP_KEYACC_H
|
|
+
|
|
+typedef struct keyaccess KeyAccT;
|
|
+struct keyaccess {
|
|
+ KeyAccT * next;
|
|
+ sockaddr_u addr;
|
|
+};
|
|
+
|
|
+#endif /* NTP_KEYACC_H */
|
|
Index: contrib/ntp/include/ntp_stdlib.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp_stdlib.h (revision 294707)
|
|
+++ contrib/ntp/include/ntp_stdlib.h (working copy)
|
|
@@ -16,6 +16,7 @@
|
|
#include "ntp_malloc.h"
|
|
#include "ntp_string.h"
|
|
#include "ntp_syslog.h"
|
|
+#include "ntp_keyacc.h"
|
|
|
|
#ifdef __GNUC__
|
|
#define NTP_PRINTF(fmt, args) __attribute__((__format__(__printf__, fmt, args)))
|
|
@@ -69,6 +70,7 @@ extern int authdecrypt (keyid_t, u_int32 *, size_t
|
|
extern size_t authencrypt (keyid_t, u_int32 *, size_t);
|
|
extern int authhavekey (keyid_t);
|
|
extern int authistrusted (keyid_t);
|
|
+extern int authistrustedip (keyid_t, sockaddr_u *);
|
|
extern int authreadkeys (const char *);
|
|
extern void authtrust (keyid_t, u_long);
|
|
extern int authusekey (keyid_t, int, const u_char *);
|
|
@@ -97,7 +99,7 @@ extern int ymd2yd (int, int, int);
|
|
/* a_md5encrypt.c */
|
|
extern int MD5authdecrypt (int, const u_char *, u_int32 *, size_t, size_t);
|
|
extern size_t MD5authencrypt (int, const u_char *, u_int32 *, size_t);
|
|
-extern void MD5auth_setkey (keyid_t, int, const u_char *, size_t);
|
|
+extern void MD5auth_setkey (keyid_t, int, const u_char *, size_t, KeyAccT *c);
|
|
extern u_int32 addr2refid (sockaddr_u *);
|
|
|
|
/* emalloc.c */
|
|
@@ -141,6 +143,7 @@ extern int atouint (const char *, u_long *);
|
|
extern int hextoint (const char *, u_long *);
|
|
extern const char * humanlogtime (void);
|
|
extern const char * humantime (time_t);
|
|
+extern int is_ip_address (const char *, u_short, sockaddr_u *);
|
|
extern char * mfptoa (u_int32, u_int32, short);
|
|
extern char * mfptoms (u_int32, u_int32, short);
|
|
extern const char * modetoa (size_t);
|
|
Index: contrib/ntp/include/ntp_types.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp_types.h (revision 294707)
|
|
+++ contrib/ntp/include/ntp_types.h (working copy)
|
|
@@ -218,6 +218,7 @@ typedef uint16_t associd_t; /* association ID */
|
|
#define ASSOCID_MAX USHRT_MAX
|
|
typedef u_int32 keyid_t; /* cryptographic key ID */
|
|
#define KEYID_T_MAX (0xffffffff)
|
|
+
|
|
typedef u_int32 tstamp_t; /* NTP seconds timestamp */
|
|
|
|
/*
|
|
Index: contrib/ntp/include/ntp_worker.h
|
|
===================================================================
|
|
--- contrib/ntp/include/ntp_worker.h (revision 294707)
|
|
+++ contrib/ntp/include/ntp_worker.h (working copy)
|
|
@@ -60,33 +60,35 @@ typedef sema_type *sem_ref;
|
|
#if defined(WORK_FORK)
|
|
|
|
typedef struct blocking_child_tag {
|
|
- int reusable;
|
|
- int pid;
|
|
- int req_write_pipe; /* parent */
|
|
- int resp_read_pipe;
|
|
- void * resp_read_ctx;
|
|
- int req_read_pipe; /* child */
|
|
- int resp_write_pipe;
|
|
- int ispipe;
|
|
+ int reusable;
|
|
+ int pid;
|
|
+ int req_write_pipe; /* parent */
|
|
+ int resp_read_pipe;
|
|
+ void * resp_read_ctx;
|
|
+ int req_read_pipe; /* child */
|
|
+ int resp_write_pipe;
|
|
+ int ispipe;
|
|
+ volatile u_int resp_ready_seen; /* signal/scan */
|
|
+ volatile u_int resp_ready_done; /* consumer/mainloop */
|
|
} blocking_child;
|
|
|
|
#elif defined(WORK_THREAD)
|
|
|
|
typedef struct blocking_child_tag {
|
|
-/*
|
|
- * blocking workitems and blocking_responses are dynamically-sized
|
|
- * one-dimensional arrays of pointers to blocking worker requests and
|
|
- * responses.
|
|
- *
|
|
- * IMPORTANT: This structure is shared between threads, and all access
|
|
- * that is not atomic (especially queue operations) must hold the
|
|
- * 'accesslock' semaphore to avoid data races.
|
|
- *
|
|
- * The resource management (thread/semaphore creation/destruction)
|
|
- * functions and functions just testing a handle are safe because these
|
|
- * are only changed by the main thread when no worker is running on the
|
|
- * same data structure.
|
|
- */
|
|
+ /*
|
|
+ * blocking workitems and blocking_responses are
|
|
+ * dynamically-sized one-dimensional arrays of pointers to
|
|
+ * blocking worker requests and responses.
|
|
+ *
|
|
+ * IMPORTANT: This structure is shared between threads, and all
|
|
+ * access that is not atomic (especially queue operations) must
|
|
+ * hold the 'accesslock' semaphore to avoid data races.
|
|
+ *
|
|
+ * The resource management (thread/semaphore
|
|
+ * creation/destruction) functions and functions just testing a
|
|
+ * handle are safe because these are only changed by the main
|
|
+ * thread when no worker is running on the same data structure.
|
|
+ */
|
|
int reusable;
|
|
sem_ref accesslock; /* shared access lock */
|
|
thr_ref thread_ref; /* thread 'handle' */
|
|
@@ -117,6 +119,8 @@ typedef struct blocking_child_tag {
|
|
int resp_write_pipe; /* child */
|
|
int ispipe;
|
|
void * resp_read_ctx; /* child */
|
|
+ volatile u_int resp_ready_seen; /* signal/scan */
|
|
+ volatile u_int resp_ready_done; /* consumer/mainloop */
|
|
#else
|
|
sem_ref responses_pending; /* signalling */
|
|
#endif
|
|
@@ -126,6 +130,10 @@ typedef struct blocking_child_tag {
|
|
|
|
#endif /* WORK_THREAD */
|
|
|
|
+/* we need some global tag to indicate any blocking child may be ready: */
|
|
+extern volatile u_int blocking_child_ready_seen;/* signal/scan */
|
|
+extern volatile u_int blocking_child_ready_done;/* consumer/mainloop */
|
|
+
|
|
extern blocking_child ** blocking_children;
|
|
extern size_t blocking_children_alloc;
|
|
extern int worker_per_query; /* boolean */
|
|
@@ -139,6 +147,7 @@ extern int queue_blocking_response(blocking_child
|
|
blocking_pipe_header *, size_t,
|
|
const blocking_pipe_header *);
|
|
extern void process_blocking_resp(blocking_child *);
|
|
+extern void harvest_blocking_responses(void);
|
|
extern int send_blocking_req_internal(blocking_child *,
|
|
blocking_pipe_header *,
|
|
void *);
|
|
Index: contrib/ntp/include/parse.h
|
|
===================================================================
|
|
--- contrib/ntp/include/parse.h (revision 294707)
|
|
+++ contrib/ntp/include/parse.h (working copy)
|
|
@@ -107,9 +107,9 @@ extern unsigned int splclock (void);
|
|
/*
|
|
* some constants useful for GPS time conversion
|
|
*/
|
|
-#define GPSORIGIN 2524953600UL /* NTP origin - GPS origin in seconds */
|
|
-#define GPSWRAP 990U /* assume week count less than this in the previous epoch */
|
|
-#define GPSWEEKS 1024U /* number of weeks until the GPS epch rolls over */
|
|
+#define GPSORIGIN 2524953600UL /* NTP origin - GPS origin in seconds */
|
|
+#define GPSWRAP 990 /* assume week count less than this in the previous epoch */
|
|
+#define GPSWEEKS 1024 /* number of weeks until the GPS epch rolls over */
|
|
|
|
/*
|
|
* state flags
|
|
Index: contrib/ntp/libntp/Makefile.am
|
|
===================================================================
|
|
--- contrib/ntp/libntp/Makefile.am (revision 294707)
|
|
+++ contrib/ntp/libntp/Makefile.am (working copy)
|
|
@@ -70,6 +70,7 @@ libntp_a_SRCS = \
|
|
humandate.c \
|
|
icom.c \
|
|
iosignal.c \
|
|
+ is_ip_address.c \
|
|
lib_strbuf.c \
|
|
machines.c \
|
|
mktime.c \
|
|
Index: contrib/ntp/libntp/Makefile.in
|
|
===================================================================
|
|
--- contrib/ntp/libntp/Makefile.in (revision 294707)
|
|
+++ contrib/ntp/libntp/Makefile.in (working copy)
|
|
@@ -150,12 +150,12 @@ am__libntp_a_SOURCES_DIST = systime.c a_md5encrypt
|
|
calyearstart.c clocktime.c clocktypes.c decodenetnum.c \
|
|
dofptoa.c dolfptoa.c emalloc.c findconfig.c getopt.c \
|
|
hextoint.c hextolfp.c humandate.c icom.c iosignal.c \
|
|
- lib_strbuf.c machines.c mktime.c modetoa.c mstolfp.c msyslog.c \
|
|
- netof.c ntp_calendar.c ntp_crypto_rnd.c ntp_intres.c \
|
|
- ntp_libopts.c ntp_lineedit.c ntp_random.c ntp_rfc2553.c \
|
|
- ntp_worker.c numtoa.c numtohost.c octtoint.c prettydate.c \
|
|
- refidsmear.c recvbuff.c refnumtoa.c snprintf.c socket.c \
|
|
- socktoa.c socktohost.c ssl_init.c statestr.c strdup.c \
|
|
+ is_ip_address.c lib_strbuf.c machines.c mktime.c modetoa.c \
|
|
+ mstolfp.c msyslog.c netof.c ntp_calendar.c ntp_crypto_rnd.c \
|
|
+ ntp_intres.c ntp_libopts.c ntp_lineedit.c ntp_random.c \
|
|
+ ntp_rfc2553.c ntp_worker.c numtoa.c numtohost.c octtoint.c \
|
|
+ prettydate.c refidsmear.c recvbuff.c refnumtoa.c snprintf.c \
|
|
+ socket.c socktoa.c socktohost.c ssl_init.c statestr.c strdup.c \
|
|
strl_obsd.c syssignal.c timetoa.c timevalops.c uglydate.c \
|
|
vint64ops.c work_fork.c work_thread.c ymd2yd.c \
|
|
$(srcdir)/../lib/isc/assertions.c \
|
|
@@ -207,21 +207,21 @@ am__objects_4 = a_md5encrypt.$(OBJEXT) adjtime.$(O
|
|
dolfptoa.$(OBJEXT) emalloc.$(OBJEXT) findconfig.$(OBJEXT) \
|
|
getopt.$(OBJEXT) hextoint.$(OBJEXT) hextolfp.$(OBJEXT) \
|
|
humandate.$(OBJEXT) icom.$(OBJEXT) iosignal.$(OBJEXT) \
|
|
- lib_strbuf.$(OBJEXT) machines.$(OBJEXT) mktime.$(OBJEXT) \
|
|
- modetoa.$(OBJEXT) mstolfp.$(OBJEXT) msyslog.$(OBJEXT) \
|
|
- netof.$(OBJEXT) ntp_calendar.$(OBJEXT) \
|
|
- ntp_crypto_rnd.$(OBJEXT) ntp_intres.$(OBJEXT) \
|
|
- ntp_libopts.$(OBJEXT) ntp_lineedit.$(OBJEXT) \
|
|
- ntp_random.$(OBJEXT) ntp_rfc2553.$(OBJEXT) \
|
|
- ntp_worker.$(OBJEXT) numtoa.$(OBJEXT) numtohost.$(OBJEXT) \
|
|
- octtoint.$(OBJEXT) prettydate.$(OBJEXT) refidsmear.$(OBJEXT) \
|
|
- recvbuff.$(OBJEXT) refnumtoa.$(OBJEXT) snprintf.$(OBJEXT) \
|
|
- socket.$(OBJEXT) socktoa.$(OBJEXT) socktohost.$(OBJEXT) \
|
|
- ssl_init.$(OBJEXT) statestr.$(OBJEXT) strdup.$(OBJEXT) \
|
|
- strl_obsd.$(OBJEXT) syssignal.$(OBJEXT) timetoa.$(OBJEXT) \
|
|
- timevalops.$(OBJEXT) uglydate.$(OBJEXT) vint64ops.$(OBJEXT) \
|
|
- work_fork.$(OBJEXT) work_thread.$(OBJEXT) ymd2yd.$(OBJEXT) \
|
|
- $(am__objects_3) $(am__objects_1)
|
|
+ is_ip_address.$(OBJEXT) lib_strbuf.$(OBJEXT) \
|
|
+ machines.$(OBJEXT) mktime.$(OBJEXT) modetoa.$(OBJEXT) \
|
|
+ mstolfp.$(OBJEXT) msyslog.$(OBJEXT) netof.$(OBJEXT) \
|
|
+ ntp_calendar.$(OBJEXT) ntp_crypto_rnd.$(OBJEXT) \
|
|
+ ntp_intres.$(OBJEXT) ntp_libopts.$(OBJEXT) \
|
|
+ ntp_lineedit.$(OBJEXT) ntp_random.$(OBJEXT) \
|
|
+ ntp_rfc2553.$(OBJEXT) ntp_worker.$(OBJEXT) numtoa.$(OBJEXT) \
|
|
+ numtohost.$(OBJEXT) octtoint.$(OBJEXT) prettydate.$(OBJEXT) \
|
|
+ refidsmear.$(OBJEXT) recvbuff.$(OBJEXT) refnumtoa.$(OBJEXT) \
|
|
+ snprintf.$(OBJEXT) socket.$(OBJEXT) socktoa.$(OBJEXT) \
|
|
+ socktohost.$(OBJEXT) ssl_init.$(OBJEXT) statestr.$(OBJEXT) \
|
|
+ strdup.$(OBJEXT) strl_obsd.$(OBJEXT) syssignal.$(OBJEXT) \
|
|
+ timetoa.$(OBJEXT) timevalops.$(OBJEXT) uglydate.$(OBJEXT) \
|
|
+ vint64ops.$(OBJEXT) work_fork.$(OBJEXT) work_thread.$(OBJEXT) \
|
|
+ ymd2yd.$(OBJEXT) $(am__objects_3) $(am__objects_1)
|
|
am_libntp_a_OBJECTS = systime.$(OBJEXT) $(am__objects_4)
|
|
libntp_a_OBJECTS = $(am_libntp_a_OBJECTS)
|
|
libntpsim_a_AR = $(AR) $(ARFLAGS)
|
|
@@ -232,12 +232,12 @@ am__libntpsim_a_SOURCES_DIST = systime_s.c a_md5en
|
|
calyearstart.c clocktime.c clocktypes.c decodenetnum.c \
|
|
dofptoa.c dolfptoa.c emalloc.c findconfig.c getopt.c \
|
|
hextoint.c hextolfp.c humandate.c icom.c iosignal.c \
|
|
- lib_strbuf.c machines.c mktime.c modetoa.c mstolfp.c msyslog.c \
|
|
- netof.c ntp_calendar.c ntp_crypto_rnd.c ntp_intres.c \
|
|
- ntp_libopts.c ntp_lineedit.c ntp_random.c ntp_rfc2553.c \
|
|
- ntp_worker.c numtoa.c numtohost.c octtoint.c prettydate.c \
|
|
- refidsmear.c recvbuff.c refnumtoa.c snprintf.c socket.c \
|
|
- socktoa.c socktohost.c ssl_init.c statestr.c strdup.c \
|
|
+ is_ip_address.c lib_strbuf.c machines.c mktime.c modetoa.c \
|
|
+ mstolfp.c msyslog.c netof.c ntp_calendar.c ntp_crypto_rnd.c \
|
|
+ ntp_intres.c ntp_libopts.c ntp_lineedit.c ntp_random.c \
|
|
+ ntp_rfc2553.c ntp_worker.c numtoa.c numtohost.c octtoint.c \
|
|
+ prettydate.c refidsmear.c recvbuff.c refnumtoa.c snprintf.c \
|
|
+ socket.c socktoa.c socktohost.c ssl_init.c statestr.c strdup.c \
|
|
strl_obsd.c syssignal.c timetoa.c timevalops.c uglydate.c \
|
|
vint64ops.c work_fork.c work_thread.c ymd2yd.c \
|
|
$(srcdir)/../lib/isc/assertions.c \
|
|
@@ -660,6 +660,7 @@ libntp_a_SRCS = \
|
|
humandate.c \
|
|
icom.c \
|
|
iosignal.c \
|
|
+ is_ip_address.c \
|
|
lib_strbuf.c \
|
|
machines.c \
|
|
mktime.c \
|
|
@@ -806,6 +807,7 @@ distclean-compile:
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interfaceiter.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iosignal.Po@am__quote@
|
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_ip_address.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib_strbuf.Po@am__quote@
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@
|
|
Index: contrib/ntp/libntp/authkeys.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/authkeys.c (revision 294707)
|
|
+++ contrib/ntp/libntp/authkeys.c (working copy)
|
|
@@ -15,6 +15,7 @@
|
|
#include "ntp_string.h"
|
|
#include "ntp_malloc.h"
|
|
#include "ntp_stdlib.h"
|
|
+#include "ntp_keyacc.h"
|
|
|
|
/*
|
|
* Structure to store keys in in the hash table.
|
|
@@ -25,6 +26,7 @@ struct savekey {
|
|
symkey * hlink; /* next in hash bucket */
|
|
DECL_DLIST_LINK(symkey, llink); /* for overall & free lists */
|
|
u_char * secret; /* shared secret */
|
|
+ KeyAccT * keyacclist; /* Private key access list */
|
|
u_long lifetime; /* remaining lifetime */
|
|
keyid_t keyid; /* key identifier */
|
|
u_short type; /* OpenSSL digest NID */
|
|
@@ -48,13 +50,13 @@ struct symkey_alloc_tag {
|
|
symkey_alloc * authallocs;
|
|
#endif /* DEBUG */
|
|
|
|
-static inline u_short auth_log2(double x);
|
|
-static void auth_resize_hashtable(void);
|
|
-static void allocsymkey(symkey **, keyid_t, u_short,
|
|
- u_short, u_long, u_short, u_char *);
|
|
-static void freesymkey(symkey *, symkey **);
|
|
+static u_short auth_log2(size_t);
|
|
+static void auth_resize_hashtable(void);
|
|
+static void allocsymkey(symkey **, keyid_t, u_short, u_short,
|
|
+ u_long, u_short, u_char *, KeyAccT *);
|
|
+static void freesymkey(symkey *, symkey **);
|
|
#ifdef DEBUG
|
|
-static void free_auth_mem(void);
|
|
+static void free_auth_mem(void);
|
|
#endif
|
|
|
|
symkey key_listhead; /* list of all in-use keys */;
|
|
@@ -97,6 +99,7 @@ u_char *cache_secret; /* secret */
|
|
u_short cache_secretsize; /* secret length */
|
|
int cache_type; /* OpenSSL digest NID */
|
|
u_short cache_flags; /* flags that wave */
|
|
+KeyAccT *cache_keyacclist; /* key access list */
|
|
|
|
|
|
/*
|
|
@@ -142,6 +145,7 @@ free_auth_mem(void)
|
|
key_hash = NULL;
|
|
cache_keyid = 0;
|
|
cache_flags = 0;
|
|
+ cache_keyacclist = NULL;
|
|
for (alloc = authallocs; alloc != NULL; alloc = next_alloc) {
|
|
next_alloc = alloc->link;
|
|
free(alloc->mem);
|
|
@@ -210,10 +214,33 @@ auth_prealloc_symkeys(
|
|
}
|
|
|
|
|
|
-static inline u_short
|
|
-auth_log2(double x)
|
|
+static u_short
|
|
+auth_log2(size_t x)
|
|
{
|
|
- return (u_short)(log10(x) / log10(2));
|
|
+ /*
|
|
+ ** bithack to calculate floor(log2(x))
|
|
+ **
|
|
+ ** This assumes
|
|
+ ** - (sizeof(size_t) is a power of two
|
|
+ ** - CHAR_BITS is a power of two
|
|
+ ** - returning zero for arguments <= 0 is OK.
|
|
+ **
|
|
+ ** Does only shifts, masks and sums in integer arithmetic in
|
|
+ ** log2(CHAR_BIT*sizeof(size_t)) steps. (that is, 5/6 steps for
|
|
+ ** 32bit/64bit size_t)
|
|
+ */
|
|
+ int s;
|
|
+ int r = 0;
|
|
+ size_t m = ~(size_t)0;
|
|
+
|
|
+ for (s = sizeof(size_t) / 2 * CHAR_BIT; s != 0; s >>= 1) {
|
|
+ m <<= s;
|
|
+ if (x & m)
|
|
+ r += s;
|
|
+ else
|
|
+ x <<= s;
|
|
+ }
|
|
+ return (u_short)r;
|
|
}
|
|
|
|
|
|
@@ -234,7 +261,7 @@ auth_resize_hashtable(void)
|
|
symkey * sk;
|
|
|
|
totalkeys = authnumkeys + authnumfreekeys;
|
|
- hashbits = auth_log2(totalkeys / 4.0) + 1;
|
|
+ hashbits = auth_log2(totalkeys / 4) + 1;
|
|
hashbits = max(4, hashbits);
|
|
hashbits = min(15, hashbits);
|
|
|
|
@@ -267,7 +294,8 @@ allocsymkey(
|
|
u_short type,
|
|
u_long lifetime,
|
|
u_short secretsize,
|
|
- u_char * secret
|
|
+ u_char * secret,
|
|
+ KeyAccT * ka
|
|
)
|
|
{
|
|
symkey * sk;
|
|
@@ -281,6 +309,7 @@ allocsymkey(
|
|
sk->type = type;
|
|
sk->secretsize = secretsize;
|
|
sk->secret = secret;
|
|
+ sk->keyacclist = ka;
|
|
sk->lifetime = lifetime;
|
|
LINK_SLIST(*bucket, sk, hlink);
|
|
LINK_TAIL_DLIST(key_listhead, sk, llink);
|
|
@@ -412,6 +441,7 @@ authhavekey(
|
|
cache_flags = sk->flags;
|
|
cache_secret = sk->secret;
|
|
cache_secretsize = sk->secretsize;
|
|
+ cache_keyacclist = sk->keyacclist;
|
|
|
|
return TRUE;
|
|
}
|
|
@@ -451,6 +481,7 @@ authtrust(
|
|
if (cache_keyid == id) {
|
|
cache_flags = 0;
|
|
cache_keyid = 0;
|
|
+ cache_keyacclist = NULL;
|
|
}
|
|
|
|
/*
|
|
@@ -480,7 +511,7 @@ authtrust(
|
|
} else {
|
|
lifetime = 0;
|
|
}
|
|
- allocsymkey(bucket, id, KEY_TRUSTED, 0, lifetime, 0, NULL);
|
|
+ allocsymkey(bucket, id, KEY_TRUSTED, 0, lifetime, 0, NULL, NULL);
|
|
}
|
|
|
|
|
|
@@ -511,6 +542,49 @@ authistrusted(
|
|
return TRUE;
|
|
}
|
|
|
|
+
|
|
+/*
|
|
+ * authistrustedip - determine if the IP is OK for the keyid
|
|
+ */
|
|
+ int
|
|
+ authistrustedip(
|
|
+ keyid_t keyno,
|
|
+ sockaddr_u * sau
|
|
+ )
|
|
+{
|
|
+ symkey * sk;
|
|
+ symkey ** bucket;
|
|
+ KeyAccT * kal;
|
|
+ KeyAccT * k;
|
|
+
|
|
+ if (keyno == cache_keyid)
|
|
+ kal = cache_keyacclist;
|
|
+ else {
|
|
+ authkeyuncached++;
|
|
+ bucket = &key_hash[KEYHASH(keyno)];
|
|
+ for (sk = *bucket; sk != NULL; sk = sk->hlink) {
|
|
+ if (keyno == sk->keyid)
|
|
+ break;
|
|
+ }
|
|
+ if (NULL == sk || !(KEY_TRUSTED & sk->flags)) {
|
|
+ INSIST(!"authistrustedip: keyid not found/trusted!");
|
|
+ return FALSE;
|
|
+ }
|
|
+ kal = sk->keyacclist;
|
|
+ }
|
|
+
|
|
+ if (NULL == kal)
|
|
+ return TRUE;
|
|
+
|
|
+ for (k = kal; k; k = k->next) {
|
|
+ if (SOCK_EQ(&k->addr, sau))
|
|
+ return TRUE;
|
|
+ }
|
|
+
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
+
|
|
/* Note: There are two locations below where 'strncpy()' is used. While
|
|
* this function is a hazard by itself, it's essential that it is used
|
|
* here. Bug 1243 involved that the secret was filled with NUL bytes
|
|
@@ -527,7 +601,8 @@ MD5auth_setkey(
|
|
keyid_t keyno,
|
|
int keytype,
|
|
const u_char *key,
|
|
- size_t len
|
|
+ size_t len,
|
|
+ KeyAccT *ka
|
|
)
|
|
{
|
|
symkey * sk;
|
|
@@ -553,6 +628,7 @@ MD5auth_setkey(
|
|
sk->type = (u_short)keytype;
|
|
secretsize = len;
|
|
sk->secretsize = (u_short)secretsize;
|
|
+ sk->keyacclist = ka;
|
|
#ifndef DISABLE_BUG1243_FIX
|
|
memcpy(sk->secret, key, secretsize);
|
|
#else
|
|
@@ -563,6 +639,7 @@ MD5auth_setkey(
|
|
if (cache_keyid == keyno) {
|
|
cache_flags = 0;
|
|
cache_keyid = 0;
|
|
+ cache_keyacclist = NULL;
|
|
}
|
|
return;
|
|
}
|
|
@@ -580,7 +657,7 @@ MD5auth_setkey(
|
|
strncpy((char *)secret, (const char *)key, secretsize);
|
|
#endif
|
|
allocsymkey(bucket, keyno, 0, (u_short)keytype, 0,
|
|
- (u_short)secretsize, secret);
|
|
+ (u_short)secretsize, secret, ka);
|
|
#ifdef DEBUG
|
|
if (debug >= 4) {
|
|
size_t j;
|
|
Index: contrib/ntp/libntp/authreadkeys.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/authreadkeys.c (revision 294707)
|
|
+++ contrib/ntp/libntp/authreadkeys.c (working copy)
|
|
@@ -5,10 +5,12 @@
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
|
|
+#include "ntpd.h" /* Only for DPRINTF */
|
|
#include "ntp_fp.h"
|
|
#include "ntp.h"
|
|
#include "ntp_syslog.h"
|
|
#include "ntp_stdlib.h"
|
|
+#include "ntp_keyacc.h"
|
|
|
|
#ifdef OPENSSL
|
|
#include "openssl/objects.h"
|
|
@@ -85,6 +87,7 @@ static void log_maybe(u_int*, const char*, ...) NT
|
|
typedef struct keydata KeyDataT;
|
|
struct keydata {
|
|
KeyDataT *next; /* queue/stack link */
|
|
+ KeyAccT *keyacclist; /* key access list */
|
|
keyid_t keyid; /* stored key ID */
|
|
u_short keytype; /* stored key type */
|
|
u_short seclen; /* length of secret */
|
|
@@ -228,6 +231,7 @@ authreadkeys(
|
|
len = strlen(token);
|
|
if (len <= 20) { /* Bug 2537 */
|
|
next = emalloc(sizeof(KeyDataT) + len);
|
|
+ next->keyacclist = NULL;
|
|
next->keyid = keyno;
|
|
next->keytype = keytype;
|
|
next->seclen = len;
|
|
@@ -257,11 +261,48 @@ authreadkeys(
|
|
}
|
|
len = jlim/2; /* hmmmm.... what about odd length?!? */
|
|
next = emalloc(sizeof(KeyDataT) + len);
|
|
+ next->keyacclist = NULL;
|
|
next->keyid = keyno;
|
|
next->keytype = keytype;
|
|
next->seclen = len;
|
|
memcpy(next->secbuf, keystr, len);
|
|
}
|
|
+
|
|
+ token = nexttok(&line);
|
|
+DPRINTF(0, ("authreadkeys: full access list <%s>\n", (token) ? token : "NULL"));
|
|
+ if (token != NULL) { /* A comma-separated IP access list */
|
|
+ char *tp = token;
|
|
+
|
|
+ while (tp) {
|
|
+ char *i;
|
|
+ KeyAccT ka;
|
|
+
|
|
+ i = strchr(tp, (int)',');
|
|
+ if (i)
|
|
+ *i = '\0';
|
|
+DPRINTF(0, ("authreadkeys: access list: <%s>\n", tp));
|
|
+
|
|
+ if (is_ip_address(tp, AF_UNSPEC, &ka.addr)) {
|
|
+ KeyAccT *kap;
|
|
+
|
|
+ kap = emalloc(sizeof(KeyAccT));
|
|
+ memcpy(kap, &ka, sizeof ka);
|
|
+ kap->next = next->keyacclist;
|
|
+ next->keyacclist = kap;
|
|
+ } else {
|
|
+ log_maybe(&nerr,
|
|
+ "authreadkeys: invalid IP address <%s> for key %d",
|
|
+ tp, keyno);
|
|
+ }
|
|
+
|
|
+ if (i) {
|
|
+ tp = i + 1;
|
|
+ } else {
|
|
+ tp = 0;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
INSIST(NULL != next);
|
|
next->next = list;
|
|
list = next;
|
|
@@ -286,7 +327,7 @@ authreadkeys(
|
|
while (NULL != (next = list)) {
|
|
list = next->next;
|
|
MD5auth_setkey(next->keyid, next->keytype,
|
|
- next->secbuf, next->seclen);
|
|
+ next->secbuf, next->seclen, next->keyacclist);
|
|
/* purge secrets from memory before free()ing it */
|
|
memset(next, 0, sizeof(*next) + next->seclen);
|
|
free(next);
|
|
@@ -297,6 +338,14 @@ authreadkeys(
|
|
/* Mop up temporary storage before bailing out. */
|
|
while (NULL != (next = list)) {
|
|
list = next->next;
|
|
+
|
|
+ while (next->keyacclist) {
|
|
+ KeyAccT *kap = next->keyacclist;
|
|
+
|
|
+ next->keyacclist = kap->next;
|
|
+ free(kap);
|
|
+ }
|
|
+
|
|
/* purge secrets from memory before free()ing it */
|
|
memset(next, 0, sizeof(*next) + next->seclen);
|
|
free(next);
|
|
Index: contrib/ntp/libntp/authusekey.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/authusekey.c (revision 294707)
|
|
+++ contrib/ntp/libntp/authusekey.c (working copy)
|
|
@@ -29,6 +29,6 @@ authusekey(
|
|
if (0 == len)
|
|
return 0;
|
|
|
|
- MD5auth_setkey(keyno, keytype, str, len);
|
|
+ MD5auth_setkey(keyno, keytype, str, len, NULL);
|
|
return 1;
|
|
}
|
|
Index: contrib/ntp/libntp/is_ip_address.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/is_ip_address.c (nonexistent)
|
|
+++ contrib/ntp/libntp/is_ip_address.c (working copy)
|
|
@@ -0,0 +1,129 @@
|
|
+/*
|
|
+ * is_ip_address
|
|
+ *
|
|
+ */
|
|
+
|
|
+#ifdef HAVE_CONFIG_H
|
|
+# include <config.h>
|
|
+#endif
|
|
+
|
|
+#if 0
|
|
+#include <stdio.h>
|
|
+#include <signal.h>
|
|
+#ifdef HAVE_FNMATCH_H
|
|
+# include <fnmatch.h>
|
|
+# if !defined(FNM_CASEFOLD) && defined(FNM_IGNORECASE)
|
|
+# define FNM_CASEFOLD FNM_IGNORECASE
|
|
+# endif
|
|
+#endif
|
|
+#ifdef HAVE_SYS_PARAM_H
|
|
+# include <sys/param.h>
|
|
+#endif
|
|
+#ifdef HAVE_SYS_IOCTL_H
|
|
+# include <sys/ioctl.h>
|
|
+#endif
|
|
+#ifdef HAVE_SYS_SOCKIO_H /* UXPV: SIOC* #defines (Frank Vance <fvance@waii.com>) */
|
|
+# include <sys/sockio.h>
|
|
+#endif
|
|
+#ifdef HAVE_SYS_UIO_H
|
|
+# include <sys/uio.h>
|
|
+#endif
|
|
+#endif
|
|
+
|
|
+#include "ntp_assert.h"
|
|
+#include "ntp_stdlib.h"
|
|
+#include "safecast.h"
|
|
+
|
|
+#if 0
|
|
+#include "ntp_machine.h"
|
|
+#include "ntpd.h"
|
|
+#include "ntp_io.h"
|
|
+#include "iosignal.h"
|
|
+#include "ntp_lists.h"
|
|
+#include "ntp_refclock.h"
|
|
+#include "ntp_worker.h"
|
|
+#include "ntp_request.h"
|
|
+#include "timevalops.h"
|
|
+#include "timespecops.h"
|
|
+#include "ntpd-opts.h"
|
|
+#endif
|
|
+
|
|
+/* Don't include ISC's version of IPv6 variables and structures */
|
|
+#define ISC_IPV6_H 1
|
|
+#include <isc/mem.h>
|
|
+#include <isc/interfaceiter.h>
|
|
+#include <isc/netaddr.h>
|
|
+#include <isc/result.h>
|
|
+#include <isc/sockaddr.h>
|
|
+
|
|
+
|
|
+/*
|
|
+ * Code to tell if we have an IP address
|
|
+ * If we have then return the sockaddr structure
|
|
+ * and set the return value
|
|
+ * see the bind9/getaddresses.c for details
|
|
+ */
|
|
+int
|
|
+is_ip_address(
|
|
+ const char * host,
|
|
+ u_short af,
|
|
+ sockaddr_u * addr
|
|
+ )
|
|
+{
|
|
+ struct in_addr in4;
|
|
+ struct addrinfo hints;
|
|
+ struct addrinfo *result;
|
|
+ struct sockaddr_in6 *resaddr6;
|
|
+ char tmpbuf[128];
|
|
+ char *pch;
|
|
+
|
|
+ REQUIRE(host != NULL);
|
|
+ REQUIRE(addr != NULL);
|
|
+
|
|
+ ZERO_SOCK(addr);
|
|
+
|
|
+ /*
|
|
+ * Try IPv4, then IPv6. In order to handle the extended format
|
|
+ * for IPv6 scoped addresses (address%scope_ID), we'll use a local
|
|
+ * working buffer of 128 bytes. The length is an ad-hoc value, but
|
|
+ * should be enough for this purpose; the buffer can contain a string
|
|
+ * of at least 80 bytes for scope_ID in addition to any IPv6 numeric
|
|
+ * addresses (up to 46 bytes), the delimiter character and the
|
|
+ * terminating NULL character.
|
|
+ */
|
|
+ if (AF_UNSPEC == af || AF_INET == af)
|
|
+ if (inet_pton(AF_INET, host, &in4) == 1) {
|
|
+ AF(addr) = AF_INET;
|
|
+ SET_ADDR4N(addr, in4.s_addr);
|
|
+
|
|
+ return TRUE;
|
|
+ }
|
|
+
|
|
+ if (AF_UNSPEC == af || AF_INET6 == af)
|
|
+ if (sizeof(tmpbuf) > strlen(host)) {
|
|
+ if ('[' == host[0]) {
|
|
+ strlcpy(tmpbuf, &host[1], sizeof(tmpbuf));
|
|
+ pch = strchr(tmpbuf, ']');
|
|
+ if (pch != NULL)
|
|
+ *pch = '\0';
|
|
+ } else {
|
|
+ strlcpy(tmpbuf, host, sizeof(tmpbuf));
|
|
+ }
|
|
+ ZERO(hints);
|
|
+ hints.ai_family = AF_INET6;
|
|
+ hints.ai_flags |= AI_NUMERICHOST;
|
|
+ if (getaddrinfo(tmpbuf, NULL, &hints, &result) == 0) {
|
|
+ AF(addr) = AF_INET6;
|
|
+ resaddr6 = UA_PTR(struct sockaddr_in6, result->ai_addr);
|
|
+ SET_ADDR6N(addr, resaddr6->sin6_addr);
|
|
+ SET_SCOPE(addr, resaddr6->sin6_scope_id);
|
|
+
|
|
+ freeaddrinfo(result);
|
|
+ return TRUE;
|
|
+ }
|
|
+ }
|
|
+ /*
|
|
+ * If we got here it was not an IP address
|
|
+ */
|
|
+ return FALSE;
|
|
+}
|
|
Index: contrib/ntp/libntp/ntp_worker.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/ntp_worker.c (revision 294707)
|
|
+++ contrib/ntp/libntp/ntp_worker.c (working copy)
|
|
@@ -27,6 +27,8 @@ blocking_child ** blocking_children;
|
|
size_t blocking_children_alloc;
|
|
int worker_per_query; /* boolean */
|
|
int intres_req_pending;
|
|
+volatile u_int blocking_child_ready_seen;
|
|
+volatile u_int blocking_child_ready_done;
|
|
|
|
|
|
#ifndef HAVE_IO_COMPLETION_PORT
|
|
@@ -262,7 +264,32 @@ process_blocking_resp(
|
|
req_child_exit(c);
|
|
}
|
|
|
|
+void
|
|
+harvest_blocking_responses(void)
|
|
+{
|
|
+ int idx;
|
|
+ blocking_child* cp;
|
|
+ u_int scseen, scdone;
|
|
|
|
+ scseen = blocking_child_ready_seen;
|
|
+ scdone = blocking_child_ready_done;
|
|
+ if (scdone != scseen) {
|
|
+ blocking_child_ready_done = scseen;
|
|
+ for (idx = 0; idx < blocking_children_alloc; idx++) {
|
|
+ cp = blocking_children[idx];
|
|
+ if (NULL == cp)
|
|
+ continue;
|
|
+ scseen = cp->resp_ready_seen;
|
|
+ scdone = cp->resp_ready_done;
|
|
+ if (scdone != scseen) {
|
|
+ cp->resp_ready_done = scseen;
|
|
+ process_blocking_resp(cp);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
+
|
|
/*
|
|
* blocking_child_common runs as a forked child or a thread
|
|
*/
|
|
Index: contrib/ntp/libntp/systime.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/systime.c (revision 294707)
|
|
+++ contrib/ntp/libntp/systime.c (working copy)
|
|
@@ -323,9 +323,18 @@ adj_systime(
|
|
else
|
|
quant = 1e-6;
|
|
ticks = (long)(dtemp / quant + .5);
|
|
- adjtv.tv_usec = (long)(ticks * quant * 1e6);
|
|
- dtemp -= adjtv.tv_usec / 1e6;
|
|
- sys_residual = dtemp;
|
|
+ adjtv.tv_usec = (long)(ticks * quant * 1.e6 + .5);
|
|
+ /* The rounding in the conversions could us push over the
|
|
+ * limits: make sure the result is properly normalised!
|
|
+ * note: sign comes later, all numbers non-negative here.
|
|
+ */
|
|
+ if (adjtv.tv_usec >= 1000000) {
|
|
+ adjtv.tv_sec += 1;
|
|
+ adjtv.tv_usec -= 1000000;
|
|
+ dtemp -= 1.;
|
|
+ }
|
|
+ /* set the new residual with leftover from correction */
|
|
+ sys_residual = dtemp - adjtv.tv_usec * 1.e-6;
|
|
|
|
/*
|
|
* Convert to signed seconds and microseconds for the Unix
|
|
Index: contrib/ntp/libntp/work_thread.c
|
|
===================================================================
|
|
--- contrib/ntp/libntp/work_thread.c (revision 294707)
|
|
+++ contrib/ntp/libntp/work_thread.c (working copy)
|
|
@@ -25,13 +25,38 @@
|
|
|
|
#define CHILD_EXIT_REQ ((blocking_pipe_header *)(intptr_t)-1)
|
|
#define CHILD_GONE_RESP CHILD_EXIT_REQ
|
|
+/* Queue size increments:
|
|
+ * The request queue grows a bit faster than the response queue -- the
|
|
+ * deamon can push requests and pull results faster on avarage than the
|
|
+ * worker can process requests and push results... If this really pays
|
|
+ * off is debatable.
|
|
+ */
|
|
#define WORKITEMS_ALLOC_INC 16
|
|
#define RESPONSES_ALLOC_INC 4
|
|
|
|
+/* Fiddle with min/max stack sizes. 64kB minimum seems to work, so we
|
|
+ * set the maximum to 256kB. If the minimum goes below the
|
|
+ * system-defined minimum stack size, we have to adjust accordingly.
|
|
+ */
|
|
#ifndef THREAD_MINSTACKSIZE
|
|
-#define THREAD_MINSTACKSIZE (64U * 1024)
|
|
+# define THREAD_MINSTACKSIZE (64U * 1024)
|
|
#endif
|
|
+#ifndef __sun
|
|
+#if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN
|
|
+# undef THREAD_MINSTACKSIZE
|
|
+# define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN
|
|
+#endif
|
|
+#endif
|
|
|
|
+#ifndef THREAD_MAXSTACKSIZE
|
|
+# define THREAD_MAXSTACKSIZE (256U * 1024)
|
|
+#endif
|
|
+#if THREAD_MAXSTACKSIZE < THREAD_MINSTACKSIZE
|
|
+# undef THREAD_MAXSTACKSIZE
|
|
+# define THREAD_MAXSTACKSIZE THREAD_MINSTACKSIZE
|
|
+#endif
|
|
+
|
|
+
|
|
#ifdef SYS_WINNT
|
|
|
|
# define thread_exit(c) _endthreadex(c)
|
|
@@ -148,15 +173,19 @@ ensure_workitems_empty_slot(
|
|
|
|
size_t new_alloc;
|
|
size_t slots_used;
|
|
+ size_t sidx;
|
|
|
|
slots_used = c->head_workitem - c->tail_workitem;
|
|
if (slots_used >= c->workitems_alloc) {
|
|
new_alloc = c->workitems_alloc + WORKITEMS_ALLOC_INC;
|
|
c->workitems = erealloc(c->workitems, new_alloc * each);
|
|
+ for (sidx = c->workitems_alloc; sidx < new_alloc; ++sidx)
|
|
+ c->workitems[sidx] = NULL;
|
|
c->tail_workitem = 0;
|
|
c->head_workitem = c->workitems_alloc;
|
|
c->workitems_alloc = new_alloc;
|
|
}
|
|
+ INSIST(NULL == c->workitems[c->head_workitem % c->workitems_alloc]);
|
|
return (0 == slots_used);
|
|
}
|
|
|
|
@@ -180,15 +209,19 @@ ensure_workresp_empty_slot(
|
|
|
|
size_t new_alloc;
|
|
size_t slots_used;
|
|
+ size_t sidx;
|
|
|
|
slots_used = c->head_response - c->tail_response;
|
|
if (slots_used >= c->responses_alloc) {
|
|
new_alloc = c->responses_alloc + RESPONSES_ALLOC_INC;
|
|
c->responses = erealloc(c->responses, new_alloc * each);
|
|
+ for (sidx = c->responses_alloc; sidx < new_alloc; ++sidx)
|
|
+ c->responses[sidx] = NULL;
|
|
c->tail_response = 0;
|
|
c->head_response = c->responses_alloc;
|
|
c->responses_alloc = new_alloc;
|
|
}
|
|
+ INSIST(NULL == c->responses[c->head_response % c->responses_alloc]);
|
|
return (0 == slots_used);
|
|
}
|
|
|
|
@@ -478,11 +511,11 @@ start_blocking_thread_internal(
|
|
# endif
|
|
pthread_attr_t thr_attr;
|
|
int rc;
|
|
- int saved_errno;
|
|
int pipe_ends[2]; /* read then write */
|
|
int is_pipe;
|
|
int flags;
|
|
- size_t stacksize;
|
|
+ size_t ostacksize;
|
|
+ size_t nstacksize;
|
|
sigset_t saved_sig_mask;
|
|
|
|
c->thread_ref = NULL;
|
|
@@ -522,21 +555,29 @@ start_blocking_thread_internal(
|
|
pthread_attr_setdetachstate(&thr_attr, PTHREAD_CREATE_DETACHED);
|
|
#if defined(HAVE_PTHREAD_ATTR_GETSTACKSIZE) && \
|
|
defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE)
|
|
- rc = pthread_attr_getstacksize(&thr_attr, &stacksize);
|
|
- if (-1 == rc) {
|
|
+ rc = pthread_attr_getstacksize(&thr_attr, &ostacksize);
|
|
+ if (0 != rc) {
|
|
msyslog(LOG_ERR,
|
|
- "start_blocking_thread: pthread_attr_getstacksize %m");
|
|
- } else if (stacksize < THREAD_MINSTACKSIZE) {
|
|
- rc = pthread_attr_setstacksize(&thr_attr,
|
|
- THREAD_MINSTACKSIZE);
|
|
- if (-1 == rc)
|
|
+ "start_blocking_thread: pthread_attr_getstacksize() -> %s",
|
|
+ strerror(rc));
|
|
+ } else {
|
|
+ if (ostacksize < THREAD_MINSTACKSIZE)
|
|
+ nstacksize = THREAD_MINSTACKSIZE;
|
|
+ else if (ostacksize > THREAD_MAXSTACKSIZE)
|
|
+ nstacksize = THREAD_MAXSTACKSIZE;
|
|
+ else
|
|
+ nstacksize = ostacksize;
|
|
+ if (nstacksize != ostacksize)
|
|
+ rc = pthread_attr_setstacksize(&thr_attr, nstacksize);
|
|
+ if (0 != rc)
|
|
msyslog(LOG_ERR,
|
|
- "start_blocking_thread: pthread_attr_setstacksize(0x%lx -> 0x%lx) %m",
|
|
- (u_long)stacksize,
|
|
- (u_long)THREAD_MINSTACKSIZE);
|
|
+ "start_blocking_thread: pthread_attr_setstacksize(0x%lx -> 0x%lx) -> %s",
|
|
+ (u_long)ostacksize, (u_long)nstacksize,
|
|
+ strerror(rc));
|
|
}
|
|
#else
|
|
- UNUSED_ARG(stacksize);
|
|
+ UNUSED_ARG(nstacksize);
|
|
+ UNUSED_ARG(ostacksize);
|
|
#endif
|
|
#if defined(PTHREAD_SCOPE_SYSTEM) && defined(NEED_PTHREAD_SCOPE_SYSTEM)
|
|
pthread_attr_setscope(&thr_attr, PTHREAD_SCOPE_SYSTEM);
|
|
@@ -545,12 +586,11 @@ start_blocking_thread_internal(
|
|
block_thread_signals(&saved_sig_mask);
|
|
rc = pthread_create(&c->thr_table[0], &thr_attr,
|
|
&blocking_thread, c);
|
|
- saved_errno = errno;
|
|
pthread_sigmask(SIG_SETMASK, &saved_sig_mask, NULL);
|
|
pthread_attr_destroy(&thr_attr);
|
|
if (0 != rc) {
|
|
- errno = saved_errno;
|
|
- msyslog(LOG_ERR, "pthread_create() blocking child: %m");
|
|
+ msyslog(LOG_ERR, "start_blocking_thread: pthread_create() -> %s",
|
|
+ strerror(rc));
|
|
exit(1);
|
|
}
|
|
c->thread_ref = &c->thr_table[0];
|
|
Index: contrib/ntp/ntpd/invoke-ntp.conf.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/invoke-ntp.conf.texi (revision 294707)
|
|
+++ contrib/ntp/ntpd/invoke-ntp.conf.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:30:49 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:17:59 AM by AutoGen 5.18.5
|
|
# From the definitions ntp.conf.def
|
|
# and the template file agtexi-file.tpl
|
|
@end ignore
|
|
@@ -2294,8 +2294,8 @@ otherwise, should be avoided.
|
|
@item @code{dscp} @kbd{value}
|
|
This option specifies the Differentiated Services Control Point (DSCP) value,
|
|
a 6-bit code. The default value is 46, signifying Expedited Forwarding.
|
|
-@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats}]}
|
|
-@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats}]}
|
|
+@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
|
|
+@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
|
|
Provides a way to enable or disable various server options.
|
|
Flags not mentioned are unaffected.
|
|
Note that all of these flags
|
|
@@ -2367,6 +2367,67 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
@code{disable}.
|
|
+@item @code{unpeer_crypto_early}
|
|
+By default, if
|
|
+@code{ntpd(1ntpdmdoc)}
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+@code{peerstats}
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+@code{enable}.
|
|
+@item @code{unpeer_crypto_nak_early}
|
|
+By default, if
|
|
+@code{ntpd(1ntpdmdoc)}
|
|
+receives a crypto-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+@code{peerstats}
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+@code{enable}.
|
|
+@item @code{unpeer_digest_early}
|
|
+By default, if
|
|
+@code{ntpd(1ntpdmdoc)}
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+@code{peerstats}
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+@code{enable}.
|
|
@end table
|
|
@item @code{includefile} @kbd{includefile}
|
|
This command allows additional configuration commands
|
|
Index: contrib/ntp/ntpd/invoke-ntp.keys.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/invoke-ntp.keys.texi (revision 294707)
|
|
+++ contrib/ntp/ntpd/invoke-ntp.keys.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:30:52 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:18:02 AM by AutoGen 5.18.5
|
|
# From the definitions ntp.keys.def
|
|
# and the template file agtexi-file.tpl
|
|
@end ignore
|
|
@@ -37,7 +37,7 @@ as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
|
|
@example
|
|
-@kbd{keyno} @kbd{type} @kbd{key}
|
|
+@kbd{keyno} @kbd{type} @kbd{key} @kbd{opt_IP_list}
|
|
@end example
|
|
|
|
where
|
|
@@ -47,7 +47,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
@kbd{key}
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+@kbd{opt_IP_list}
|
|
+is an optional comma-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+@kbd{opt_IP_list}
|
|
+is empty,
|
|
+any properly-authenticated server message will be
|
|
+accepted.
|
|
|
|
The
|
|
@kbd{key}
|
|
Index: contrib/ntp/ntpd/invoke-ntpd.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/invoke-ntpd.texi (revision 294707)
|
|
+++ contrib/ntp/ntpd/invoke-ntpd.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:30:54 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:18:04 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.8p5
|
|
+ntpd - NTP daemon program - Ver. 4.2.8p6
|
|
Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
|
|
[ <server1> ... <serverN> ]
|
|
Flg Arg Option-Name Description
|
|
Index: contrib/ntp/ntpd/keyword-gen-utd
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/keyword-gen-utd (revision 294707)
|
|
+++ contrib/ntp/ntpd/keyword-gen-utd (working copy)
|
|
@@ -1 +1 @@
|
|
- * Generated 2015-06-25 03:57:00 UTC diff_ignore_line
|
|
+ * Generated 2016-01-16 08:33:03 UTC diff_ignore_line
|
|
Index: contrib/ntp/ntpd/keyword-gen.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/keyword-gen.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/keyword-gen.c (working copy)
|
|
@@ -202,6 +202,9 @@ struct key_tok ntp_keywords[] = {
|
|
{ "ntp", T_Ntp, FOLLBY_TOKEN },
|
|
{ "mode7", T_Mode7, FOLLBY_TOKEN },
|
|
{ "stats", T_Stats, FOLLBY_TOKEN },
|
|
+{ "unpeer_crypto_early", T_UEcrypto, FOLLBY_TOKEN },
|
|
+{ "unpeer_crypto_nak_early", T_UEcryptonak, FOLLBY_TOKEN },
|
|
+{ "unpeer_digest_early", T_UEdigest, FOLLBY_TOKEN },
|
|
/* rlimit_option */
|
|
{ "memlock", T_Memlock, FOLLBY_TOKEN },
|
|
{ "stacksize", T_Stacksize, FOLLBY_TOKEN },
|
|
Index: contrib/ntp/ntpd/ntp.conf.5man
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.5man (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.5man (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp.conf 5man "07 Jan 2016" "4.2.8p5" "File Formats"
|
|
+.TH ntp.conf 5man "20 Jan 2016" "4.2.8p6" "File Formats"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8qayqp/ag-Vraqpp)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gsaOxR/ag-XsaGwR)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:35 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:45 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.conf.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -2573,9 +2573,9 @@ otherwise, should be avoided.
|
|
This option specifies the Differentiated Services Control Point (DSCP) value,
|
|
a 6-bit code. The default value is 46, signifying Expedited Forwarding.
|
|
.TP 7
|
|
-.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
|
|
+.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
|
|
.TP 7
|
|
-.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
|
|
+.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
|
|
Provides a way to enable or disable various server options.
|
|
Flags not mentioned are unaffected.
|
|
Note that all of these flags
|
|
@@ -2655,6 +2655,70 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
\f\*[B-Font]disable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_crypto_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
|
|
+receives a crypto-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_digest_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(1ntpdmdoc)\f[]
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
.RE
|
|
.TP 7
|
|
.NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
|
|
@@ -3027,7 +3091,7 @@ RFC5905
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The syntax checking is not picky; some combinations of
|
|
Index: contrib/ntp/ntpd/ntp.conf.5mdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.5mdoc (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.5mdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_CONF 5mdoc File Formats
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:57 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:07 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.conf.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -2393,8 +2393,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
.It Xo Ic disable
|
|
@@ -2401,8 +2402,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
Provides a way to enable or disable various server options.
|
|
@@ -2476,6 +2478,67 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
.Ic disable .
|
|
+.It Cm unpeer_crypto_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_crypto_nak_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives a crypto\-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto\-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_digest_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
.El
|
|
.It Ic includefile Ar includefile
|
|
This command allows additional configuration commands
|
|
@@ -2834,7 +2897,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The syntax checking is not picky; some combinations of
|
|
Index: contrib/ntp/ntpd/ntp.conf.def
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.def (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.def (working copy)
|
|
@@ -2395,8 +2395,9 @@ a 6-bit code. The default value is 46, signifying
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
.It Xo Ic disable
|
|
@@ -2403,8 +2404,9 @@ a 6-bit code. The default value is 46, signifying
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
Provides a way to enable or disable various server options.
|
|
@@ -2478,6 +2480,67 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
.Ic disable .
|
|
+.It Cm unpeer_crypto_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_crypto_nak_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives a crypto-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_digest_early
|
|
+By default, if
|
|
+.Xr ntpd 1ntpdmdoc
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
.El
|
|
.It Ic includefile Ar includefile
|
|
This command allows additional configuration commands
|
|
Index: contrib/ntp/ntpd/ntp.conf.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.html (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.html (working copy)
|
|
@@ -33,7 +33,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<p>This document describes the configuration file for the NTP Project's
|
|
<code>ntpd</code> program.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntp.conf</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntp.conf</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -2288,7 +2288,7 @@ drift file is located in, and that file system lin
|
|
otherwise, should be avoided.
|
|
<br><dt><code>dscp</code> <kbd>value</kbd><dd>This option specifies the Differentiated Services Control Point (DSCP) value,
|
|
a 6-bit code. The default value is 46, signifying Expedited Forwarding.
|
|
-<br><dt><code>enable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</code><br><dt><code>disable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats]</code><dd>Provides a way to enable or disable various server options.
|
|
+<br><dt><code>enable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><br><dt><code>disable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><dd>Provides a way to enable or disable various server options.
|
|
Flags not mentioned are unaffected.
|
|
Note that all of these flags
|
|
can be controlled remotely using the
|
|
@@ -2351,6 +2351,64 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
<code>disable</code>.
|
|
+<br><dt><code>unpeer_crypto_early</code><dd>By default, if
|
|
+<code>ntpd(1ntpdmdoc)</code>
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+<code>peerstats</code>
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+<code>enable</code>.
|
|
+<br><dt><code>unpeer_crypto_nak_early</code><dd>By default, if
|
|
+<code>ntpd(1ntpdmdoc)</code>
|
|
+receives a crypto-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+<code>peerstats</code>
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+<code>enable</code>.
|
|
+<br><dt><code>unpeer_digest_early</code><dd>By default, if
|
|
+<code>ntpd(1ntpdmdoc)</code>
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+<code>peerstats</code>
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+<code>enable</code>.
|
|
</dl>
|
|
<br><dt><code>includefile</code> <kbd>includefile</kbd><dd>This command allows additional configuration commands
|
|
to be included from a separate file.
|
|
Index: contrib/ntp/ntpd/ntp.conf.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp.conf 5 "07 Jan 2016" "4.2.8p5" "File Formats"
|
|
+.TH ntp.conf 5 "20 Jan 2016" "4.2.8p6" "File Formats"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8qayqp/ag-Vraqpp)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gsaOxR/ag-XsaGwR)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:35 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:45 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.conf.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -2573,9 +2573,9 @@ otherwise, should be avoided.
|
|
This option specifies the Differentiated Services Control Point (DSCP) value,
|
|
a 6-bit code. The default value is 46, signifying Expedited Forwarding.
|
|
.TP 7
|
|
-.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
|
|
+.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
|
|
.TP 7
|
|
-.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[]]
|
|
+.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
|
|
Provides a way to enable or disable various server options.
|
|
Flags not mentioned are unaffected.
|
|
Note that all of these flags
|
|
@@ -2655,6 +2655,70 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
\f\*[B-Font]disable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_crypto_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
|
|
+receives a crypto-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
+.TP 7
|
|
+.NOP \f\*[B-Font]unpeer_digest_early\f[]
|
|
+By default, if
|
|
+\fCntpd\f[]\fR(@NTPD_MS@)\f[]
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+\f\*[B-Font]peerstats\f[]
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+\f\*[B-Font]enable\f[].
|
|
.RE
|
|
.TP 7
|
|
.NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
|
|
@@ -3027,7 +3091,7 @@ RFC5905
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The syntax checking is not picky; some combinations of
|
|
Index: contrib/ntp/ntpd/ntp.conf.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.conf.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.conf.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_CONF 5 File Formats
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:57 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:07 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.conf.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -2393,8 +2393,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
.It Xo Ic disable
|
|
@@ -2401,8 +2402,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
Provides a way to enable or disable various server options.
|
|
@@ -2476,6 +2478,67 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
.Ic disable .
|
|
+.It Cm unpeer_crypto_early
|
|
+By default, if
|
|
+.Xr ntpd @NTPD_MS@
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_crypto_nak_early
|
|
+By default, if
|
|
+.Xr ntpd @NTPD_MS@
|
|
+receives a crypto\-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto\-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_digest_early
|
|
+By default, if
|
|
+.Xr ntpd @NTPD_MS@
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
.El
|
|
.It Ic includefile Ar includefile
|
|
This command allows additional configuration commands
|
|
@@ -2834,7 +2897,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The syntax checking is not picky; some combinations of
|
|
Index: contrib/ntp/ntpd/ntp.keys.5man
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.5man (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.5man (working copy)
|
|
@@ -1,8 +1,8 @@
|
|
-.TH ntp.keys 5man "07 Jan 2016" "4.2.8p5" "File Formats"
|
|
+.TH ntp.keys 5man "20 Jan 2016" "4.2.8p6" "File Formats"
|
|
.\"
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:41 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:51 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.keys.def
|
|
.\" and the template file agman-file.tpl
|
|
.Sh NAME
|
|
@@ -66,7 +66,7 @@ Key entries use a fixed format of the form
|
|
.ne 2
|
|
|
|
.in +4
|
|
-\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[]
|
|
+\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[] \f\*[I-Font]opt_IP_list\f[]
|
|
.in -4
|
|
.sp \n(Ppu
|
|
.ne 2
|
|
@@ -78,7 +78,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
\f\*[I-Font]key\f[]
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+\f\*[I-Font]opt_IP_list\f[]
|
|
+is an optional comma-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+\f\*[I-Font]opt_IP_list\f[]
|
|
+is empty,
|
|
+any properly-authenticated server message will be
|
|
+accepted.
|
|
.sp \n(Ppu
|
|
.ne 2
|
|
|
|
@@ -160,7 +168,7 @@ the default name of the configuration file
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpd/ntp.keys.5mdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.5mdoc (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.5mdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYS 5mdoc File Formats
|
|
.Os SunOS 5.10
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:00 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:10 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.keys.def
|
|
.\" and the template file agmdoc-file.tpl
|
|
.Sh NAME
|
|
@@ -44,7 +44,7 @@ The key file uses the same comment conventions
|
|
as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
.Pp
|
|
-.D1 Ar keyno type key
|
|
+.D1 Ar keyno type key opt_IP_list
|
|
.Pp
|
|
where
|
|
.Ar keyno
|
|
@@ -53,7 +53,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
.Ar key
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+.Ar opt_IP_list
|
|
+is an optional comma\-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+.Ar opt_IP_list
|
|
+is empty,
|
|
+any properly\-authenticated server message will be
|
|
+accepted.
|
|
.Pp
|
|
The
|
|
.Ar key
|
|
@@ -147,7 +155,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpd/ntp.keys.def
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.def (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.def (working copy)
|
|
@@ -43,7 +43,7 @@ The key file uses the same comment conventions
|
|
as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
.Pp
|
|
-.D1 Ar keyno type key
|
|
+.D1 Ar keyno type key opt_IP_list
|
|
.Pp
|
|
where
|
|
.Ar keyno
|
|
@@ -52,7 +52,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
.Ar key
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+.Ar opt_IP_list
|
|
+is an optional comma-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+.Ar opt_IP_list
|
|
+is empty,
|
|
+any properly-authenticated server message will be
|
|
+accepted.
|
|
.Pp
|
|
The
|
|
.Ar key
|
|
Index: contrib/ntp/ntpd/ntp.keys.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.html (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.html (working copy)
|
|
@@ -33,7 +33,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<p>This document describes the symmetric key file for the NTP Project's
|
|
<code>ntpd</code> program.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntp.keys</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntp.keys</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -93,7 +93,7 @@ may be arbitrarily set in the keys file.
|
|
as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
|
|
-<pre class="example"> <kbd>keyno</kbd> <kbd>type</kbd> <kbd>key</kbd>
|
|
+<pre class="example"> <kbd>keyno</kbd> <kbd>type</kbd> <kbd>key</kbd> <kbd>opt_IP_list</kbd>
|
|
</pre>
|
|
<p>where
|
|
<kbd>keyno</kbd>
|
|
@@ -102,7 +102,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
<kbd>key</kbd>
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+<kbd>opt_IP_list</kbd>
|
|
+is an optional comma-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+<kbd>opt_IP_list</kbd>
|
|
+is empty,
|
|
+any properly-authenticated server message will be
|
|
+accepted.
|
|
|
|
<p>The
|
|
<kbd>key</kbd>
|
|
Index: contrib/ntp/ntpd/ntp.keys.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.man.in (working copy)
|
|
@@ -1,8 +1,8 @@
|
|
-.TH ntp.keys 5 "07 Jan 2016" "4.2.8p5" "File Formats"
|
|
+.TH ntp.keys 5 "20 Jan 2016" "4.2.8p6" "File Formats"
|
|
.\"
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:41 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:51 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.keys.def
|
|
.\" and the template file agman-file.tpl
|
|
.Sh NAME
|
|
@@ -66,7 +66,7 @@ Key entries use a fixed format of the form
|
|
.ne 2
|
|
|
|
.in +4
|
|
-\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[]
|
|
+\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[] \f\*[I-Font]opt_IP_list\f[]
|
|
.in -4
|
|
.sp \n(Ppu
|
|
.ne 2
|
|
@@ -78,7 +78,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
\f\*[I-Font]key\f[]
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+\f\*[I-Font]opt_IP_list\f[]
|
|
+is an optional comma-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+\f\*[I-Font]opt_IP_list\f[]
|
|
+is empty,
|
|
+any properly-authenticated server message will be
|
|
+accepted.
|
|
.sp \n(Ppu
|
|
.ne 2
|
|
|
|
@@ -160,7 +168,7 @@ the default name of the configuration file
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpd/ntp.keys.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp.keys.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp.keys.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYS 5 File Formats
|
|
.Os SunOS 5.10
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:00 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:10 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.keys.def
|
|
.\" and the template file agmdoc-file.tpl
|
|
.Sh NAME
|
|
@@ -44,7 +44,7 @@ The key file uses the same comment conventions
|
|
as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
.Pp
|
|
-.D1 Ar keyno type key
|
|
+.D1 Ar keyno type key opt_IP_list
|
|
.Pp
|
|
where
|
|
.Ar keyno
|
|
@@ -53,7 +53,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
.Ar key
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+.Ar opt_IP_list
|
|
+is an optional comma\-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+.Ar opt_IP_list
|
|
+is empty,
|
|
+any properly\-authenticated server message will be
|
|
+accepted.
|
|
.Pp
|
|
The
|
|
.Ar key
|
|
@@ -147,7 +155,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpd/ntp_config.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_config.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_config.c (working copy)
|
|
@@ -53,6 +53,8 @@
|
|
#include "ntp_parser.h"
|
|
#include "ntpd-opts.h"
|
|
|
|
+extern int yyparse(void);
|
|
+
|
|
/* Bug 2817 */
|
|
#if defined(HAVE_SYS_MMAN_H)
|
|
# include <sys/mman.h>
|
|
@@ -2981,6 +2983,18 @@ apply_enable_disable(
|
|
proto_config(PROTO_FILEGEN, enable, 0., NULL);
|
|
break;
|
|
|
|
+ case T_UEcrypto:
|
|
+ proto_config(PROTO_UECRYPTO, enable, 0., NULL);
|
|
+ break;
|
|
+
|
|
+ case T_UEcryptonak:
|
|
+ proto_config(PROTO_UECRYPTONAK, enable, 0., NULL);
|
|
+ break;
|
|
+
|
|
+ case T_UEdigest:
|
|
+ proto_config(PROTO_UEDIGEST, enable, 0., NULL);
|
|
+ break;
|
|
+
|
|
#ifdef BC_LIST_FRAMEWORK_NOT_YET_USED
|
|
case T_Bc_bugXXXX:
|
|
pentry = bc_list;
|
|
Index: contrib/ntp/ntpd/ntp_control.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_control.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_control.c (working copy)
|
|
@@ -75,6 +75,7 @@ static void ctl_putarray (const char *, double *,
|
|
static void ctl_putsys (int);
|
|
static void ctl_putpeer (int, struct peer *);
|
|
static void ctl_putfs (const char *, tstamp_t);
|
|
+static void ctl_printf (const char *, ...) NTP_PRINTF(1, 2);
|
|
#ifdef REFCLOCK
|
|
static void ctl_putclock (int, struct refclockstat *, int);
|
|
#endif /* REFCLOCK */
|
|
@@ -111,6 +112,8 @@ static void unset_trap (struct recvbuf *, int);
|
|
static struct ctl_trap *ctlfindtrap(sockaddr_u *,
|
|
struct interface *);
|
|
|
|
+int/*BOOL*/ is_safe_filename(const char * name);
|
|
+
|
|
static const struct ctl_proc control_codes[] = {
|
|
{ CTL_OP_UNSPEC, NOAUTH, control_unspec },
|
|
{ CTL_OP_READSTAT, NOAUTH, read_status },
|
|
@@ -873,10 +876,66 @@ ctl_error(
|
|
CTL_HEADER_LEN);
|
|
}
|
|
|
|
+int/*BOOL*/
|
|
+is_safe_filename(const char * name)
|
|
+{
|
|
+ /* We need a strict validation of filenames we should write: The
|
|
+ * daemon might run with special permissions and is remote
|
|
+ * controllable, so we better take care what we allow as file
|
|
+ * name!
|
|
+ *
|
|
+ * The first character must be digit or a letter from the ASCII
|
|
+ * base plane or a '_' ([_A-Za-z0-9]), the following characters
|
|
+ * must be from [-._+A-Za-z0-9].
|
|
+ *
|
|
+ * We do not trust the character classification much here: Since
|
|
+ * the NTP protocol makes no provisions for UTF-8 or local code
|
|
+ * pages, we strictly require the 7bit ASCII code page.
|
|
+ *
|
|
+ * The following table is a packed bit field of 128 two-bit
|
|
+ * groups. The LSB in each group tells us if a character is
|
|
+ * acceptable at the first position, the MSB if the character is
|
|
+ * accepted at any other position.
|
|
+ *
|
|
+ * This does not ensure that the file name is syntactically
|
|
+ * correct (multiple dots will not work with VMS...) but it will
|
|
+ * exclude potential globbing bombs and directory traversal. It
|
|
+ * also rules out drive selection. (For systems that have this
|
|
+ * notion, like Windows or VMS.)
|
|
+ */
|
|
+ static const uint32_t chclass[8] = {
|
|
+ 0x00000000, 0x00000000,
|
|
+ 0x28800000, 0x000FFFFF,
|
|
+ 0xFFFFFFFC, 0xC03FFFFF,
|
|
+ 0xFFFFFFFC, 0x003FFFFF
|
|
+ };
|
|
+
|
|
+ u_int widx, bidx, mask;
|
|
+ if (!*name)
|
|
+ return FALSE;
|
|
+
|
|
+ mask = 1u;
|
|
+ while (0 != (widx = (u_char)*name++)) {
|
|
+ bidx = (widx & 15) << 1;
|
|
+ widx = widx >> 4;
|
|
+ if (widx >= sizeof(chclass))
|
|
+ return FALSE;
|
|
+ if (0 == ((chclass[widx] >> bidx) & mask))
|
|
+ return FALSE;
|
|
+ mask |= 2u;
|
|
+ }
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+
|
|
/*
|
|
* save_config - Implements ntpq -c "saveconfig <filename>"
|
|
* Writes current configuration including any runtime
|
|
* changes by ntpq's :config or config-from-file
|
|
+ *
|
|
+ * Note: There should be no buffer overflow or truncation in the
|
|
+ * processing of file names -- both cause security problems. This is bit
|
|
+ * painful to code but essential here.
|
|
*/
|
|
void
|
|
save_config(
|
|
@@ -904,24 +963,38 @@ save_config(
|
|
"\\/" /* separator and critical char for POSIX */
|
|
#endif
|
|
;
|
|
-
|
|
-
|
|
char reply[128];
|
|
#ifdef SAVECONFIG
|
|
+ static const char savedconfig_eq[] = "savedconfig=";
|
|
+
|
|
+ /* Build a safe open mode from the available mode flags. We want
|
|
+ * to create a new file and write it in text mode (when
|
|
+ * applicable -- only Windows does this...)
|
|
+ */
|
|
+ static const int openmode = O_CREAT | O_TRUNC | O_WRONLY
|
|
+# if defined(O_EXCL) /* posix, vms */
|
|
+ | O_EXCL
|
|
+# elif defined(_O_EXCL) /* windows is alway very special... */
|
|
+ | _O_EXCL
|
|
+# endif
|
|
+# if defined(_O_TEXT) /* windows, again */
|
|
+ | _O_TEXT
|
|
+#endif
|
|
+ ;
|
|
+
|
|
char filespec[128];
|
|
char filename[128];
|
|
char fullpath[512];
|
|
- const char savedconfig_eq[] = "savedconfig=";
|
|
char savedconfig[sizeof(savedconfig_eq) + sizeof(filename)];
|
|
time_t now;
|
|
int fd;
|
|
FILE *fptr;
|
|
+ int prc;
|
|
+ size_t reqlen;
|
|
#endif
|
|
|
|
if (RES_NOMODIFY & restrict_mask) {
|
|
- snprintf(reply, sizeof(reply),
|
|
- "saveconfig prohibited by restrict ... nomodify");
|
|
- ctl_putdata(reply, strlen(reply), 0);
|
|
+ ctl_printf("%s", "saveconfig prohibited by restrict ... nomodify");
|
|
ctl_flushpkt(0);
|
|
NLOG(NLOG_SYSINFO)
|
|
msyslog(LOG_NOTICE,
|
|
@@ -933,9 +1006,7 @@ save_config(
|
|
|
|
#ifdef SAVECONFIG
|
|
if (NULL == saveconfigdir) {
|
|
- snprintf(reply, sizeof(reply),
|
|
- "saveconfig prohibited, no saveconfigdir configured");
|
|
- ctl_putdata(reply, strlen(reply), 0);
|
|
+ ctl_printf("%s", "saveconfig prohibited, no saveconfigdir configured");
|
|
ctl_flushpkt(0);
|
|
NLOG(NLOG_SYSINFO)
|
|
msyslog(LOG_NOTICE,
|
|
@@ -944,22 +1015,80 @@ save_config(
|
|
return;
|
|
}
|
|
|
|
- if (0 == reqend - reqpt)
|
|
+ /* The length checking stuff gets serious. Do not assume a NUL
|
|
+ * byte can be found, but if so, use it to calculate the needed
|
|
+ * buffer size. If the available buffer is too short, bail out;
|
|
+ * likewise if there is no file spec. (The latter will not
|
|
+ * happen when using NTPQ, but there are other ways to craft a
|
|
+ * network packet!)
|
|
+ */
|
|
+ reqlen = (size_t)(reqend - reqpt);
|
|
+ if (0 != reqlen) {
|
|
+ char * nulpos = (char*)memchr(reqpt, 0, reqlen);
|
|
+ if (NULL != nulpos)
|
|
+ reqlen = (size_t)(nulpos - reqpt);
|
|
+ }
|
|
+ if (0 == reqlen)
|
|
return;
|
|
+ if (reqlen >= sizeof(filespec)) {
|
|
+ ctl_printf("saveconfig exceeded maximum raw name length (%u)",
|
|
+ (u_int)sizeof(filespec));
|
|
+ ctl_flushpkt(0);
|
|
+ msyslog(LOG_NOTICE,
|
|
+ "saveconfig exceeded maximum raw name length from %s",
|
|
+ stoa(&rbufp->recv_srcadr));
|
|
+ return;
|
|
+ }
|
|
|
|
- strlcpy(filespec, reqpt, sizeof(filespec));
|
|
- time(&now);
|
|
-
|
|
+ /* copy data directly as we exactly know the size */
|
|
+ memcpy(filespec, reqpt, reqlen);
|
|
+ filespec[reqlen] = '\0';
|
|
+
|
|
/*
|
|
* allow timestamping of the saved config filename with
|
|
* strftime() format such as:
|
|
* ntpq -c "saveconfig ntp-%Y%m%d-%H%M%S.conf"
|
|
* XXX: Nice feature, but not too safe.
|
|
+ * YYY: The check for permitted characters in file names should
|
|
+ * weed out the worst. Let's hope 'strftime()' does not
|
|
+ * develop pathological problems.
|
|
*/
|
|
+ time(&now);
|
|
if (0 == strftime(filename, sizeof(filename), filespec,
|
|
- localtime(&now)))
|
|
+ localtime(&now)))
|
|
+ {
|
|
+ /*
|
|
+ * If we arrive here, 'strftime()' balked; most likely
|
|
+ * the buffer was too short. (Or it encounterd an empty
|
|
+ * format, or just a format that expands to an empty
|
|
+ * string.) We try to use the original name, though this
|
|
+ * is very likely to fail later if there are format
|
|
+ * specs in the string. Note that truncation cannot
|
|
+ * happen here as long as both buffers have the same
|
|
+ * size!
|
|
+ */
|
|
strlcpy(filename, filespec, sizeof(filename));
|
|
+ }
|
|
|
|
+ /*
|
|
+ * Check the file name for sanity. This might/will rule out file
|
|
+ * names that would be legal but problematic, and it blocks
|
|
+ * directory traversal.
|
|
+ */
|
|
+ if (!is_safe_filename(filename)) {
|
|
+ ctl_printf("saveconfig rejects unsafe file name '%s'",
|
|
+ filename);
|
|
+ ctl_flushpkt(0);
|
|
+ msyslog(LOG_NOTICE,
|
|
+ "saveconfig rejects unsafe file name from %s",
|
|
+ stoa(&rbufp->recv_srcadr));
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ /*
|
|
+ * XXX: This next test may not be needed with is_safe_filename()
|
|
+ */
|
|
+
|
|
/* block directory/drive traversal */
|
|
/* TALOS-CAN-0062: block directory traversal for VMS, too */
|
|
if (NULL != strpbrk(filename, illegal_in_filename)) {
|
|
@@ -968,16 +1097,27 @@ save_config(
|
|
ctl_putdata(reply, strlen(reply), 0);
|
|
ctl_flushpkt(0);
|
|
msyslog(LOG_NOTICE,
|
|
- "saveconfig with path from %s rejected",
|
|
+ "saveconfig rejects unsafe file name from %s",
|
|
stoa(&rbufp->recv_srcadr));
|
|
return;
|
|
}
|
|
|
|
- snprintf(fullpath, sizeof(fullpath), "%s%s",
|
|
- saveconfigdir, filename);
|
|
+ /* concatenation of directory and path can cause another
|
|
+ * truncation...
|
|
+ */
|
|
+ prc = snprintf(fullpath, sizeof(fullpath), "%s%s",
|
|
+ saveconfigdir, filename);
|
|
+ if (prc < 0 || prc >= sizeof(fullpath)) {
|
|
+ ctl_printf("saveconfig exceeded maximum path length (%u)",
|
|
+ (u_int)sizeof(fullpath));
|
|
+ ctl_flushpkt(0);
|
|
+ msyslog(LOG_NOTICE,
|
|
+ "saveconfig exceeded maximum path length from %s",
|
|
+ stoa(&rbufp->recv_srcadr));
|
|
+ return;
|
|
+ }
|
|
|
|
- fd = open(fullpath, O_CREAT | O_TRUNC | O_WRONLY,
|
|
- S_IRUSR | S_IWUSR);
|
|
+ fd = open(fullpath, openmode, S_IRUSR | S_IWUSR);
|
|
if (-1 == fd)
|
|
fptr = NULL;
|
|
else
|
|
@@ -984,22 +1124,22 @@ save_config(
|
|
fptr = fdopen(fd, "w");
|
|
|
|
if (NULL == fptr || -1 == dump_all_config_trees(fptr, 1)) {
|
|
- snprintf(reply, sizeof(reply),
|
|
- "Unable to save configuration to file %s",
|
|
- filename);
|
|
+ ctl_printf("Unable to save configuration to file '%s': %m",
|
|
+ filename);
|
|
msyslog(LOG_ERR,
|
|
"saveconfig %s from %s failed", filename,
|
|
stoa(&rbufp->recv_srcadr));
|
|
} else {
|
|
- snprintf(reply, sizeof(reply),
|
|
- "Configuration saved to %s", filename);
|
|
+ ctl_printf("Configuration saved to '%s'", filename);
|
|
msyslog(LOG_NOTICE,
|
|
- "Configuration saved to %s (requested by %s)",
|
|
+ "Configuration saved to '%s' (requested by %s)",
|
|
fullpath, stoa(&rbufp->recv_srcadr));
|
|
/*
|
|
* save the output filename in system variable
|
|
* savedconfig, retrieved with:
|
|
* ntpq -c "rv 0 savedconfig"
|
|
+ * Note: the way 'savedconfig' is defined makes overflow
|
|
+ * checks unnecessary here.
|
|
*/
|
|
snprintf(savedconfig, sizeof(savedconfig), "%s%s",
|
|
savedconfig_eq, filename);
|
|
@@ -1009,11 +1149,9 @@ save_config(
|
|
if (NULL != fptr)
|
|
fclose(fptr);
|
|
#else /* !SAVECONFIG follows */
|
|
- snprintf(reply, sizeof(reply),
|
|
- "saveconfig unavailable, configured with --disable-saveconfig");
|
|
-#endif
|
|
-
|
|
- ctl_putdata(reply, strlen(reply), 0);
|
|
+ ctl_printf("%s",
|
|
+ "saveconfig unavailable, configured with --disable-saveconfig");
|
|
+#endif
|
|
ctl_flushpkt(0);
|
|
}
|
|
|
|
@@ -1757,7 +1895,30 @@ ctl_putarray(
|
|
ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
|
|
}
|
|
|
|
+/*
|
|
+ * ctl_printf - put a formatted string into the data buffer
|
|
+ */
|
|
+static void
|
|
+ctl_printf(
|
|
+ const char * fmt,
|
|
+ ...
|
|
+ )
|
|
+{
|
|
+ static const char * ellipsis = "[...]";
|
|
+ va_list va;
|
|
+ char fmtbuf[128];
|
|
+ int rc;
|
|
+
|
|
+ va_start(va, fmt);
|
|
+ rc = vsnprintf(fmtbuf, sizeof(fmtbuf), fmt, va);
|
|
+ va_end(va);
|
|
+ if (rc < 0 || rc >= sizeof(fmtbuf))
|
|
+ strcpy(fmtbuf + sizeof(fmtbuf) - strlen(ellipsis) - 1,
|
|
+ ellipsis);
|
|
+ ctl_putdata(fmtbuf, strlen(fmtbuf), 0);
|
|
+}
|
|
|
|
+
|
|
/*
|
|
* ctl_putsys - output a system variable
|
|
*/
|
|
Index: contrib/ntp/ntpd/ntp_crypto.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_crypto.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_crypto.c (working copy)
|
|
@@ -269,7 +269,7 @@ session_key(
|
|
memcpy(&keyid, dgst, 4);
|
|
keyid = ntohl(keyid);
|
|
if (lifetime != 0) {
|
|
- MD5auth_setkey(keyno, crypto_nid, dgst, len);
|
|
+ MD5auth_setkey(keyno, crypto_nid, dgst, len, NULL);
|
|
authtrust(keyno, lifetime);
|
|
}
|
|
DPRINTF(2, ("session_key: %s > %s %08x %08x hash %08x life %lu\n",
|
|
Index: contrib/ntp/ntpd/ntp_io.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_io.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_io.c (working copy)
|
|
@@ -62,6 +62,9 @@
|
|
# endif
|
|
#endif
|
|
|
|
+#if defined(HAVE_SIGNALED_IO) && defined(DEBUG_TIMING)
|
|
+# undef DEBUG_TIMING
|
|
+#endif
|
|
|
|
/*
|
|
* setsockopt does not always have the same arg declaration
|
|
@@ -280,9 +283,12 @@ static int addr_samesubnet (const sockaddr_u *, co
|
|
const sockaddr_u *, const sockaddr_u *);
|
|
static int create_sockets (u_short);
|
|
static SOCKET open_socket (sockaddr_u *, int, int, endpt *);
|
|
-static char * fdbits (int, fd_set *);
|
|
static void set_reuseaddr (int);
|
|
static isc_boolean_t socket_broadcast_enable (struct interface *, SOCKET, sockaddr_u *);
|
|
+
|
|
+#if !defined(HAVE_IO_COMPLETION_PORT) && !defined(HAVE_SIGNALED_IO)
|
|
+static char * fdbits (int, const fd_set *);
|
|
+#endif
|
|
#ifdef OS_MISSES_SPECIFIC_ROUTE_UPDATES
|
|
static isc_boolean_t socket_broadcast_disable (struct interface *, sockaddr_u *);
|
|
#endif
|
|
@@ -337,14 +343,17 @@ static int cmp_addr_distance(const sockaddr_u *,
|
|
#if !defined(HAVE_IO_COMPLETION_PORT)
|
|
static inline int read_network_packet (SOCKET, struct interface *, l_fp);
|
|
static void ntpd_addremove_io_fd (int, int, int);
|
|
-static input_handler_t input_handler;
|
|
+static void input_handler_scan (const l_fp*, const fd_set*);
|
|
+static int/*BOOL*/ sanitize_fdset (int errc);
|
|
#ifdef REFCLOCK
|
|
static inline int read_refclock_packet (SOCKET, struct refclockio *, l_fp);
|
|
#endif
|
|
+#ifdef HAVE_SIGNALED_IO
|
|
+static void input_handler (l_fp*);
|
|
#endif
|
|
+#endif
|
|
|
|
|
|
-
|
|
#ifndef HAVE_IO_COMPLETION_PORT
|
|
void
|
|
maintain_activefds(
|
|
@@ -455,11 +464,9 @@ init_io(void)
|
|
addremove_io_fd = &ntpd_addremove_io_fd;
|
|
#endif
|
|
|
|
-#ifdef SYS_WINNT
|
|
+#if defined(SYS_WINNT)
|
|
init_io_completion_port();
|
|
-#endif
|
|
-
|
|
-#if defined(HAVE_SIGNALED_IO)
|
|
+#elif defined(HAVE_SIGNALED_IO)
|
|
(void) set_signal(input_handler);
|
|
#endif
|
|
}
|
|
@@ -475,7 +482,8 @@ ntpd_addremove_io_fd(
|
|
UNUSED_ARG(is_pipe);
|
|
|
|
#ifdef HAVE_SIGNALED_IO
|
|
- init_socket_sig(fd);
|
|
+ if (!remove_it)
|
|
+ init_socket_sig(fd);
|
|
#endif /* not HAVE_SIGNALED_IO */
|
|
|
|
maintain_activefds(fd, remove_it);
|
|
@@ -717,78 +725,6 @@ addr_samesubnet(
|
|
|
|
|
|
/*
|
|
- * Code to tell if we have an IP address
|
|
- * If we have then return the sockaddr structure
|
|
- * and set the return value
|
|
- * see the bind9/getaddresses.c for details
|
|
- */
|
|
-int
|
|
-is_ip_address(
|
|
- const char * host,
|
|
- u_short af,
|
|
- sockaddr_u * addr
|
|
- )
|
|
-{
|
|
- struct in_addr in4;
|
|
- struct addrinfo hints;
|
|
- struct addrinfo *result;
|
|
- struct sockaddr_in6 *resaddr6;
|
|
- char tmpbuf[128];
|
|
- char *pch;
|
|
-
|
|
- REQUIRE(host != NULL);
|
|
- REQUIRE(addr != NULL);
|
|
-
|
|
- ZERO_SOCK(addr);
|
|
-
|
|
- /*
|
|
- * Try IPv4, then IPv6. In order to handle the extended format
|
|
- * for IPv6 scoped addresses (address%scope_ID), we'll use a local
|
|
- * working buffer of 128 bytes. The length is an ad-hoc value, but
|
|
- * should be enough for this purpose; the buffer can contain a string
|
|
- * of at least 80 bytes for scope_ID in addition to any IPv6 numeric
|
|
- * addresses (up to 46 bytes), the delimiter character and the
|
|
- * terminating NULL character.
|
|
- */
|
|
- if (AF_UNSPEC == af || AF_INET == af)
|
|
- if (inet_pton(AF_INET, host, &in4) == 1) {
|
|
- AF(addr) = AF_INET;
|
|
- SET_ADDR4N(addr, in4.s_addr);
|
|
-
|
|
- return TRUE;
|
|
- }
|
|
-
|
|
- if (AF_UNSPEC == af || AF_INET6 == af)
|
|
- if (sizeof(tmpbuf) > strlen(host)) {
|
|
- if ('[' == host[0]) {
|
|
- strlcpy(tmpbuf, &host[1], sizeof(tmpbuf));
|
|
- pch = strchr(tmpbuf, ']');
|
|
- if (pch != NULL)
|
|
- *pch = '\0';
|
|
- } else {
|
|
- strlcpy(tmpbuf, host, sizeof(tmpbuf));
|
|
- }
|
|
- ZERO(hints);
|
|
- hints.ai_family = AF_INET6;
|
|
- hints.ai_flags |= AI_NUMERICHOST;
|
|
- if (getaddrinfo(tmpbuf, NULL, &hints, &result) == 0) {
|
|
- AF(addr) = AF_INET6;
|
|
- resaddr6 = UA_PTR(struct sockaddr_in6, result->ai_addr);
|
|
- SET_ADDR6N(addr, resaddr6->sin6_addr);
|
|
- SET_SCOPE(addr, resaddr6->sin6_scope_id);
|
|
-
|
|
- freeaddrinfo(result);
|
|
- return TRUE;
|
|
- }
|
|
- }
|
|
- /*
|
|
- * If we got here it was not an IP address
|
|
- */
|
|
- return FALSE;
|
|
-}
|
|
-
|
|
-
|
|
-/*
|
|
* interface list enumerator - visitor pattern
|
|
*/
|
|
void
|
|
@@ -2354,6 +2290,7 @@ get_broadcastclient_flag(void)
|
|
{
|
|
return (broadcast_client_enabled);
|
|
}
|
|
+
|
|
/*
|
|
* Check to see if the address is a multicast address
|
|
*/
|
|
@@ -3204,7 +3141,7 @@ sendpkt(
|
|
}
|
|
|
|
|
|
-#if !defined(HAVE_IO_COMPLETION_PORT)
|
|
+#if !defined(HAVE_IO_COMPLETION_PORT) && !defined(HAVE_SIGNALED_IO)
|
|
/*
|
|
* fdbits - generate ascii representation of fd_set (FAU debug support)
|
|
* HFDF format - highest fd first.
|
|
@@ -3211,8 +3148,8 @@ sendpkt(
|
|
*/
|
|
static char *
|
|
fdbits(
|
|
- int count,
|
|
- fd_set *set
|
|
+ int count,
|
|
+ const fd_set* set
|
|
)
|
|
{
|
|
static char buffer[256];
|
|
@@ -3228,8 +3165,8 @@ fdbits(
|
|
|
|
return buffer;
|
|
}
|
|
+#endif
|
|
|
|
-
|
|
#ifdef REFCLOCK
|
|
/*
|
|
* Routine to read the refclock packets for a specific interface
|
|
@@ -3265,7 +3202,7 @@ read_refclock_packet(
|
|
/* TALOS-CAN-0064: avoid signed/unsigned clashes that can lead
|
|
* to buffer overrun and memory corruption
|
|
*/
|
|
- if (rp->datalen <= 0 || rp->datalen > sizeof(rb->recv_space))
|
|
+ if (rp->datalen <= 0 || (size_t)rp->datalen > sizeof(rb->recv_space))
|
|
read_count = sizeof(rb->recv_space);
|
|
else
|
|
read_count = (u_int)rp->datalen;
|
|
@@ -3582,6 +3519,7 @@ io_handler(void)
|
|
* and - lacking a hardware reference clock - I have
|
|
* yet to learn about anything else that is.
|
|
*/
|
|
+ ++handler_calls;
|
|
rdfdes = activefds;
|
|
# if !defined(VMS) && !defined(SYS_VXWORKS)
|
|
nfound = select(maxactivefd + 1, &rdfdes, NULL,
|
|
@@ -3590,8 +3528,7 @@ io_handler(void)
|
|
/* make select() wake up after one second */
|
|
{
|
|
struct timeval t1;
|
|
-
|
|
- t1.tv_sec = 1;
|
|
+ t1.tv_sec = 1;
|
|
t1.tv_usec = 0;
|
|
nfound = select(maxactivefd + 1,
|
|
&rdfdes, NULL, NULL,
|
|
@@ -3598,12 +3535,22 @@ io_handler(void)
|
|
&t1);
|
|
}
|
|
# endif /* VMS, VxWorks */
|
|
+ if (nfound < 0 && sanitize_fdset(errno)) {
|
|
+ struct timeval t1;
|
|
+ t1.tv_sec = 0;
|
|
+ t1.tv_usec = 0;
|
|
+ rdfdes = activefds;
|
|
+ nfound = select(maxactivefd + 1,
|
|
+ &rdfdes, NULL, NULL,
|
|
+ &t1);
|
|
+ }
|
|
+
|
|
if (nfound > 0) {
|
|
l_fp ts;
|
|
|
|
get_systime(&ts);
|
|
|
|
- input_handler(&ts);
|
|
+ input_handler_scan(&ts, &rdfdes);
|
|
} else if (nfound == -1 && errno != EINTR) {
|
|
msyslog(LOG_ERR, "select() error: %m");
|
|
}
|
|
@@ -3619,27 +3566,110 @@ io_handler(void)
|
|
# endif /* HAVE_SIGNALED_IO */
|
|
}
|
|
|
|
+#ifdef HAVE_SIGNALED_IO
|
|
/*
|
|
* input_handler - receive packets asynchronously
|
|
+ *
|
|
+ * ALWAYS IN SIGNAL HANDLER CONTEXT -- only async-safe functions allowed!
|
|
*/
|
|
-static void
|
|
+static RETSIGTYPE
|
|
input_handler(
|
|
l_fp * cts
|
|
)
|
|
{
|
|
+ int n;
|
|
+ struct timeval tvzero;
|
|
+ fd_set fds;
|
|
+
|
|
+ ++handler_calls;
|
|
+
|
|
+ /*
|
|
+ * Do a poll to see who has data
|
|
+ */
|
|
+
|
|
+ fds = activefds;
|
|
+ tvzero.tv_sec = tvzero.tv_usec = 0;
|
|
+
|
|
+ n = select(maxactivefd + 1, &fds, NULL, NULL, &tvzero);
|
|
+ if (n < 0 && sanitize_fdset(errno)) {
|
|
+ fds = activefds;
|
|
+ tvzero.tv_sec = tvzero.tv_usec = 0;
|
|
+ n = select(maxactivefd + 1, &fds, NULL, NULL, &tvzero);
|
|
+ }
|
|
+ if (n > 0)
|
|
+ input_handler_scan(cts, &fds);
|
|
+}
|
|
+#endif /* HAVE_SIGNALED_IO */
|
|
+
|
|
+
|
|
+/*
|
|
+ * Try to sanitize the global FD set
|
|
+ *
|
|
+ * SIGNAL HANDLER CONTEXT if HAVE_SIGNALED_IO, ordinary userspace otherwise
|
|
+ */
|
|
+static int/*BOOL*/
|
|
+sanitize_fdset(
|
|
+ int errc
|
|
+ )
|
|
+{
|
|
+ int j, b, maxscan;
|
|
+
|
|
+# ifndef HAVE_SIGNALED_IO
|
|
+ /*
|
|
+ * extended FAU debugging output
|
|
+ */
|
|
+ if (errc != EINTR) {
|
|
+ msyslog(LOG_ERR,
|
|
+ "select(%d, %s, 0L, 0L, &0.0) error: %m",
|
|
+ maxactivefd + 1,
|
|
+ fdbits(maxactivefd, &activefds));
|
|
+ }
|
|
+# endif
|
|
+
|
|
+ if (errc != EBADF)
|
|
+ return FALSE;
|
|
+
|
|
+ /* if we have oviously bad FDs, try to sanitize the FD set. */
|
|
+ for (j = 0, maxscan = 0; j <= maxactivefd; j++) {
|
|
+ if (FD_ISSET(j, &activefds)) {
|
|
+ if (-1 != read(j, &b, 0)) {
|
|
+ maxscan = j;
|
|
+ continue;
|
|
+ }
|
|
+# ifndef HAVE_SIGNALED_IO
|
|
+ msyslog(LOG_ERR,
|
|
+ "Removing bad file descriptor %d from select set",
|
|
+ j);
|
|
+# endif
|
|
+ FD_CLR(j, &activefds);
|
|
+ }
|
|
+ }
|
|
+ if (maxactivefd != maxscan)
|
|
+ maxactivefd = maxscan;
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+/*
|
|
+ * scan the known FDs (clocks, servers, ...) for presence in a 'fd_set'.
|
|
+ *
|
|
+ * SIGNAL HANDLER CONTEXT if HAVE_SIGNALED_IO, ordinary userspace otherwise
|
|
+ */
|
|
+static void
|
|
+input_handler_scan(
|
|
+ const l_fp * cts,
|
|
+ const fd_set * pfds
|
|
+ )
|
|
+{
|
|
int buflen;
|
|
- int n;
|
|
u_int idx;
|
|
int doing;
|
|
SOCKET fd;
|
|
blocking_child *c;
|
|
- struct timeval tvzero;
|
|
l_fp ts; /* Timestamp at BOselect() gob */
|
|
-#ifdef DEBUG_TIMING
|
|
+
|
|
+#if defined(DEBUG_TIMING)
|
|
l_fp ts_e; /* Timestamp at EOselect() gob */
|
|
#endif
|
|
- fd_set fds;
|
|
- size_t select_count;
|
|
endpt * ep;
|
|
#ifdef REFCLOCK
|
|
struct refclockio *rp;
|
|
@@ -3651,101 +3681,45 @@ input_handler(
|
|
struct asyncio_reader * next_asyncio_reader;
|
|
#endif
|
|
|
|
- handler_calls++;
|
|
- select_count = 0;
|
|
-
|
|
- /*
|
|
- * If we have something to do, freeze a timestamp.
|
|
- * See below for the other cases (nothing left to do or error)
|
|
- */
|
|
+ ++handler_pkts;
|
|
ts = *cts;
|
|
|
|
+#ifdef REFCLOCK
|
|
/*
|
|
- * Do a poll to see who has data
|
|
+ * Check out the reference clocks first, if any
|
|
*/
|
|
-
|
|
- fds = activefds;
|
|
- tvzero.tv_sec = tvzero.tv_usec = 0;
|
|
-
|
|
- n = select(maxactivefd + 1, &fds, NULL, NULL, &tvzero);
|
|
-
|
|
- /*
|
|
- * If there are no packets waiting just return
|
|
- */
|
|
- if (n < 0) {
|
|
- int err = errno;
|
|
- int j, b, prior;
|
|
+
|
|
+ for (rp = refio; rp != NULL; rp = rp->next) {
|
|
+ fd = rp->fd;
|
|
+
|
|
+ if (!FD_ISSET(fd, pfds))
|
|
+ continue;
|
|
+ buflen = read_refclock_packet(fd, rp, ts);
|
|
/*
|
|
- * extended FAU debugging output
|
|
+ * The first read must succeed after select() indicates
|
|
+ * readability, or we've reached a permanent EOF.
|
|
+ * http://bugs.ntp.org/1732 reported ntpd munching CPU
|
|
+ * after a USB GPS was unplugged because select was
|
|
+ * indicating EOF but ntpd didn't remove the descriptor
|
|
+ * from the activefds set.
|
|
*/
|
|
- if (err != EINTR)
|
|
- msyslog(LOG_ERR,
|
|
- "select(%d, %s, 0L, 0L, &0.0) error: %m",
|
|
- maxactivefd + 1,
|
|
- fdbits(maxactivefd, &activefds));
|
|
- if (err != EBADF)
|
|
- goto ih_return;
|
|
- for (j = 0, prior = 0; j <= maxactivefd; j++) {
|
|
- if (FD_ISSET(j, &activefds)) {
|
|
- if (-1 != read(j, &b, 0)) {
|
|
- prior = j;
|
|
- continue;
|
|
- }
|
|
- msyslog(LOG_ERR,
|
|
- "Removing bad file descriptor %d from select set",
|
|
- j);
|
|
- FD_CLR(j, &activefds);
|
|
- if (j == maxactivefd)
|
|
- maxactivefd = prior;
|
|
- }
|
|
+ if (buflen < 0 && EAGAIN != errno) {
|
|
+ saved_errno = errno;
|
|
+ clk = refnumtoa(&rp->srcclock->srcadr);
|
|
+ errno = saved_errno;
|
|
+ msyslog(LOG_ERR, "%s read: %m", clk);
|
|
+ maintain_activefds(fd, TRUE);
|
|
+ } else if (0 == buflen) {
|
|
+ clk = refnumtoa(&rp->srcclock->srcadr);
|
|
+ msyslog(LOG_ERR, "%s read EOF", clk);
|
|
+ maintain_activefds(fd, TRUE);
|
|
+ } else {
|
|
+ /* drain any remaining refclock input */
|
|
+ do {
|
|
+ buflen = read_refclock_packet(fd, rp, ts);
|
|
+ } while (buflen > 0);
|
|
}
|
|
- goto ih_return;
|
|
}
|
|
- else if (n == 0)
|
|
- goto ih_return;
|
|
-
|
|
- ++handler_pkts;
|
|
-
|
|
-#ifdef REFCLOCK
|
|
- /*
|
|
- * Check out the reference clocks first, if any
|
|
- */
|
|
-
|
|
- if (refio != NULL) {
|
|
- for (rp = refio; rp != NULL; rp = rp->next) {
|
|
- fd = rp->fd;
|
|
-
|
|
- if (!FD_ISSET(fd, &fds))
|
|
- continue;
|
|
- ++select_count;
|
|
- buflen = read_refclock_packet(fd, rp, ts);
|
|
- /*
|
|
- * The first read must succeed after select()
|
|
- * indicates readability, or we've reached
|
|
- * a permanent EOF. http://bugs.ntp.org/1732
|
|
- * reported ntpd munching CPU after a USB GPS
|
|
- * was unplugged because select was indicating
|
|
- * EOF but ntpd didn't remove the descriptor
|
|
- * from the activefds set.
|
|
- */
|
|
- if (buflen < 0 && EAGAIN != errno) {
|
|
- saved_errno = errno;
|
|
- clk = refnumtoa(&rp->srcclock->srcadr);
|
|
- errno = saved_errno;
|
|
- msyslog(LOG_ERR, "%s read: %m", clk);
|
|
- maintain_activefds(fd, TRUE);
|
|
- } else if (0 == buflen) {
|
|
- clk = refnumtoa(&rp->srcclock->srcadr);
|
|
- msyslog(LOG_ERR, "%s read EOF", clk);
|
|
- maintain_activefds(fd, TRUE);
|
|
- } else {
|
|
- /* drain any remaining refclock input */
|
|
- do {
|
|
- buflen = read_refclock_packet(fd, rp, ts);
|
|
- } while (buflen > 0);
|
|
- }
|
|
- }
|
|
- }
|
|
#endif /* REFCLOCK */
|
|
|
|
/*
|
|
@@ -3762,9 +3736,8 @@ input_handler(
|
|
}
|
|
if (fd < 0)
|
|
continue;
|
|
- if (FD_ISSET(fd, &fds))
|
|
+ if (FD_ISSET(fd, pfds))
|
|
do {
|
|
- ++select_count;
|
|
buflen = read_network_packet(
|
|
fd, ep, ts);
|
|
} while (buflen > 0);
|
|
@@ -3781,10 +3754,8 @@ input_handler(
|
|
while (asyncio_reader != NULL) {
|
|
/* callback may unlink and free asyncio_reader */
|
|
next_asyncio_reader = asyncio_reader->link;
|
|
- if (FD_ISSET(asyncio_reader->fd, &fds)) {
|
|
- ++select_count;
|
|
+ if (FD_ISSET(asyncio_reader->fd, pfds))
|
|
(*asyncio_reader->receiver)(asyncio_reader);
|
|
- }
|
|
asyncio_reader = next_asyncio_reader;
|
|
}
|
|
#endif /* HAS_ROUTING_SOCKET */
|
|
@@ -3796,26 +3767,14 @@ input_handler(
|
|
c = blocking_children[idx];
|
|
if (NULL == c || -1 == c->resp_read_pipe)
|
|
continue;
|
|
- if (FD_ISSET(c->resp_read_pipe, &fds)) {
|
|
- select_count++;
|
|
- process_blocking_resp(c);
|
|
+ if (FD_ISSET(c->resp_read_pipe, pfds)) {
|
|
+ ++c->resp_ready_seen;
|
|
+ ++blocking_child_ready_seen;
|
|
}
|
|
}
|
|
|
|
- /*
|
|
- * Done everything from that select.
|
|
- * If nothing to do, just return.
|
|
- * If an error occurred, complain and return.
|
|
- */
|
|
- if (select_count == 0) { /* We really had nothing to do */
|
|
-#ifdef DEBUG
|
|
- if (debug)
|
|
- msyslog(LOG_DEBUG, "input_handler: select() returned 0");
|
|
-#endif /* DEBUG */
|
|
- goto ih_return;
|
|
- }
|
|
/* We've done our work */
|
|
-#ifdef DEBUG_TIMING
|
|
+#if defined(DEBUG_TIMING)
|
|
get_systime(&ts_e);
|
|
/*
|
|
* (ts_e - ts) is the amount of time we spent
|
|
@@ -3829,11 +3788,7 @@ input_handler(
|
|
"input_handler: Processed a gob of fd's in %s msec",
|
|
lfptoms(&ts_e, 6));
|
|
#endif /* DEBUG_TIMING */
|
|
- /* We're done... */
|
|
- ih_return:
|
|
- return;
|
|
}
|
|
-#endif /* !HAVE_IO_COMPLETION_PORT */
|
|
|
|
|
|
/*
|
|
Index: contrib/ntp/ntpd/ntp_keyword.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_keyword.h (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_keyword.h (working copy)
|
|
@@ -2,7 +2,7 @@
|
|
* ntp_keyword.h
|
|
*
|
|
* NOTE: edit this file with caution, it is generated by keyword-gen.c
|
|
- * Generated 2015-06-25 03:57:00 UTC diff_ignore_line
|
|
+ * Generated 2016-01-16 08:33:03 UTC diff_ignore_line
|
|
*
|
|
*/
|
|
#include "ntp_scanner.h"
|
|
@@ -10,7 +10,7 @@
|
|
|
|
#define LOWEST_KEYWORD_ID 258
|
|
|
|
-const char * const keyword_text[191] = {
|
|
+const char * const keyword_text[194] = {
|
|
/* 0 258 T_Abbrev */ "abbrev",
|
|
/* 1 259 T_Age */ "age",
|
|
/* 2 260 T_All */ "all",
|
|
@@ -182,31 +182,34 @@
|
|
/* 168 426 T_Ttl */ "ttl",
|
|
/* 169 427 T_Type */ "type",
|
|
/* 170 428 T_U_int */ NULL,
|
|
- /* 171 429 T_Unconfig */ "unconfig",
|
|
- /* 172 430 T_Unpeer */ "unpeer",
|
|
- /* 173 431 T_Version */ "version",
|
|
- /* 174 432 T_WanderThreshold */ NULL,
|
|
- /* 175 433 T_Week */ "week",
|
|
- /* 176 434 T_Wildcard */ "wildcard",
|
|
- /* 177 435 T_Xleave */ "xleave",
|
|
- /* 178 436 T_Year */ "year",
|
|
- /* 179 437 T_Flag */ NULL,
|
|
- /* 180 438 T_EOC */ NULL,
|
|
- /* 181 439 T_Simulate */ "simulate",
|
|
- /* 182 440 T_Beep_Delay */ "beep_delay",
|
|
- /* 183 441 T_Sim_Duration */ "simulation_duration",
|
|
- /* 184 442 T_Server_Offset */ "server_offset",
|
|
- /* 185 443 T_Duration */ "duration",
|
|
- /* 186 444 T_Freq_Offset */ "freq_offset",
|
|
- /* 187 445 T_Wander */ "wander",
|
|
- /* 188 446 T_Jitter */ "jitter",
|
|
- /* 189 447 T_Prop_Delay */ "prop_delay",
|
|
- /* 190 448 T_Proc_Delay */ "proc_delay"
|
|
+ /* 171 429 T_UEcrypto */ "unpeer_crypto_early",
|
|
+ /* 172 430 T_UEcryptonak */ "unpeer_crypto_nak_early",
|
|
+ /* 173 431 T_UEdigest */ "unpeer_digest_early",
|
|
+ /* 174 432 T_Unconfig */ "unconfig",
|
|
+ /* 175 433 T_Unpeer */ "unpeer",
|
|
+ /* 176 434 T_Version */ "version",
|
|
+ /* 177 435 T_WanderThreshold */ NULL,
|
|
+ /* 178 436 T_Week */ "week",
|
|
+ /* 179 437 T_Wildcard */ "wildcard",
|
|
+ /* 180 438 T_Xleave */ "xleave",
|
|
+ /* 181 439 T_Year */ "year",
|
|
+ /* 182 440 T_Flag */ NULL,
|
|
+ /* 183 441 T_EOC */ NULL,
|
|
+ /* 184 442 T_Simulate */ "simulate",
|
|
+ /* 185 443 T_Beep_Delay */ "beep_delay",
|
|
+ /* 186 444 T_Sim_Duration */ "simulation_duration",
|
|
+ /* 187 445 T_Server_Offset */ "server_offset",
|
|
+ /* 188 446 T_Duration */ "duration",
|
|
+ /* 189 447 T_Freq_Offset */ "freq_offset",
|
|
+ /* 190 448 T_Wander */ "wander",
|
|
+ /* 191 449 T_Jitter */ "jitter",
|
|
+ /* 192 450 T_Prop_Delay */ "prop_delay",
|
|
+ /* 193 451 T_Proc_Delay */ "proc_delay"
|
|
};
|
|
|
|
-#define SCANNER_INIT_S 853
|
|
+#define SCANNER_INIT_S 887
|
|
|
|
-const scan_state sst[856] = {
|
|
+const scan_state sst[890] = {
|
|
/*SS_T( ch, f-by, match, other ), */
|
|
0, /* 0 */
|
|
S_ST( '-', 3, 323, 0 ), /* 1 */
|
|
@@ -252,7 +255,7 @@
|
|
S_ST( 'd', 3, 42, 0 ), /* 41 beep_ */
|
|
S_ST( 'e', 3, 43, 0 ), /* 42 beep_d */
|
|
S_ST( 'l', 3, 44, 0 ), /* 43 beep_de */
|
|
- S_ST( 'a', 3, 440, 0 ), /* 44 beep_del */
|
|
+ S_ST( 'a', 3, 443, 0 ), /* 44 beep_del */
|
|
S_ST( 'r', 3, 46, 34 ), /* 45 b */
|
|
S_ST( 'o', 3, 47, 0 ), /* 46 br */
|
|
S_ST( 'a', 3, 48, 0 ), /* 47 bro */
|
|
@@ -352,7 +355,7 @@
|
|
S_ST( 'a', 3, 142, 0 ), /* 141 dur */
|
|
S_ST( 't', 3, 143, 0 ), /* 142 dura */
|
|
S_ST( 'i', 3, 144, 0 ), /* 143 durat */
|
|
- S_ST( 'o', 3, 443, 0 ), /* 144 durati */
|
|
+ S_ST( 'o', 3, 446, 0 ), /* 144 durati */
|
|
S_ST( 'e', 3, 146, 105 ), /* 145 */
|
|
S_ST( 'n', 3, 293, 0 ), /* 146 e */
|
|
S_ST( 'a', 3, 148, 0 ), /* 147 en */
|
|
@@ -378,7 +381,7 @@
|
|
S_ST( 'f', 3, 168, 0 ), /* 167 freq_o */
|
|
S_ST( 'f', 3, 169, 0 ), /* 168 freq_of */
|
|
S_ST( 's', 3, 170, 0 ), /* 169 freq_off */
|
|
- S_ST( 'e', 3, 444, 0 ), /* 170 freq_offs */
|
|
+ S_ST( 'e', 3, 447, 0 ), /* 170 freq_offs */
|
|
S_ST( 'u', 3, 172, 163 ), /* 171 f */
|
|
S_ST( 'd', 3, 173, 0 ), /* 172 fu */
|
|
S_ST( 'g', 3, 305, 0 ), /* 173 fud */
|
|
@@ -438,7 +441,7 @@
|
|
S_ST( 'i', 3, 228, 0 ), /* 227 j */
|
|
S_ST( 't', 3, 229, 0 ), /* 228 ji */
|
|
S_ST( 't', 3, 230, 0 ), /* 229 jit */
|
|
- S_ST( 'e', 3, 446, 0 ), /* 230 jitt */
|
|
+ S_ST( 'e', 3, 449, 0 ), /* 230 jitt */
|
|
S_ST( 'k', 3, 238, 226 ), /* 231 */
|
|
S_ST( 'e', 3, 325, 0 ), /* 232 k */
|
|
S_ST( 'r', 3, 234, 0 ), /* 233 ke */
|
|
@@ -447,7 +450,7 @@
|
|
S_ST( 'd', 3, 237, 0 ), /* 236 keys */
|
|
S_ST( 'i', 3, 327, 0 ), /* 237 keysd */
|
|
S_ST( 'o', 3, 328, 232 ), /* 238 k */
|
|
- S_ST( 'l', 3, 449, 231 ), /* 239 */
|
|
+ S_ST( 'l', 3, 452, 231 ), /* 239 */
|
|
S_ST( 'e', 3, 241, 0 ), /* 240 l */
|
|
S_ST( 'a', 3, 242, 0 ), /* 241 le */
|
|
S_ST( 'p', 3, 246, 0 ), /* 242 lea */
|
|
@@ -495,7 +498,7 @@
|
|
S_ST( 'e', 0, 0, 0 ), /* 284 T_Disable */
|
|
S_ST( 'd', 0, 0, 0 ), /* 285 T_Discard */
|
|
S_ST( 'n', 0, 0, 0 ), /* 286 T_Dispersion */
|
|
- S_ST( 'i', 3, 432, 240 ), /* 287 l */
|
|
+ S_ST( 'i', 3, 435, 240 ), /* 287 l */
|
|
S_ST( 'e', 1, 0, 0 ), /* 288 T_Driftfile */
|
|
S_ST( 'p', 0, 0, 0 ), /* 289 T_Drop */
|
|
S_ST( 'p', 0, 0, 0 ), /* 290 T_Dscp */
|
|
@@ -557,7 +560,7 @@
|
|
S_ST( 'm', 0, 0, 0 ), /* 346 T_Maxmem */
|
|
S_ST( 'l', 0, 0, 0 ), /* 347 T_Maxpoll */
|
|
S_ST( 's', 0, 0, 0 ), /* 348 T_Mdnstries */
|
|
- S_ST( 'm', 0, 518, 0 ), /* 349 T_Mem */
|
|
+ S_ST( 'm', 0, 521, 0 ), /* 349 T_Mem */
|
|
S_ST( 'k', 0, 0, 0 ), /* 350 T_Memlock */
|
|
S_ST( 'k', 0, 0, 0 ), /* 351 T_Minclock */
|
|
S_ST( 'h', 0, 0, 0 ), /* 352 T_Mindepth */
|
|
@@ -583,16 +586,16 @@
|
|
S_ST( 'e', 0, 0, 0 ), /* 372 T_Noserve */
|
|
S_ST( 'p', 0, 0, 0 ), /* 373 T_Notrap */
|
|
S_ST( 't', 0, 0, 0 ), /* 374 T_Notrust */
|
|
- S_ST( 'p', 0, 614, 0 ), /* 375 T_Ntp */
|
|
+ S_ST( 'p', 0, 617, 0 ), /* 375 T_Ntp */
|
|
S_ST( 't', 0, 0, 0 ), /* 376 T_Ntpport */
|
|
S_ST( 't', 1, 0, 0 ), /* 377 T_NtpSignDsocket */
|
|
- S_ST( 'n', 0, 629, 0 ), /* 378 T_Orphan */
|
|
+ S_ST( 'n', 0, 632, 0 ), /* 378 T_Orphan */
|
|
S_ST( 't', 0, 0, 0 ), /* 379 T_Orphanwait */
|
|
S_ST( 'c', 0, 0, 0 ), /* 380 T_Panic */
|
|
- S_ST( 'r', 1, 638, 0 ), /* 381 T_Peer */
|
|
+ S_ST( 'r', 1, 641, 0 ), /* 381 T_Peer */
|
|
S_ST( 's', 0, 0, 0 ), /* 382 T_Peerstats */
|
|
S_ST( 'e', 2, 0, 0 ), /* 383 T_Phone */
|
|
- S_ST( 'd', 0, 646, 0 ), /* 384 T_Pid */
|
|
+ S_ST( 'd', 0, 649, 0 ), /* 384 T_Pid */
|
|
S_ST( 'e', 1, 0, 0 ), /* 385 T_Pidfile */
|
|
S_ST( 'l', 1, 0, 0 ), /* 386 T_Pool */
|
|
S_ST( 't', 0, 0, 0 ), /* 387 T_Port */
|
|
@@ -599,7 +602,7 @@
|
|
S_ST( 't', 0, 0, 0 ), /* 388 T_Preempt */
|
|
S_ST( 'r', 0, 0, 0 ), /* 389 T_Prefer */
|
|
S_ST( 's', 0, 0, 0 ), /* 390 T_Protostats */
|
|
- S_ST( 'w', 1, 0, 652 ), /* 391 T_Pw */
|
|
+ S_ST( 'w', 1, 0, 655 ), /* 391 T_Pw */
|
|
S_ST( 'e', 1, 0, 0 ), /* 392 T_Randfile */
|
|
S_ST( 's', 0, 0, 0 ), /* 393 T_Rawstats */
|
|
S_ST( 'd', 1, 0, 0 ), /* 394 T_Refid */
|
|
@@ -609,20 +612,20 @@
|
|
S_ST( 'e', 0, 0, 0 ), /* 398 T_Revoke */
|
|
S_ST( 't', 0, 0, 0 ), /* 399 T_Rlimit */
|
|
S_ST( 'r', 1, 0, 0 ), /* 400 T_Saveconfigdir */
|
|
- S_ST( 'r', 1, 729, 0 ), /* 401 T_Server */
|
|
+ S_ST( 'r', 1, 732, 0 ), /* 401 T_Server */
|
|
S_ST( 'r', 1, 0, 0 ), /* 402 T_Setvar */
|
|
S_ST( 'e', 0, 0, 0 ), /* 403 T_Source */
|
|
S_ST( 'e', 0, 0, 0 ), /* 404 T_Stacksize */
|
|
S_ST( 's', 0, 0, 0 ), /* 405 T_Statistics */
|
|
- S_ST( 's', 0, 772, 767 ), /* 406 T_Stats */
|
|
+ S_ST( 's', 0, 775, 770 ), /* 406 T_Stats */
|
|
S_ST( 'r', 1, 0, 0 ), /* 407 T_Statsdir */
|
|
- S_ST( 'p', 0, 780, 0 ), /* 408 T_Step */
|
|
+ S_ST( 'p', 0, 783, 0 ), /* 408 T_Step */
|
|
S_ST( 'k', 0, 0, 0 ), /* 409 T_Stepback */
|
|
S_ST( 'd', 0, 0, 0 ), /* 410 T_Stepfwd */
|
|
S_ST( 't', 0, 0, 0 ), /* 411 T_Stepout */
|
|
S_ST( 'm', 0, 0, 0 ), /* 412 T_Stratum */
|
|
S_ST( 'e', 3, 332, 0 ), /* 413 limit */
|
|
- S_ST( 's', 0, 787, 0 ), /* 414 T_Sys */
|
|
+ S_ST( 's', 0, 790, 0 ), /* 414 T_Sys */
|
|
S_ST( 's', 0, 0, 0 ), /* 415 T_Sysstats */
|
|
S_ST( 'k', 0, 0, 0 ), /* 416 T_Tick */
|
|
S_ST( '1', 0, 0, 0 ), /* 417 T_Time1 */
|
|
@@ -637,432 +640,466 @@
|
|
S_ST( 'l', 0, 0, 0 ), /* 426 T_Ttl */
|
|
S_ST( 'e', 0, 0, 0 ), /* 427 T_Type */
|
|
S_ST( 'n', 3, 333, 294 ), /* 428 li */
|
|
- S_ST( 'g', 1, 0, 0 ), /* 429 T_Unconfig */
|
|
- S_ST( 'r', 1, 0, 0 ), /* 430 T_Unpeer */
|
|
- S_ST( 'n', 0, 0, 0 ), /* 431 T_Version */
|
|
- S_ST( 's', 3, 437, 428 ), /* 432 li */
|
|
- S_ST( 'k', 0, 0, 0 ), /* 433 T_Week */
|
|
- S_ST( 'd', 0, 0, 0 ), /* 434 T_Wildcard */
|
|
- S_ST( 'e', 0, 0, 0 ), /* 435 T_Xleave */
|
|
- S_ST( 'r', 0, 0, 0 ), /* 436 T_Year */
|
|
- S_ST( 't', 3, 438, 0 ), /* 437 lis */
|
|
- S_ST( 'e', 3, 334, 0 ), /* 438 list */
|
|
- S_ST( 'e', 0, 0, 0 ), /* 439 T_Simulate */
|
|
- S_ST( 'y', 0, 0, 0 ), /* 440 T_Beep_Delay */
|
|
- S_ST( 'n', 0, 0, 0 ), /* 441 T_Sim_Duration */
|
|
- S_ST( 't', 0, 0, 0 ), /* 442 T_Server_Offset */
|
|
- S_ST( 'n', 0, 0, 0 ), /* 443 T_Duration */
|
|
- S_ST( 't', 0, 0, 0 ), /* 444 T_Freq_Offset */
|
|
- S_ST( 'r', 0, 0, 0 ), /* 445 T_Wander */
|
|
- S_ST( 'r', 0, 0, 0 ), /* 446 T_Jitter */
|
|
- S_ST( 'y', 0, 0, 0 ), /* 447 T_Prop_Delay */
|
|
- S_ST( 'y', 0, 0, 0 ), /* 448 T_Proc_Delay */
|
|
- S_ST( 'o', 3, 465, 287 ), /* 449 l */
|
|
- S_ST( 'g', 3, 456, 0 ), /* 450 lo */
|
|
- S_ST( 'c', 3, 452, 0 ), /* 451 log */
|
|
- S_ST( 'o', 3, 453, 0 ), /* 452 logc */
|
|
- S_ST( 'n', 3, 454, 0 ), /* 453 logco */
|
|
- S_ST( 'f', 3, 455, 0 ), /* 454 logcon */
|
|
- S_ST( 'i', 3, 335, 0 ), /* 455 logconf */
|
|
- S_ST( 'f', 3, 457, 451 ), /* 456 log */
|
|
- S_ST( 'i', 3, 458, 0 ), /* 457 logf */
|
|
- S_ST( 'l', 3, 336, 0 ), /* 458 logfi */
|
|
- S_ST( 'o', 3, 460, 450 ), /* 459 lo */
|
|
- S_ST( 'p', 3, 461, 0 ), /* 460 loo */
|
|
- S_ST( 's', 3, 462, 0 ), /* 461 loop */
|
|
- S_ST( 't', 3, 463, 0 ), /* 462 loops */
|
|
- S_ST( 'a', 3, 464, 0 ), /* 463 loopst */
|
|
- S_ST( 't', 3, 337, 0 ), /* 464 loopsta */
|
|
- S_ST( 'w', 3, 466, 459 ), /* 465 lo */
|
|
- S_ST( 'p', 3, 467, 0 ), /* 466 low */
|
|
- S_ST( 'r', 3, 468, 0 ), /* 467 lowp */
|
|
- S_ST( 'i', 3, 469, 0 ), /* 468 lowpr */
|
|
- S_ST( 'o', 3, 470, 0 ), /* 469 lowpri */
|
|
- S_ST( 't', 3, 471, 0 ), /* 470 lowprio */
|
|
- S_ST( 'r', 3, 472, 0 ), /* 471 lowpriot */
|
|
- S_ST( 'a', 3, 338, 0 ), /* 472 lowpriotr */
|
|
- S_ST( 'm', 3, 554, 239 ), /* 473 */
|
|
- S_ST( 'a', 3, 492, 0 ), /* 474 m */
|
|
- S_ST( 'n', 3, 476, 0 ), /* 475 ma */
|
|
- S_ST( 'y', 3, 477, 0 ), /* 476 man */
|
|
- S_ST( 'c', 3, 478, 0 ), /* 477 many */
|
|
- S_ST( 'a', 3, 479, 0 ), /* 478 manyc */
|
|
- S_ST( 's', 3, 480, 0 ), /* 479 manyca */
|
|
- S_ST( 't', 3, 486, 0 ), /* 480 manycas */
|
|
- S_ST( 'c', 3, 482, 0 ), /* 481 manycast */
|
|
- S_ST( 'l', 3, 483, 0 ), /* 482 manycastc */
|
|
- S_ST( 'i', 3, 484, 0 ), /* 483 manycastcl */
|
|
- S_ST( 'e', 3, 485, 0 ), /* 484 manycastcli */
|
|
- S_ST( 'n', 3, 339, 0 ), /* 485 manycastclie */
|
|
- S_ST( 's', 3, 487, 481 ), /* 486 manycast */
|
|
- S_ST( 'e', 3, 488, 0 ), /* 487 manycasts */
|
|
- S_ST( 'r', 3, 489, 0 ), /* 488 manycastse */
|
|
- S_ST( 'v', 3, 490, 0 ), /* 489 manycastser */
|
|
- S_ST( 'e', 3, 340, 0 ), /* 490 manycastserv */
|
|
- S_ST( 's', 3, 341, 475 ), /* 491 ma */
|
|
- S_ST( 'x', 3, 507, 491 ), /* 492 ma */
|
|
- S_ST( 'a', 3, 494, 0 ), /* 493 max */
|
|
- S_ST( 'g', 3, 342, 0 ), /* 494 maxa */
|
|
- S_ST( 'c', 3, 496, 493 ), /* 495 max */
|
|
- S_ST( 'l', 3, 497, 0 ), /* 496 maxc */
|
|
- S_ST( 'o', 3, 498, 0 ), /* 497 maxcl */
|
|
- S_ST( 'c', 3, 343, 0 ), /* 498 maxclo */
|
|
- S_ST( 'd', 3, 503, 495 ), /* 499 max */
|
|
- S_ST( 'e', 3, 501, 0 ), /* 500 maxd */
|
|
- S_ST( 'p', 3, 502, 0 ), /* 501 maxde */
|
|
- S_ST( 't', 3, 344, 0 ), /* 502 maxdep */
|
|
- S_ST( 'i', 3, 504, 500 ), /* 503 maxd */
|
|
- S_ST( 's', 3, 345, 0 ), /* 504 maxdi */
|
|
- S_ST( 'm', 3, 506, 499 ), /* 505 max */
|
|
- S_ST( 'e', 3, 346, 0 ), /* 506 maxm */
|
|
- S_ST( 'p', 3, 508, 505 ), /* 507 max */
|
|
- S_ST( 'o', 3, 509, 0 ), /* 508 maxp */
|
|
- S_ST( 'l', 3, 347, 0 ), /* 509 maxpo */
|
|
- S_ST( 'd', 3, 511, 474 ), /* 510 m */
|
|
- S_ST( 'n', 3, 512, 0 ), /* 511 md */
|
|
- S_ST( 's', 3, 513, 0 ), /* 512 mdn */
|
|
- S_ST( 't', 3, 514, 0 ), /* 513 mdns */
|
|
- S_ST( 'r', 3, 515, 0 ), /* 514 mdnst */
|
|
- S_ST( 'i', 3, 516, 0 ), /* 515 mdnstr */
|
|
- S_ST( 'e', 3, 348, 0 ), /* 516 mdnstri */
|
|
- S_ST( 'e', 3, 349, 510 ), /* 517 m */
|
|
- S_ST( 'l', 3, 519, 0 ), /* 518 mem */
|
|
- S_ST( 'o', 3, 520, 0 ), /* 519 meml */
|
|
- S_ST( 'c', 3, 350, 0 ), /* 520 memlo */
|
|
- S_ST( 'i', 3, 522, 517 ), /* 521 m */
|
|
- S_ST( 'n', 3, 539, 0 ), /* 522 mi */
|
|
- S_ST( 'c', 3, 524, 0 ), /* 523 min */
|
|
- S_ST( 'l', 3, 525, 0 ), /* 524 minc */
|
|
- S_ST( 'o', 3, 526, 0 ), /* 525 mincl */
|
|
- S_ST( 'c', 3, 351, 0 ), /* 526 minclo */
|
|
- S_ST( 'd', 3, 531, 523 ), /* 527 min */
|
|
- S_ST( 'e', 3, 529, 0 ), /* 528 mind */
|
|
- S_ST( 'p', 3, 530, 0 ), /* 529 minde */
|
|
- S_ST( 't', 3, 352, 0 ), /* 530 mindep */
|
|
- S_ST( 'i', 3, 532, 528 ), /* 531 mind */
|
|
- S_ST( 's', 3, 353, 0 ), /* 532 mindi */
|
|
- S_ST( 'i', 3, 534, 527 ), /* 533 min */
|
|
- S_ST( 'm', 3, 535, 0 ), /* 534 mini */
|
|
- S_ST( 'u', 3, 354, 0 ), /* 535 minim */
|
|
- S_ST( 'p', 3, 537, 533 ), /* 536 min */
|
|
- S_ST( 'o', 3, 538, 0 ), /* 537 minp */
|
|
- S_ST( 'l', 3, 355, 0 ), /* 538 minpo */
|
|
- S_ST( 's', 3, 540, 536 ), /* 539 min */
|
|
- S_ST( 'a', 3, 541, 0 ), /* 540 mins */
|
|
- S_ST( 'n', 3, 356, 0 ), /* 541 minsa */
|
|
- S_ST( 'o', 3, 544, 521 ), /* 542 m */
|
|
- S_ST( 'd', 3, 357, 0 ), /* 543 mo */
|
|
- S_ST( 'n', 3, 548, 543 ), /* 544 mo */
|
|
- S_ST( 'i', 3, 546, 0 ), /* 545 mon */
|
|
- S_ST( 't', 3, 547, 0 ), /* 546 moni */
|
|
- S_ST( 'o', 3, 359, 0 ), /* 547 monit */
|
|
- S_ST( 't', 3, 360, 545 ), /* 548 mon */
|
|
- S_ST( 'r', 3, 361, 542 ), /* 549 m */
|
|
- S_ST( 's', 3, 551, 549 ), /* 550 m */
|
|
- S_ST( 's', 3, 552, 0 ), /* 551 ms */
|
|
- S_ST( 'n', 3, 553, 0 ), /* 552 mss */
|
|
- S_ST( 't', 3, 329, 0 ), /* 553 mssn */
|
|
- S_ST( 'u', 3, 555, 550 ), /* 554 m */
|
|
- S_ST( 'l', 3, 556, 0 ), /* 555 mu */
|
|
- S_ST( 't', 3, 557, 0 ), /* 556 mul */
|
|
- S_ST( 'i', 3, 558, 0 ), /* 557 mult */
|
|
- S_ST( 'c', 3, 559, 0 ), /* 558 multi */
|
|
- S_ST( 'a', 3, 560, 0 ), /* 559 multic */
|
|
- S_ST( 's', 3, 561, 0 ), /* 560 multica */
|
|
- S_ST( 't', 3, 562, 0 ), /* 561 multicas */
|
|
- S_ST( 'c', 3, 563, 0 ), /* 562 multicast */
|
|
- S_ST( 'l', 3, 564, 0 ), /* 563 multicastc */
|
|
- S_ST( 'i', 3, 565, 0 ), /* 564 multicastcl */
|
|
- S_ST( 'e', 3, 566, 0 ), /* 565 multicastcli */
|
|
- S_ST( 'n', 3, 362, 0 ), /* 566 multicastclie */
|
|
- S_ST( 'n', 3, 610, 473 ), /* 567 */
|
|
- S_ST( 'i', 3, 363, 0 ), /* 568 n */
|
|
- S_ST( 'o', 3, 605, 568 ), /* 569 n */
|
|
- S_ST( 'l', 3, 571, 0 ), /* 570 no */
|
|
- S_ST( 'i', 3, 572, 0 ), /* 571 nol */
|
|
- S_ST( 'n', 3, 364, 0 ), /* 572 noli */
|
|
- S_ST( 'm', 3, 578, 570 ), /* 573 no */
|
|
- S_ST( 'o', 3, 575, 0 ), /* 574 nom */
|
|
- S_ST( 'd', 3, 576, 0 ), /* 575 nomo */
|
|
- S_ST( 'i', 3, 577, 0 ), /* 576 nomod */
|
|
- S_ST( 'f', 3, 365, 0 ), /* 577 nomodi */
|
|
- S_ST( 'r', 3, 579, 574 ), /* 578 nom */
|
|
- S_ST( 'u', 3, 580, 0 ), /* 579 nomr */
|
|
- S_ST( 'l', 3, 581, 0 ), /* 580 nomru */
|
|
- S_ST( 'i', 3, 582, 0 ), /* 581 nomrul */
|
|
- S_ST( 's', 3, 366, 0 ), /* 582 nomruli */
|
|
- S_ST( 'n', 3, 584, 573 ), /* 583 no */
|
|
- S_ST( 'v', 3, 585, 367 ), /* 584 non */
|
|
- S_ST( 'o', 3, 586, 0 ), /* 585 nonv */
|
|
- S_ST( 'l', 3, 587, 0 ), /* 586 nonvo */
|
|
- S_ST( 'a', 3, 588, 0 ), /* 587 nonvol */
|
|
- S_ST( 't', 3, 589, 0 ), /* 588 nonvola */
|
|
- S_ST( 'i', 3, 590, 0 ), /* 589 nonvolat */
|
|
- S_ST( 'l', 3, 368, 0 ), /* 590 nonvolati */
|
|
- S_ST( 'p', 3, 592, 583 ), /* 591 no */
|
|
- S_ST( 'e', 3, 593, 0 ), /* 592 nop */
|
|
- S_ST( 'e', 3, 369, 0 ), /* 593 nope */
|
|
- S_ST( 'q', 3, 595, 591 ), /* 594 no */
|
|
- S_ST( 'u', 3, 596, 0 ), /* 595 noq */
|
|
- S_ST( 'e', 3, 597, 0 ), /* 596 noqu */
|
|
- S_ST( 'r', 3, 370, 0 ), /* 597 noque */
|
|
- S_ST( 's', 3, 599, 594 ), /* 598 no */
|
|
- S_ST( 'e', 3, 603, 0 ), /* 599 nos */
|
|
- S_ST( 'l', 3, 601, 0 ), /* 600 nose */
|
|
- S_ST( 'e', 3, 602, 0 ), /* 601 nosel */
|
|
- S_ST( 'c', 3, 371, 0 ), /* 602 nosele */
|
|
- S_ST( 'r', 3, 604, 600 ), /* 603 nose */
|
|
- S_ST( 'v', 3, 372, 0 ), /* 604 noser */
|
|
- S_ST( 't', 3, 606, 598 ), /* 605 no */
|
|
- S_ST( 'r', 3, 608, 0 ), /* 606 not */
|
|
- S_ST( 'a', 3, 373, 0 ), /* 607 notr */
|
|
- S_ST( 'u', 3, 609, 607 ), /* 608 notr */
|
|
- S_ST( 's', 3, 374, 0 ), /* 609 notru */
|
|
- S_ST( 't', 3, 375, 569 ), /* 610 n */
|
|
- S_ST( 'p', 3, 612, 0 ), /* 611 ntp */
|
|
- S_ST( 'o', 3, 613, 0 ), /* 612 ntpp */
|
|
- S_ST( 'r', 3, 376, 0 ), /* 613 ntppo */
|
|
- S_ST( 's', 3, 615, 611 ), /* 614 ntp */
|
|
- S_ST( 'i', 3, 616, 0 ), /* 615 ntps */
|
|
- S_ST( 'g', 3, 617, 0 ), /* 616 ntpsi */
|
|
- S_ST( 'n', 3, 618, 0 ), /* 617 ntpsig */
|
|
- S_ST( 'd', 3, 619, 0 ), /* 618 ntpsign */
|
|
- S_ST( 's', 3, 620, 0 ), /* 619 ntpsignd */
|
|
- S_ST( 'o', 3, 621, 0 ), /* 620 ntpsignds */
|
|
- S_ST( 'c', 3, 622, 0 ), /* 621 ntpsigndso */
|
|
- S_ST( 'k', 3, 623, 0 ), /* 622 ntpsigndsoc */
|
|
- S_ST( 'e', 3, 377, 0 ), /* 623 ntpsigndsock */
|
|
- S_ST( 'o', 3, 625, 567 ), /* 624 */
|
|
- S_ST( 'r', 3, 626, 0 ), /* 625 o */
|
|
- S_ST( 'p', 3, 627, 0 ), /* 626 or */
|
|
- S_ST( 'h', 3, 628, 0 ), /* 627 orp */
|
|
- S_ST( 'a', 3, 378, 0 ), /* 628 orph */
|
|
- S_ST( 'w', 3, 630, 0 ), /* 629 orphan */
|
|
- S_ST( 'a', 3, 631, 0 ), /* 630 orphanw */
|
|
- S_ST( 'i', 3, 379, 0 ), /* 631 orphanwa */
|
|
- S_ST( 'p', 3, 391, 624 ), /* 632 */
|
|
- S_ST( 'a', 3, 634, 0 ), /* 633 p */
|
|
- S_ST( 'n', 3, 635, 0 ), /* 634 pa */
|
|
- S_ST( 'i', 3, 380, 0 ), /* 635 pan */
|
|
- S_ST( 'e', 3, 637, 633 ), /* 636 p */
|
|
- S_ST( 'e', 3, 381, 0 ), /* 637 pe */
|
|
- S_ST( 's', 3, 639, 0 ), /* 638 peer */
|
|
- S_ST( 't', 3, 640, 0 ), /* 639 peers */
|
|
- S_ST( 'a', 3, 641, 0 ), /* 640 peerst */
|
|
- S_ST( 't', 3, 382, 0 ), /* 641 peersta */
|
|
- S_ST( 'h', 3, 643, 636 ), /* 642 p */
|
|
- S_ST( 'o', 3, 644, 0 ), /* 643 ph */
|
|
- S_ST( 'n', 3, 383, 0 ), /* 644 pho */
|
|
- S_ST( 'i', 3, 384, 642 ), /* 645 p */
|
|
- S_ST( 'f', 3, 647, 0 ), /* 646 pid */
|
|
- S_ST( 'i', 3, 648, 0 ), /* 647 pidf */
|
|
- S_ST( 'l', 3, 385, 0 ), /* 648 pidfi */
|
|
- S_ST( 'o', 3, 651, 645 ), /* 649 p */
|
|
- S_ST( 'o', 3, 386, 0 ), /* 650 po */
|
|
- S_ST( 'r', 3, 387, 650 ), /* 651 po */
|
|
- S_ST( 'r', 3, 659, 649 ), /* 652 p */
|
|
- S_ST( 'e', 3, 657, 0 ), /* 653 pr */
|
|
- S_ST( 'e', 3, 655, 0 ), /* 654 pre */
|
|
- S_ST( 'm', 3, 656, 0 ), /* 655 pree */
|
|
- S_ST( 'p', 3, 388, 0 ), /* 656 preem */
|
|
- S_ST( 'f', 3, 658, 654 ), /* 657 pre */
|
|
- S_ST( 'e', 3, 389, 0 ), /* 658 pref */
|
|
- S_ST( 'o', 3, 672, 653 ), /* 659 pr */
|
|
- S_ST( 'c', 3, 661, 0 ), /* 660 pro */
|
|
- S_ST( '_', 3, 662, 0 ), /* 661 proc */
|
|
- S_ST( 'd', 3, 663, 0 ), /* 662 proc_ */
|
|
- S_ST( 'e', 3, 664, 0 ), /* 663 proc_d */
|
|
- S_ST( 'l', 3, 665, 0 ), /* 664 proc_de */
|
|
- S_ST( 'a', 3, 448, 0 ), /* 665 proc_del */
|
|
- S_ST( 'p', 3, 667, 660 ), /* 666 pro */
|
|
- S_ST( '_', 3, 668, 0 ), /* 667 prop */
|
|
- S_ST( 'd', 3, 669, 0 ), /* 668 prop_ */
|
|
- S_ST( 'e', 3, 670, 0 ), /* 669 prop_d */
|
|
- S_ST( 'l', 3, 671, 0 ), /* 670 prop_de */
|
|
- S_ST( 'a', 3, 447, 0 ), /* 671 prop_del */
|
|
- S_ST( 't', 3, 673, 666 ), /* 672 pro */
|
|
- S_ST( 'o', 3, 674, 0 ), /* 673 prot */
|
|
- S_ST( 's', 3, 675, 0 ), /* 674 proto */
|
|
- S_ST( 't', 3, 676, 0 ), /* 675 protos */
|
|
- S_ST( 'a', 3, 677, 0 ), /* 676 protost */
|
|
- S_ST( 't', 3, 390, 0 ), /* 677 protosta */
|
|
- S_ST( 'r', 3, 709, 632 ), /* 678 */
|
|
- S_ST( 'a', 3, 685, 0 ), /* 679 r */
|
|
- S_ST( 'n', 3, 681, 0 ), /* 680 ra */
|
|
- S_ST( 'd', 3, 682, 0 ), /* 681 ran */
|
|
- S_ST( 'f', 3, 683, 0 ), /* 682 rand */
|
|
- S_ST( 'i', 3, 684, 0 ), /* 683 randf */
|
|
- S_ST( 'l', 3, 392, 0 ), /* 684 randfi */
|
|
- S_ST( 'w', 3, 686, 680 ), /* 685 ra */
|
|
- S_ST( 's', 3, 687, 0 ), /* 686 raw */
|
|
- S_ST( 't', 3, 688, 0 ), /* 687 raws */
|
|
- S_ST( 'a', 3, 689, 0 ), /* 688 rawst */
|
|
- S_ST( 't', 3, 393, 0 ), /* 689 rawsta */
|
|
- S_ST( 'e', 3, 706, 679 ), /* 690 r */
|
|
- S_ST( 'f', 3, 692, 0 ), /* 691 re */
|
|
- S_ST( 'i', 3, 394, 0 ), /* 692 ref */
|
|
- S_ST( 'q', 3, 694, 691 ), /* 693 re */
|
|
- S_ST( 'u', 3, 695, 0 ), /* 694 req */
|
|
- S_ST( 'e', 3, 696, 0 ), /* 695 requ */
|
|
- S_ST( 's', 3, 697, 0 ), /* 696 reque */
|
|
- S_ST( 't', 3, 698, 0 ), /* 697 reques */
|
|
- S_ST( 'k', 3, 699, 0 ), /* 698 request */
|
|
- S_ST( 'e', 3, 395, 0 ), /* 699 requestk */
|
|
- S_ST( 's', 3, 702, 693 ), /* 700 re */
|
|
- S_ST( 'e', 3, 396, 0 ), /* 701 res */
|
|
- S_ST( 't', 3, 703, 701 ), /* 702 res */
|
|
- S_ST( 'r', 3, 704, 0 ), /* 703 rest */
|
|
- S_ST( 'i', 3, 705, 0 ), /* 704 restr */
|
|
- S_ST( 'c', 3, 397, 0 ), /* 705 restri */
|
|
- S_ST( 'v', 3, 707, 700 ), /* 706 re */
|
|
- S_ST( 'o', 3, 708, 0 ), /* 707 rev */
|
|
- S_ST( 'k', 3, 398, 0 ), /* 708 revo */
|
|
- S_ST( 'l', 3, 710, 690 ), /* 709 r */
|
|
- S_ST( 'i', 3, 711, 0 ), /* 710 rl */
|
|
- S_ST( 'm', 3, 712, 0 ), /* 711 rli */
|
|
- S_ST( 'i', 3, 399, 0 ), /* 712 rlim */
|
|
- S_ST( 's', 3, 786, 678 ), /* 713 */
|
|
- S_ST( 'a', 3, 715, 0 ), /* 714 s */
|
|
- S_ST( 'v', 3, 716, 0 ), /* 715 sa */
|
|
- S_ST( 'e', 3, 717, 0 ), /* 716 sav */
|
|
- S_ST( 'c', 3, 718, 0 ), /* 717 save */
|
|
- S_ST( 'o', 3, 719, 0 ), /* 718 savec */
|
|
- S_ST( 'n', 3, 720, 0 ), /* 719 saveco */
|
|
- S_ST( 'f', 3, 721, 0 ), /* 720 savecon */
|
|
- S_ST( 'i', 3, 722, 0 ), /* 721 saveconf */
|
|
- S_ST( 'g', 3, 723, 0 ), /* 722 saveconfi */
|
|
- S_ST( 'd', 3, 724, 0 ), /* 723 saveconfig */
|
|
- S_ST( 'i', 3, 400, 0 ), /* 724 saveconfigd */
|
|
- S_ST( 'e', 3, 735, 714 ), /* 725 s */
|
|
- S_ST( 'r', 3, 727, 0 ), /* 726 se */
|
|
- S_ST( 'v', 3, 728, 0 ), /* 727 ser */
|
|
- S_ST( 'e', 3, 401, 0 ), /* 728 serv */
|
|
- S_ST( '_', 3, 730, 0 ), /* 729 server */
|
|
- S_ST( 'o', 3, 731, 0 ), /* 730 server_ */
|
|
- S_ST( 'f', 3, 732, 0 ), /* 731 server_o */
|
|
- S_ST( 'f', 3, 733, 0 ), /* 732 server_of */
|
|
- S_ST( 's', 3, 734, 0 ), /* 733 server_off */
|
|
- S_ST( 'e', 3, 442, 0 ), /* 734 server_offs */
|
|
- S_ST( 't', 3, 736, 726 ), /* 735 se */
|
|
- S_ST( 'v', 3, 737, 0 ), /* 736 set */
|
|
- S_ST( 'a', 3, 402, 0 ), /* 737 setv */
|
|
- S_ST( 'i', 3, 739, 725 ), /* 738 s */
|
|
- S_ST( 'm', 3, 740, 0 ), /* 739 si */
|
|
- S_ST( 'u', 3, 741, 0 ), /* 740 sim */
|
|
- S_ST( 'l', 3, 742, 0 ), /* 741 simu */
|
|
- S_ST( 'a', 3, 743, 0 ), /* 742 simul */
|
|
- S_ST( 't', 3, 744, 0 ), /* 743 simula */
|
|
- S_ST( 'i', 3, 745, 439 ), /* 744 simulat */
|
|
- S_ST( 'o', 3, 746, 0 ), /* 745 simulati */
|
|
- S_ST( 'n', 3, 747, 0 ), /* 746 simulatio */
|
|
- S_ST( '_', 3, 748, 0 ), /* 747 simulation */
|
|
- S_ST( 'd', 3, 749, 0 ), /* 748 simulation_ */
|
|
- S_ST( 'u', 3, 750, 0 ), /* 749 simulation_d */
|
|
- S_ST( 'r', 3, 751, 0 ), /* 750 simulation_du */
|
|
- S_ST( 'a', 3, 752, 0 ), /* 751 simulation_dur */
|
|
- S_ST( 't', 3, 753, 0 ), /* 752 simulation_dura */
|
|
- S_ST( 'i', 3, 754, 0 ), /* 753 simulation_durat */
|
|
- S_ST( 'o', 3, 441, 0 ), /* 754 simulation_durati */
|
|
- S_ST( 'o', 3, 756, 738 ), /* 755 s */
|
|
- S_ST( 'u', 3, 757, 0 ), /* 756 so */
|
|
- S_ST( 'r', 3, 758, 0 ), /* 757 sou */
|
|
- S_ST( 'c', 3, 403, 0 ), /* 758 sour */
|
|
- S_ST( 't', 3, 782, 755 ), /* 759 s */
|
|
- S_ST( 'a', 3, 766, 0 ), /* 760 st */
|
|
- S_ST( 'c', 3, 762, 0 ), /* 761 sta */
|
|
- S_ST( 'k', 3, 763, 0 ), /* 762 stac */
|
|
- S_ST( 's', 3, 764, 0 ), /* 763 stack */
|
|
- S_ST( 'i', 3, 765, 0 ), /* 764 stacks */
|
|
- S_ST( 'z', 3, 404, 0 ), /* 765 stacksi */
|
|
- S_ST( 't', 3, 406, 761 ), /* 766 sta */
|
|
- S_ST( 'i', 3, 768, 0 ), /* 767 stat */
|
|
- S_ST( 's', 3, 769, 0 ), /* 768 stati */
|
|
- S_ST( 't', 3, 770, 0 ), /* 769 statis */
|
|
- S_ST( 'i', 3, 771, 0 ), /* 770 statist */
|
|
- S_ST( 'c', 3, 405, 0 ), /* 771 statisti */
|
|
- S_ST( 'd', 3, 773, 0 ), /* 772 stats */
|
|
- S_ST( 'i', 3, 407, 0 ), /* 773 statsd */
|
|
- S_ST( 'e', 3, 408, 760 ), /* 774 st */
|
|
- S_ST( 'b', 3, 776, 0 ), /* 775 step */
|
|
- S_ST( 'a', 3, 777, 0 ), /* 776 stepb */
|
|
- S_ST( 'c', 3, 409, 0 ), /* 777 stepba */
|
|
- S_ST( 'f', 3, 779, 775 ), /* 778 step */
|
|
- S_ST( 'w', 3, 410, 0 ), /* 779 stepf */
|
|
- S_ST( 'o', 3, 781, 778 ), /* 780 step */
|
|
- S_ST( 'u', 3, 411, 0 ), /* 781 stepo */
|
|
- S_ST( 'r', 3, 783, 774 ), /* 782 st */
|
|
- S_ST( 'a', 3, 784, 0 ), /* 783 str */
|
|
- S_ST( 't', 3, 785, 0 ), /* 784 stra */
|
|
- S_ST( 'u', 3, 412, 0 ), /* 785 strat */
|
|
- S_ST( 'y', 3, 414, 759 ), /* 786 s */
|
|
- S_ST( 's', 3, 788, 0 ), /* 787 sys */
|
|
- S_ST( 't', 3, 789, 0 ), /* 788 syss */
|
|
- S_ST( 'a', 3, 790, 0 ), /* 789 sysst */
|
|
- S_ST( 't', 3, 415, 0 ), /* 790 syssta */
|
|
- S_ST( 't', 3, 817, 713 ), /* 791 */
|
|
- S_ST( 'i', 3, 803, 0 ), /* 792 t */
|
|
- S_ST( 'c', 3, 416, 0 ), /* 793 ti */
|
|
- S_ST( 'm', 3, 796, 793 ), /* 794 ti */
|
|
- S_ST( 'e', 3, 419, 0 ), /* 795 tim */
|
|
- S_ST( 'i', 3, 797, 795 ), /* 796 tim */
|
|
- S_ST( 'n', 3, 798, 0 ), /* 797 timi */
|
|
- S_ST( 'g', 3, 799, 0 ), /* 798 timin */
|
|
- S_ST( 's', 3, 800, 0 ), /* 799 timing */
|
|
- S_ST( 't', 3, 801, 0 ), /* 800 timings */
|
|
- S_ST( 'a', 3, 802, 0 ), /* 801 timingst */
|
|
- S_ST( 't', 3, 420, 0 ), /* 802 timingsta */
|
|
- S_ST( 'n', 3, 804, 794 ), /* 803 ti */
|
|
- S_ST( 'k', 3, 805, 0 ), /* 804 tin */
|
|
- S_ST( 'e', 3, 421, 0 ), /* 805 tink */
|
|
- S_ST( 'o', 3, 422, 792 ), /* 806 t */
|
|
- S_ST( 'r', 3, 809, 806 ), /* 807 t */
|
|
- S_ST( 'a', 3, 423, 0 ), /* 808 tr */
|
|
- S_ST( 'u', 3, 810, 808 ), /* 809 tr */
|
|
- S_ST( 's', 3, 811, 424 ), /* 810 tru */
|
|
- S_ST( 't', 3, 812, 0 ), /* 811 trus */
|
|
- S_ST( 'e', 3, 813, 0 ), /* 812 trust */
|
|
- S_ST( 'd', 3, 814, 0 ), /* 813 truste */
|
|
- S_ST( 'k', 3, 815, 0 ), /* 814 trusted */
|
|
- S_ST( 'e', 3, 425, 0 ), /* 815 trustedk */
|
|
- S_ST( 't', 3, 426, 807 ), /* 816 t */
|
|
- S_ST( 'y', 3, 818, 816 ), /* 817 t */
|
|
- S_ST( 'p', 3, 427, 0 ), /* 818 ty */
|
|
- S_ST( 'u', 3, 820, 791 ), /* 819 */
|
|
- S_ST( 'n', 3, 826, 0 ), /* 820 u */
|
|
- S_ST( 'c', 3, 822, 0 ), /* 821 un */
|
|
- S_ST( 'o', 3, 823, 0 ), /* 822 unc */
|
|
- S_ST( 'n', 3, 824, 0 ), /* 823 unco */
|
|
- S_ST( 'f', 3, 825, 0 ), /* 824 uncon */
|
|
- S_ST( 'i', 3, 429, 0 ), /* 825 unconf */
|
|
- S_ST( 'p', 3, 827, 821 ), /* 826 un */
|
|
- S_ST( 'e', 3, 828, 0 ), /* 827 unp */
|
|
- S_ST( 'e', 3, 430, 0 ), /* 828 unpe */
|
|
- S_ST( 'v', 3, 830, 819 ), /* 829 */
|
|
- S_ST( 'e', 3, 831, 0 ), /* 830 v */
|
|
- S_ST( 'r', 3, 832, 0 ), /* 831 ve */
|
|
- S_ST( 's', 3, 833, 0 ), /* 832 ver */
|
|
- S_ST( 'i', 3, 834, 0 ), /* 833 vers */
|
|
- S_ST( 'o', 3, 431, 0 ), /* 834 versi */
|
|
- S_ST( 'w', 3, 842, 829 ), /* 835 */
|
|
- S_ST( 'a', 3, 837, 0 ), /* 836 w */
|
|
- S_ST( 'n', 3, 838, 0 ), /* 837 wa */
|
|
- S_ST( 'd', 3, 839, 0 ), /* 838 wan */
|
|
- S_ST( 'e', 3, 445, 0 ), /* 839 wand */
|
|
- S_ST( 'e', 3, 841, 836 ), /* 840 w */
|
|
- S_ST( 'e', 3, 433, 0 ), /* 841 we */
|
|
- S_ST( 'i', 3, 843, 840 ), /* 842 w */
|
|
- S_ST( 'l', 3, 844, 0 ), /* 843 wi */
|
|
- S_ST( 'd', 3, 845, 0 ), /* 844 wil */
|
|
- S_ST( 'c', 3, 846, 0 ), /* 845 wild */
|
|
- S_ST( 'a', 3, 847, 0 ), /* 846 wildc */
|
|
- S_ST( 'r', 3, 434, 0 ), /* 847 wildca */
|
|
- S_ST( 'x', 3, 849, 835 ), /* 848 */
|
|
- S_ST( 'l', 3, 850, 0 ), /* 849 x */
|
|
- S_ST( 'e', 3, 851, 0 ), /* 850 xl */
|
|
- S_ST( 'a', 3, 852, 0 ), /* 851 xle */
|
|
- S_ST( 'v', 3, 435, 0 ), /* 852 xlea */
|
|
- S_ST( 'y', 3, 854, 848 ), /* 853 [initial state] */
|
|
- S_ST( 'e', 3, 855, 0 ), /* 854 y */
|
|
- S_ST( 'a', 3, 436, 0 ) /* 855 ye */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 429 T_UEcrypto */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 430 T_UEcryptonak */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 431 T_UEdigest */
|
|
+ S_ST( 'g', 1, 0, 0 ), /* 432 T_Unconfig */
|
|
+ S_ST( 'r', 1, 832, 0 ), /* 433 T_Unpeer */
|
|
+ S_ST( 'n', 0, 0, 0 ), /* 434 T_Version */
|
|
+ S_ST( 's', 3, 440, 428 ), /* 435 li */
|
|
+ S_ST( 'k', 0, 0, 0 ), /* 436 T_Week */
|
|
+ S_ST( 'd', 0, 0, 0 ), /* 437 T_Wildcard */
|
|
+ S_ST( 'e', 0, 0, 0 ), /* 438 T_Xleave */
|
|
+ S_ST( 'r', 0, 0, 0 ), /* 439 T_Year */
|
|
+ S_ST( 't', 3, 441, 0 ), /* 440 lis */
|
|
+ S_ST( 'e', 3, 334, 0 ), /* 441 list */
|
|
+ S_ST( 'e', 0, 0, 0 ), /* 442 T_Simulate */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 443 T_Beep_Delay */
|
|
+ S_ST( 'n', 0, 0, 0 ), /* 444 T_Sim_Duration */
|
|
+ S_ST( 't', 0, 0, 0 ), /* 445 T_Server_Offset */
|
|
+ S_ST( 'n', 0, 0, 0 ), /* 446 T_Duration */
|
|
+ S_ST( 't', 0, 0, 0 ), /* 447 T_Freq_Offset */
|
|
+ S_ST( 'r', 0, 0, 0 ), /* 448 T_Wander */
|
|
+ S_ST( 'r', 0, 0, 0 ), /* 449 T_Jitter */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 450 T_Prop_Delay */
|
|
+ S_ST( 'y', 0, 0, 0 ), /* 451 T_Proc_Delay */
|
|
+ S_ST( 'o', 3, 468, 287 ), /* 452 l */
|
|
+ S_ST( 'g', 3, 459, 0 ), /* 453 lo */
|
|
+ S_ST( 'c', 3, 455, 0 ), /* 454 log */
|
|
+ S_ST( 'o', 3, 456, 0 ), /* 455 logc */
|
|
+ S_ST( 'n', 3, 457, 0 ), /* 456 logco */
|
|
+ S_ST( 'f', 3, 458, 0 ), /* 457 logcon */
|
|
+ S_ST( 'i', 3, 335, 0 ), /* 458 logconf */
|
|
+ S_ST( 'f', 3, 460, 454 ), /* 459 log */
|
|
+ S_ST( 'i', 3, 461, 0 ), /* 460 logf */
|
|
+ S_ST( 'l', 3, 336, 0 ), /* 461 logfi */
|
|
+ S_ST( 'o', 3, 463, 453 ), /* 462 lo */
|
|
+ S_ST( 'p', 3, 464, 0 ), /* 463 loo */
|
|
+ S_ST( 's', 3, 465, 0 ), /* 464 loop */
|
|
+ S_ST( 't', 3, 466, 0 ), /* 465 loops */
|
|
+ S_ST( 'a', 3, 467, 0 ), /* 466 loopst */
|
|
+ S_ST( 't', 3, 337, 0 ), /* 467 loopsta */
|
|
+ S_ST( 'w', 3, 469, 462 ), /* 468 lo */
|
|
+ S_ST( 'p', 3, 470, 0 ), /* 469 low */
|
|
+ S_ST( 'r', 3, 471, 0 ), /* 470 lowp */
|
|
+ S_ST( 'i', 3, 472, 0 ), /* 471 lowpr */
|
|
+ S_ST( 'o', 3, 473, 0 ), /* 472 lowpri */
|
|
+ S_ST( 't', 3, 474, 0 ), /* 473 lowprio */
|
|
+ S_ST( 'r', 3, 475, 0 ), /* 474 lowpriot */
|
|
+ S_ST( 'a', 3, 338, 0 ), /* 475 lowpriotr */
|
|
+ S_ST( 'm', 3, 557, 239 ), /* 476 */
|
|
+ S_ST( 'a', 3, 495, 0 ), /* 477 m */
|
|
+ S_ST( 'n', 3, 479, 0 ), /* 478 ma */
|
|
+ S_ST( 'y', 3, 480, 0 ), /* 479 man */
|
|
+ S_ST( 'c', 3, 481, 0 ), /* 480 many */
|
|
+ S_ST( 'a', 3, 482, 0 ), /* 481 manyc */
|
|
+ S_ST( 's', 3, 483, 0 ), /* 482 manyca */
|
|
+ S_ST( 't', 3, 489, 0 ), /* 483 manycas */
|
|
+ S_ST( 'c', 3, 485, 0 ), /* 484 manycast */
|
|
+ S_ST( 'l', 3, 486, 0 ), /* 485 manycastc */
|
|
+ S_ST( 'i', 3, 487, 0 ), /* 486 manycastcl */
|
|
+ S_ST( 'e', 3, 488, 0 ), /* 487 manycastcli */
|
|
+ S_ST( 'n', 3, 339, 0 ), /* 488 manycastclie */
|
|
+ S_ST( 's', 3, 490, 484 ), /* 489 manycast */
|
|
+ S_ST( 'e', 3, 491, 0 ), /* 490 manycasts */
|
|
+ S_ST( 'r', 3, 492, 0 ), /* 491 manycastse */
|
|
+ S_ST( 'v', 3, 493, 0 ), /* 492 manycastser */
|
|
+ S_ST( 'e', 3, 340, 0 ), /* 493 manycastserv */
|
|
+ S_ST( 's', 3, 341, 478 ), /* 494 ma */
|
|
+ S_ST( 'x', 3, 510, 494 ), /* 495 ma */
|
|
+ S_ST( 'a', 3, 497, 0 ), /* 496 max */
|
|
+ S_ST( 'g', 3, 342, 0 ), /* 497 maxa */
|
|
+ S_ST( 'c', 3, 499, 496 ), /* 498 max */
|
|
+ S_ST( 'l', 3, 500, 0 ), /* 499 maxc */
|
|
+ S_ST( 'o', 3, 501, 0 ), /* 500 maxcl */
|
|
+ S_ST( 'c', 3, 343, 0 ), /* 501 maxclo */
|
|
+ S_ST( 'd', 3, 506, 498 ), /* 502 max */
|
|
+ S_ST( 'e', 3, 504, 0 ), /* 503 maxd */
|
|
+ S_ST( 'p', 3, 505, 0 ), /* 504 maxde */
|
|
+ S_ST( 't', 3, 344, 0 ), /* 505 maxdep */
|
|
+ S_ST( 'i', 3, 507, 503 ), /* 506 maxd */
|
|
+ S_ST( 's', 3, 345, 0 ), /* 507 maxdi */
|
|
+ S_ST( 'm', 3, 509, 502 ), /* 508 max */
|
|
+ S_ST( 'e', 3, 346, 0 ), /* 509 maxm */
|
|
+ S_ST( 'p', 3, 511, 508 ), /* 510 max */
|
|
+ S_ST( 'o', 3, 512, 0 ), /* 511 maxp */
|
|
+ S_ST( 'l', 3, 347, 0 ), /* 512 maxpo */
|
|
+ S_ST( 'd', 3, 514, 477 ), /* 513 m */
|
|
+ S_ST( 'n', 3, 515, 0 ), /* 514 md */
|
|
+ S_ST( 's', 3, 516, 0 ), /* 515 mdn */
|
|
+ S_ST( 't', 3, 517, 0 ), /* 516 mdns */
|
|
+ S_ST( 'r', 3, 518, 0 ), /* 517 mdnst */
|
|
+ S_ST( 'i', 3, 519, 0 ), /* 518 mdnstr */
|
|
+ S_ST( 'e', 3, 348, 0 ), /* 519 mdnstri */
|
|
+ S_ST( 'e', 3, 349, 513 ), /* 520 m */
|
|
+ S_ST( 'l', 3, 522, 0 ), /* 521 mem */
|
|
+ S_ST( 'o', 3, 523, 0 ), /* 522 meml */
|
|
+ S_ST( 'c', 3, 350, 0 ), /* 523 memlo */
|
|
+ S_ST( 'i', 3, 525, 520 ), /* 524 m */
|
|
+ S_ST( 'n', 3, 542, 0 ), /* 525 mi */
|
|
+ S_ST( 'c', 3, 527, 0 ), /* 526 min */
|
|
+ S_ST( 'l', 3, 528, 0 ), /* 527 minc */
|
|
+ S_ST( 'o', 3, 529, 0 ), /* 528 mincl */
|
|
+ S_ST( 'c', 3, 351, 0 ), /* 529 minclo */
|
|
+ S_ST( 'd', 3, 534, 526 ), /* 530 min */
|
|
+ S_ST( 'e', 3, 532, 0 ), /* 531 mind */
|
|
+ S_ST( 'p', 3, 533, 0 ), /* 532 minde */
|
|
+ S_ST( 't', 3, 352, 0 ), /* 533 mindep */
|
|
+ S_ST( 'i', 3, 535, 531 ), /* 534 mind */
|
|
+ S_ST( 's', 3, 353, 0 ), /* 535 mindi */
|
|
+ S_ST( 'i', 3, 537, 530 ), /* 536 min */
|
|
+ S_ST( 'm', 3, 538, 0 ), /* 537 mini */
|
|
+ S_ST( 'u', 3, 354, 0 ), /* 538 minim */
|
|
+ S_ST( 'p', 3, 540, 536 ), /* 539 min */
|
|
+ S_ST( 'o', 3, 541, 0 ), /* 540 minp */
|
|
+ S_ST( 'l', 3, 355, 0 ), /* 541 minpo */
|
|
+ S_ST( 's', 3, 543, 539 ), /* 542 min */
|
|
+ S_ST( 'a', 3, 544, 0 ), /* 543 mins */
|
|
+ S_ST( 'n', 3, 356, 0 ), /* 544 minsa */
|
|
+ S_ST( 'o', 3, 547, 524 ), /* 545 m */
|
|
+ S_ST( 'd', 3, 357, 0 ), /* 546 mo */
|
|
+ S_ST( 'n', 3, 551, 546 ), /* 547 mo */
|
|
+ S_ST( 'i', 3, 549, 0 ), /* 548 mon */
|
|
+ S_ST( 't', 3, 550, 0 ), /* 549 moni */
|
|
+ S_ST( 'o', 3, 359, 0 ), /* 550 monit */
|
|
+ S_ST( 't', 3, 360, 548 ), /* 551 mon */
|
|
+ S_ST( 'r', 3, 361, 545 ), /* 552 m */
|
|
+ S_ST( 's', 3, 554, 552 ), /* 553 m */
|
|
+ S_ST( 's', 3, 555, 0 ), /* 554 ms */
|
|
+ S_ST( 'n', 3, 556, 0 ), /* 555 mss */
|
|
+ S_ST( 't', 3, 329, 0 ), /* 556 mssn */
|
|
+ S_ST( 'u', 3, 558, 553 ), /* 557 m */
|
|
+ S_ST( 'l', 3, 559, 0 ), /* 558 mu */
|
|
+ S_ST( 't', 3, 560, 0 ), /* 559 mul */
|
|
+ S_ST( 'i', 3, 561, 0 ), /* 560 mult */
|
|
+ S_ST( 'c', 3, 562, 0 ), /* 561 multi */
|
|
+ S_ST( 'a', 3, 563, 0 ), /* 562 multic */
|
|
+ S_ST( 's', 3, 564, 0 ), /* 563 multica */
|
|
+ S_ST( 't', 3, 565, 0 ), /* 564 multicas */
|
|
+ S_ST( 'c', 3, 566, 0 ), /* 565 multicast */
|
|
+ S_ST( 'l', 3, 567, 0 ), /* 566 multicastc */
|
|
+ S_ST( 'i', 3, 568, 0 ), /* 567 multicastcl */
|
|
+ S_ST( 'e', 3, 569, 0 ), /* 568 multicastcli */
|
|
+ S_ST( 'n', 3, 362, 0 ), /* 569 multicastclie */
|
|
+ S_ST( 'n', 3, 613, 476 ), /* 570 */
|
|
+ S_ST( 'i', 3, 363, 0 ), /* 571 n */
|
|
+ S_ST( 'o', 3, 608, 571 ), /* 572 n */
|
|
+ S_ST( 'l', 3, 574, 0 ), /* 573 no */
|
|
+ S_ST( 'i', 3, 575, 0 ), /* 574 nol */
|
|
+ S_ST( 'n', 3, 364, 0 ), /* 575 noli */
|
|
+ S_ST( 'm', 3, 581, 573 ), /* 576 no */
|
|
+ S_ST( 'o', 3, 578, 0 ), /* 577 nom */
|
|
+ S_ST( 'd', 3, 579, 0 ), /* 578 nomo */
|
|
+ S_ST( 'i', 3, 580, 0 ), /* 579 nomod */
|
|
+ S_ST( 'f', 3, 365, 0 ), /* 580 nomodi */
|
|
+ S_ST( 'r', 3, 582, 577 ), /* 581 nom */
|
|
+ S_ST( 'u', 3, 583, 0 ), /* 582 nomr */
|
|
+ S_ST( 'l', 3, 584, 0 ), /* 583 nomru */
|
|
+ S_ST( 'i', 3, 585, 0 ), /* 584 nomrul */
|
|
+ S_ST( 's', 3, 366, 0 ), /* 585 nomruli */
|
|
+ S_ST( 'n', 3, 587, 576 ), /* 586 no */
|
|
+ S_ST( 'v', 3, 588, 367 ), /* 587 non */
|
|
+ S_ST( 'o', 3, 589, 0 ), /* 588 nonv */
|
|
+ S_ST( 'l', 3, 590, 0 ), /* 589 nonvo */
|
|
+ S_ST( 'a', 3, 591, 0 ), /* 590 nonvol */
|
|
+ S_ST( 't', 3, 592, 0 ), /* 591 nonvola */
|
|
+ S_ST( 'i', 3, 593, 0 ), /* 592 nonvolat */
|
|
+ S_ST( 'l', 3, 368, 0 ), /* 593 nonvolati */
|
|
+ S_ST( 'p', 3, 595, 586 ), /* 594 no */
|
|
+ S_ST( 'e', 3, 596, 0 ), /* 595 nop */
|
|
+ S_ST( 'e', 3, 369, 0 ), /* 596 nope */
|
|
+ S_ST( 'q', 3, 598, 594 ), /* 597 no */
|
|
+ S_ST( 'u', 3, 599, 0 ), /* 598 noq */
|
|
+ S_ST( 'e', 3, 600, 0 ), /* 599 noqu */
|
|
+ S_ST( 'r', 3, 370, 0 ), /* 600 noque */
|
|
+ S_ST( 's', 3, 602, 597 ), /* 601 no */
|
|
+ S_ST( 'e', 3, 606, 0 ), /* 602 nos */
|
|
+ S_ST( 'l', 3, 604, 0 ), /* 603 nose */
|
|
+ S_ST( 'e', 3, 605, 0 ), /* 604 nosel */
|
|
+ S_ST( 'c', 3, 371, 0 ), /* 605 nosele */
|
|
+ S_ST( 'r', 3, 607, 603 ), /* 606 nose */
|
|
+ S_ST( 'v', 3, 372, 0 ), /* 607 noser */
|
|
+ S_ST( 't', 3, 609, 601 ), /* 608 no */
|
|
+ S_ST( 'r', 3, 611, 0 ), /* 609 not */
|
|
+ S_ST( 'a', 3, 373, 0 ), /* 610 notr */
|
|
+ S_ST( 'u', 3, 612, 610 ), /* 611 notr */
|
|
+ S_ST( 's', 3, 374, 0 ), /* 612 notru */
|
|
+ S_ST( 't', 3, 375, 572 ), /* 613 n */
|
|
+ S_ST( 'p', 3, 615, 0 ), /* 614 ntp */
|
|
+ S_ST( 'o', 3, 616, 0 ), /* 615 ntpp */
|
|
+ S_ST( 'r', 3, 376, 0 ), /* 616 ntppo */
|
|
+ S_ST( 's', 3, 618, 614 ), /* 617 ntp */
|
|
+ S_ST( 'i', 3, 619, 0 ), /* 618 ntps */
|
|
+ S_ST( 'g', 3, 620, 0 ), /* 619 ntpsi */
|
|
+ S_ST( 'n', 3, 621, 0 ), /* 620 ntpsig */
|
|
+ S_ST( 'd', 3, 622, 0 ), /* 621 ntpsign */
|
|
+ S_ST( 's', 3, 623, 0 ), /* 622 ntpsignd */
|
|
+ S_ST( 'o', 3, 624, 0 ), /* 623 ntpsignds */
|
|
+ S_ST( 'c', 3, 625, 0 ), /* 624 ntpsigndso */
|
|
+ S_ST( 'k', 3, 626, 0 ), /* 625 ntpsigndsoc */
|
|
+ S_ST( 'e', 3, 377, 0 ), /* 626 ntpsigndsock */
|
|
+ S_ST( 'o', 3, 628, 570 ), /* 627 */
|
|
+ S_ST( 'r', 3, 629, 0 ), /* 628 o */
|
|
+ S_ST( 'p', 3, 630, 0 ), /* 629 or */
|
|
+ S_ST( 'h', 3, 631, 0 ), /* 630 orp */
|
|
+ S_ST( 'a', 3, 378, 0 ), /* 631 orph */
|
|
+ S_ST( 'w', 3, 633, 0 ), /* 632 orphan */
|
|
+ S_ST( 'a', 3, 634, 0 ), /* 633 orphanw */
|
|
+ S_ST( 'i', 3, 379, 0 ), /* 634 orphanwa */
|
|
+ S_ST( 'p', 3, 391, 627 ), /* 635 */
|
|
+ S_ST( 'a', 3, 637, 0 ), /* 636 p */
|
|
+ S_ST( 'n', 3, 638, 0 ), /* 637 pa */
|
|
+ S_ST( 'i', 3, 380, 0 ), /* 638 pan */
|
|
+ S_ST( 'e', 3, 640, 636 ), /* 639 p */
|
|
+ S_ST( 'e', 3, 381, 0 ), /* 640 pe */
|
|
+ S_ST( 's', 3, 642, 0 ), /* 641 peer */
|
|
+ S_ST( 't', 3, 643, 0 ), /* 642 peers */
|
|
+ S_ST( 'a', 3, 644, 0 ), /* 643 peerst */
|
|
+ S_ST( 't', 3, 382, 0 ), /* 644 peersta */
|
|
+ S_ST( 'h', 3, 646, 639 ), /* 645 p */
|
|
+ S_ST( 'o', 3, 647, 0 ), /* 646 ph */
|
|
+ S_ST( 'n', 3, 383, 0 ), /* 647 pho */
|
|
+ S_ST( 'i', 3, 384, 645 ), /* 648 p */
|
|
+ S_ST( 'f', 3, 650, 0 ), /* 649 pid */
|
|
+ S_ST( 'i', 3, 651, 0 ), /* 650 pidf */
|
|
+ S_ST( 'l', 3, 385, 0 ), /* 651 pidfi */
|
|
+ S_ST( 'o', 3, 654, 648 ), /* 652 p */
|
|
+ S_ST( 'o', 3, 386, 0 ), /* 653 po */
|
|
+ S_ST( 'r', 3, 387, 653 ), /* 654 po */
|
|
+ S_ST( 'r', 3, 662, 652 ), /* 655 p */
|
|
+ S_ST( 'e', 3, 660, 0 ), /* 656 pr */
|
|
+ S_ST( 'e', 3, 658, 0 ), /* 657 pre */
|
|
+ S_ST( 'm', 3, 659, 0 ), /* 658 pree */
|
|
+ S_ST( 'p', 3, 388, 0 ), /* 659 preem */
|
|
+ S_ST( 'f', 3, 661, 657 ), /* 660 pre */
|
|
+ S_ST( 'e', 3, 389, 0 ), /* 661 pref */
|
|
+ S_ST( 'o', 3, 675, 656 ), /* 662 pr */
|
|
+ S_ST( 'c', 3, 664, 0 ), /* 663 pro */
|
|
+ S_ST( '_', 3, 665, 0 ), /* 664 proc */
|
|
+ S_ST( 'd', 3, 666, 0 ), /* 665 proc_ */
|
|
+ S_ST( 'e', 3, 667, 0 ), /* 666 proc_d */
|
|
+ S_ST( 'l', 3, 668, 0 ), /* 667 proc_de */
|
|
+ S_ST( 'a', 3, 451, 0 ), /* 668 proc_del */
|
|
+ S_ST( 'p', 3, 670, 663 ), /* 669 pro */
|
|
+ S_ST( '_', 3, 671, 0 ), /* 670 prop */
|
|
+ S_ST( 'd', 3, 672, 0 ), /* 671 prop_ */
|
|
+ S_ST( 'e', 3, 673, 0 ), /* 672 prop_d */
|
|
+ S_ST( 'l', 3, 674, 0 ), /* 673 prop_de */
|
|
+ S_ST( 'a', 3, 450, 0 ), /* 674 prop_del */
|
|
+ S_ST( 't', 3, 676, 669 ), /* 675 pro */
|
|
+ S_ST( 'o', 3, 677, 0 ), /* 676 prot */
|
|
+ S_ST( 's', 3, 678, 0 ), /* 677 proto */
|
|
+ S_ST( 't', 3, 679, 0 ), /* 678 protos */
|
|
+ S_ST( 'a', 3, 680, 0 ), /* 679 protost */
|
|
+ S_ST( 't', 3, 390, 0 ), /* 680 protosta */
|
|
+ S_ST( 'r', 3, 712, 635 ), /* 681 */
|
|
+ S_ST( 'a', 3, 688, 0 ), /* 682 r */
|
|
+ S_ST( 'n', 3, 684, 0 ), /* 683 ra */
|
|
+ S_ST( 'd', 3, 685, 0 ), /* 684 ran */
|
|
+ S_ST( 'f', 3, 686, 0 ), /* 685 rand */
|
|
+ S_ST( 'i', 3, 687, 0 ), /* 686 randf */
|
|
+ S_ST( 'l', 3, 392, 0 ), /* 687 randfi */
|
|
+ S_ST( 'w', 3, 689, 683 ), /* 688 ra */
|
|
+ S_ST( 's', 3, 690, 0 ), /* 689 raw */
|
|
+ S_ST( 't', 3, 691, 0 ), /* 690 raws */
|
|
+ S_ST( 'a', 3, 692, 0 ), /* 691 rawst */
|
|
+ S_ST( 't', 3, 393, 0 ), /* 692 rawsta */
|
|
+ S_ST( 'e', 3, 709, 682 ), /* 693 r */
|
|
+ S_ST( 'f', 3, 695, 0 ), /* 694 re */
|
|
+ S_ST( 'i', 3, 394, 0 ), /* 695 ref */
|
|
+ S_ST( 'q', 3, 697, 694 ), /* 696 re */
|
|
+ S_ST( 'u', 3, 698, 0 ), /* 697 req */
|
|
+ S_ST( 'e', 3, 699, 0 ), /* 698 requ */
|
|
+ S_ST( 's', 3, 700, 0 ), /* 699 reque */
|
|
+ S_ST( 't', 3, 701, 0 ), /* 700 reques */
|
|
+ S_ST( 'k', 3, 702, 0 ), /* 701 request */
|
|
+ S_ST( 'e', 3, 395, 0 ), /* 702 requestk */
|
|
+ S_ST( 's', 3, 705, 696 ), /* 703 re */
|
|
+ S_ST( 'e', 3, 396, 0 ), /* 704 res */
|
|
+ S_ST( 't', 3, 706, 704 ), /* 705 res */
|
|
+ S_ST( 'r', 3, 707, 0 ), /* 706 rest */
|
|
+ S_ST( 'i', 3, 708, 0 ), /* 707 restr */
|
|
+ S_ST( 'c', 3, 397, 0 ), /* 708 restri */
|
|
+ S_ST( 'v', 3, 710, 703 ), /* 709 re */
|
|
+ S_ST( 'o', 3, 711, 0 ), /* 710 rev */
|
|
+ S_ST( 'k', 3, 398, 0 ), /* 711 revo */
|
|
+ S_ST( 'l', 3, 713, 693 ), /* 712 r */
|
|
+ S_ST( 'i', 3, 714, 0 ), /* 713 rl */
|
|
+ S_ST( 'm', 3, 715, 0 ), /* 714 rli */
|
|
+ S_ST( 'i', 3, 399, 0 ), /* 715 rlim */
|
|
+ S_ST( 's', 3, 789, 681 ), /* 716 */
|
|
+ S_ST( 'a', 3, 718, 0 ), /* 717 s */
|
|
+ S_ST( 'v', 3, 719, 0 ), /* 718 sa */
|
|
+ S_ST( 'e', 3, 720, 0 ), /* 719 sav */
|
|
+ S_ST( 'c', 3, 721, 0 ), /* 720 save */
|
|
+ S_ST( 'o', 3, 722, 0 ), /* 721 savec */
|
|
+ S_ST( 'n', 3, 723, 0 ), /* 722 saveco */
|
|
+ S_ST( 'f', 3, 724, 0 ), /* 723 savecon */
|
|
+ S_ST( 'i', 3, 725, 0 ), /* 724 saveconf */
|
|
+ S_ST( 'g', 3, 726, 0 ), /* 725 saveconfi */
|
|
+ S_ST( 'd', 3, 727, 0 ), /* 726 saveconfig */
|
|
+ S_ST( 'i', 3, 400, 0 ), /* 727 saveconfigd */
|
|
+ S_ST( 'e', 3, 738, 717 ), /* 728 s */
|
|
+ S_ST( 'r', 3, 730, 0 ), /* 729 se */
|
|
+ S_ST( 'v', 3, 731, 0 ), /* 730 ser */
|
|
+ S_ST( 'e', 3, 401, 0 ), /* 731 serv */
|
|
+ S_ST( '_', 3, 733, 0 ), /* 732 server */
|
|
+ S_ST( 'o', 3, 734, 0 ), /* 733 server_ */
|
|
+ S_ST( 'f', 3, 735, 0 ), /* 734 server_o */
|
|
+ S_ST( 'f', 3, 736, 0 ), /* 735 server_of */
|
|
+ S_ST( 's', 3, 737, 0 ), /* 736 server_off */
|
|
+ S_ST( 'e', 3, 445, 0 ), /* 737 server_offs */
|
|
+ S_ST( 't', 3, 739, 729 ), /* 738 se */
|
|
+ S_ST( 'v', 3, 740, 0 ), /* 739 set */
|
|
+ S_ST( 'a', 3, 402, 0 ), /* 740 setv */
|
|
+ S_ST( 'i', 3, 742, 728 ), /* 741 s */
|
|
+ S_ST( 'm', 3, 743, 0 ), /* 742 si */
|
|
+ S_ST( 'u', 3, 744, 0 ), /* 743 sim */
|
|
+ S_ST( 'l', 3, 745, 0 ), /* 744 simu */
|
|
+ S_ST( 'a', 3, 746, 0 ), /* 745 simul */
|
|
+ S_ST( 't', 3, 747, 0 ), /* 746 simula */
|
|
+ S_ST( 'i', 3, 748, 442 ), /* 747 simulat */
|
|
+ S_ST( 'o', 3, 749, 0 ), /* 748 simulati */
|
|
+ S_ST( 'n', 3, 750, 0 ), /* 749 simulatio */
|
|
+ S_ST( '_', 3, 751, 0 ), /* 750 simulation */
|
|
+ S_ST( 'd', 3, 752, 0 ), /* 751 simulation_ */
|
|
+ S_ST( 'u', 3, 753, 0 ), /* 752 simulation_d */
|
|
+ S_ST( 'r', 3, 754, 0 ), /* 753 simulation_du */
|
|
+ S_ST( 'a', 3, 755, 0 ), /* 754 simulation_dur */
|
|
+ S_ST( 't', 3, 756, 0 ), /* 755 simulation_dura */
|
|
+ S_ST( 'i', 3, 757, 0 ), /* 756 simulation_durat */
|
|
+ S_ST( 'o', 3, 444, 0 ), /* 757 simulation_durati */
|
|
+ S_ST( 'o', 3, 759, 741 ), /* 758 s */
|
|
+ S_ST( 'u', 3, 760, 0 ), /* 759 so */
|
|
+ S_ST( 'r', 3, 761, 0 ), /* 760 sou */
|
|
+ S_ST( 'c', 3, 403, 0 ), /* 761 sour */
|
|
+ S_ST( 't', 3, 785, 758 ), /* 762 s */
|
|
+ S_ST( 'a', 3, 769, 0 ), /* 763 st */
|
|
+ S_ST( 'c', 3, 765, 0 ), /* 764 sta */
|
|
+ S_ST( 'k', 3, 766, 0 ), /* 765 stac */
|
|
+ S_ST( 's', 3, 767, 0 ), /* 766 stack */
|
|
+ S_ST( 'i', 3, 768, 0 ), /* 767 stacks */
|
|
+ S_ST( 'z', 3, 404, 0 ), /* 768 stacksi */
|
|
+ S_ST( 't', 3, 406, 764 ), /* 769 sta */
|
|
+ S_ST( 'i', 3, 771, 0 ), /* 770 stat */
|
|
+ S_ST( 's', 3, 772, 0 ), /* 771 stati */
|
|
+ S_ST( 't', 3, 773, 0 ), /* 772 statis */
|
|
+ S_ST( 'i', 3, 774, 0 ), /* 773 statist */
|
|
+ S_ST( 'c', 3, 405, 0 ), /* 774 statisti */
|
|
+ S_ST( 'd', 3, 776, 0 ), /* 775 stats */
|
|
+ S_ST( 'i', 3, 407, 0 ), /* 776 statsd */
|
|
+ S_ST( 'e', 3, 408, 763 ), /* 777 st */
|
|
+ S_ST( 'b', 3, 779, 0 ), /* 778 step */
|
|
+ S_ST( 'a', 3, 780, 0 ), /* 779 stepb */
|
|
+ S_ST( 'c', 3, 409, 0 ), /* 780 stepba */
|
|
+ S_ST( 'f', 3, 782, 778 ), /* 781 step */
|
|
+ S_ST( 'w', 3, 410, 0 ), /* 782 stepf */
|
|
+ S_ST( 'o', 3, 784, 781 ), /* 783 step */
|
|
+ S_ST( 'u', 3, 411, 0 ), /* 784 stepo */
|
|
+ S_ST( 'r', 3, 786, 777 ), /* 785 st */
|
|
+ S_ST( 'a', 3, 787, 0 ), /* 786 str */
|
|
+ S_ST( 't', 3, 788, 0 ), /* 787 stra */
|
|
+ S_ST( 'u', 3, 412, 0 ), /* 788 strat */
|
|
+ S_ST( 'y', 3, 414, 762 ), /* 789 s */
|
|
+ S_ST( 's', 3, 791, 0 ), /* 790 sys */
|
|
+ S_ST( 't', 3, 792, 0 ), /* 791 syss */
|
|
+ S_ST( 'a', 3, 793, 0 ), /* 792 sysst */
|
|
+ S_ST( 't', 3, 415, 0 ), /* 793 syssta */
|
|
+ S_ST( 't', 3, 820, 716 ), /* 794 */
|
|
+ S_ST( 'i', 3, 806, 0 ), /* 795 t */
|
|
+ S_ST( 'c', 3, 416, 0 ), /* 796 ti */
|
|
+ S_ST( 'm', 3, 799, 796 ), /* 797 ti */
|
|
+ S_ST( 'e', 3, 419, 0 ), /* 798 tim */
|
|
+ S_ST( 'i', 3, 800, 798 ), /* 799 tim */
|
|
+ S_ST( 'n', 3, 801, 0 ), /* 800 timi */
|
|
+ S_ST( 'g', 3, 802, 0 ), /* 801 timin */
|
|
+ S_ST( 's', 3, 803, 0 ), /* 802 timing */
|
|
+ S_ST( 't', 3, 804, 0 ), /* 803 timings */
|
|
+ S_ST( 'a', 3, 805, 0 ), /* 804 timingst */
|
|
+ S_ST( 't', 3, 420, 0 ), /* 805 timingsta */
|
|
+ S_ST( 'n', 3, 807, 797 ), /* 806 ti */
|
|
+ S_ST( 'k', 3, 808, 0 ), /* 807 tin */
|
|
+ S_ST( 'e', 3, 421, 0 ), /* 808 tink */
|
|
+ S_ST( 'o', 3, 422, 795 ), /* 809 t */
|
|
+ S_ST( 'r', 3, 812, 809 ), /* 810 t */
|
|
+ S_ST( 'a', 3, 423, 0 ), /* 811 tr */
|
|
+ S_ST( 'u', 3, 813, 811 ), /* 812 tr */
|
|
+ S_ST( 's', 3, 814, 424 ), /* 813 tru */
|
|
+ S_ST( 't', 3, 815, 0 ), /* 814 trus */
|
|
+ S_ST( 'e', 3, 816, 0 ), /* 815 trust */
|
|
+ S_ST( 'd', 3, 817, 0 ), /* 816 truste */
|
|
+ S_ST( 'k', 3, 818, 0 ), /* 817 trusted */
|
|
+ S_ST( 'e', 3, 425, 0 ), /* 818 trustedk */
|
|
+ S_ST( 't', 3, 426, 810 ), /* 819 t */
|
|
+ S_ST( 'y', 3, 821, 819 ), /* 820 t */
|
|
+ S_ST( 'p', 3, 427, 0 ), /* 821 ty */
|
|
+ S_ST( 'u', 3, 823, 794 ), /* 822 */
|
|
+ S_ST( 'n', 3, 829, 0 ), /* 823 u */
|
|
+ S_ST( 'c', 3, 825, 0 ), /* 824 un */
|
|
+ S_ST( 'o', 3, 826, 0 ), /* 825 unc */
|
|
+ S_ST( 'n', 3, 827, 0 ), /* 826 unco */
|
|
+ S_ST( 'f', 3, 828, 0 ), /* 827 uncon */
|
|
+ S_ST( 'i', 3, 432, 0 ), /* 828 unconf */
|
|
+ S_ST( 'p', 3, 830, 824 ), /* 829 un */
|
|
+ S_ST( 'e', 3, 831, 0 ), /* 830 unp */
|
|
+ S_ST( 'e', 3, 433, 0 ), /* 831 unpe */
|
|
+ S_ST( '_', 3, 852, 0 ), /* 832 unpeer */
|
|
+ S_ST( 'c', 3, 834, 0 ), /* 833 unpeer_ */
|
|
+ S_ST( 'r', 3, 835, 0 ), /* 834 unpeer_c */
|
|
+ S_ST( 'y', 3, 836, 0 ), /* 835 unpeer_cr */
|
|
+ S_ST( 'p', 3, 837, 0 ), /* 836 unpeer_cry */
|
|
+ S_ST( 't', 3, 838, 0 ), /* 837 unpeer_cryp */
|
|
+ S_ST( 'o', 3, 839, 0 ), /* 838 unpeer_crypt */
|
|
+ S_ST( '_', 3, 844, 0 ), /* 839 unpeer_crypto */
|
|
+ S_ST( 'e', 3, 841, 0 ), /* 840 unpeer_crypto_ */
|
|
+ S_ST( 'a', 3, 842, 0 ), /* 841 unpeer_crypto_e */
|
|
+ S_ST( 'r', 3, 843, 0 ), /* 842 unpeer_crypto_ea */
|
|
+ S_ST( 'l', 3, 429, 0 ), /* 843 unpeer_crypto_ear */
|
|
+ S_ST( 'n', 3, 845, 840 ), /* 844 unpeer_crypto_ */
|
|
+ S_ST( 'a', 3, 846, 0 ), /* 845 unpeer_crypto_n */
|
|
+ S_ST( 'k', 3, 847, 0 ), /* 846 unpeer_crypto_na */
|
|
+ S_ST( '_', 3, 848, 0 ), /* 847 unpeer_crypto_nak */
|
|
+ S_ST( 'e', 3, 849, 0 ), /* 848 unpeer_crypto_nak_ */
|
|
+ S_ST( 'a', 3, 850, 0 ), /* 849 unpeer_crypto_nak_e */
|
|
+ S_ST( 'r', 3, 851, 0 ), /* 850 unpeer_crypto_nak_ea */
|
|
+ S_ST( 'l', 3, 430, 0 ), /* 851 unpeer_crypto_nak_ear */
|
|
+ S_ST( 'd', 3, 853, 833 ), /* 852 unpeer_ */
|
|
+ S_ST( 'i', 3, 854, 0 ), /* 853 unpeer_d */
|
|
+ S_ST( 'g', 3, 855, 0 ), /* 854 unpeer_di */
|
|
+ S_ST( 'e', 3, 856, 0 ), /* 855 unpeer_dig */
|
|
+ S_ST( 's', 3, 857, 0 ), /* 856 unpeer_dige */
|
|
+ S_ST( 't', 3, 858, 0 ), /* 857 unpeer_diges */
|
|
+ S_ST( '_', 3, 859, 0 ), /* 858 unpeer_digest */
|
|
+ S_ST( 'e', 3, 860, 0 ), /* 859 unpeer_digest_ */
|
|
+ S_ST( 'a', 3, 861, 0 ), /* 860 unpeer_digest_e */
|
|
+ S_ST( 'r', 3, 862, 0 ), /* 861 unpeer_digest_ea */
|
|
+ S_ST( 'l', 3, 431, 0 ), /* 862 unpeer_digest_ear */
|
|
+ S_ST( 'v', 3, 864, 822 ), /* 863 */
|
|
+ S_ST( 'e', 3, 865, 0 ), /* 864 v */
|
|
+ S_ST( 'r', 3, 866, 0 ), /* 865 ve */
|
|
+ S_ST( 's', 3, 867, 0 ), /* 866 ver */
|
|
+ S_ST( 'i', 3, 868, 0 ), /* 867 vers */
|
|
+ S_ST( 'o', 3, 434, 0 ), /* 868 versi */
|
|
+ S_ST( 'w', 3, 876, 863 ), /* 869 */
|
|
+ S_ST( 'a', 3, 871, 0 ), /* 870 w */
|
|
+ S_ST( 'n', 3, 872, 0 ), /* 871 wa */
|
|
+ S_ST( 'd', 3, 873, 0 ), /* 872 wan */
|
|
+ S_ST( 'e', 3, 448, 0 ), /* 873 wand */
|
|
+ S_ST( 'e', 3, 875, 870 ), /* 874 w */
|
|
+ S_ST( 'e', 3, 436, 0 ), /* 875 we */
|
|
+ S_ST( 'i', 3, 877, 874 ), /* 876 w */
|
|
+ S_ST( 'l', 3, 878, 0 ), /* 877 wi */
|
|
+ S_ST( 'd', 3, 879, 0 ), /* 878 wil */
|
|
+ S_ST( 'c', 3, 880, 0 ), /* 879 wild */
|
|
+ S_ST( 'a', 3, 881, 0 ), /* 880 wildc */
|
|
+ S_ST( 'r', 3, 437, 0 ), /* 881 wildca */
|
|
+ S_ST( 'x', 3, 883, 869 ), /* 882 */
|
|
+ S_ST( 'l', 3, 884, 0 ), /* 883 x */
|
|
+ S_ST( 'e', 3, 885, 0 ), /* 884 xl */
|
|
+ S_ST( 'a', 3, 886, 0 ), /* 885 xle */
|
|
+ S_ST( 'v', 3, 438, 0 ), /* 886 xlea */
|
|
+ S_ST( 'y', 3, 888, 882 ), /* 887 [initial state] */
|
|
+ S_ST( 'e', 3, 889, 0 ), /* 888 y */
|
|
+ S_ST( 'a', 3, 439, 0 ) /* 889 ye */
|
|
};
|
|
|
|
Index: contrib/ntp/ntpd/ntp_parser.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_parser.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_parser.c (working copy)
|
|
@@ -1,19 +1,19 @@
|
|
-/* A Bison parser, made by GNU Bison 3.0.2. */
|
|
+/* A Bison parser, made by GNU Bison 2.7.12-4996. */
|
|
|
|
/* Bison implementation for Yacc-like parsers in C
|
|
-
|
|
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
|
-
|
|
+
|
|
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
|
+
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
-
|
|
+
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
-
|
|
+
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
@@ -26,7 +26,7 @@
|
|
special exception, which will cause the skeleton and the resulting
|
|
Bison output files to be licensed under the GNU General Public
|
|
License without this special exception.
|
|
-
|
|
+
|
|
This special exception was added by the Free Software Foundation in
|
|
version 2.2 of Bison. */
|
|
|
|
@@ -44,7 +44,7 @@
|
|
#define YYBISON 1
|
|
|
|
/* Bison version. */
|
|
-#define YYBISON_VERSION "3.0.2"
|
|
+#define YYBISON_VERSION "2.7.12-4996"
|
|
|
|
/* Skeleton name. */
|
|
#define YYSKELETON_NAME "yacc.c"
|
|
@@ -62,7 +62,8 @@
|
|
|
|
|
|
/* Copy the first part of user declarations. */
|
|
-#line 11 "../../ntpd/ntp_parser.y" /* yacc.c:339 */
|
|
+/* Line 371 of yacc.c */
|
|
+#line 11 "../../ntpd/ntp_parser.y"
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include <config.h>
|
|
@@ -96,13 +97,14 @@
|
|
# define ONLY_SIM(a) NULL
|
|
#endif
|
|
|
|
-#line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339 */
|
|
+/* Line 371 of yacc.c */
|
|
+#line 102 "ntp_parser.c"
|
|
|
|
-# ifndef YY_NULLPTR
|
|
+# ifndef YY_NULL
|
|
# if defined __cplusplus && 201103L <= __cplusplus
|
|
-# define YY_NULLPTR nullptr
|
|
+# define YY_NULL nullptr
|
|
# else
|
|
-# define YY_NULLPTR 0
|
|
+# define YY_NULL 0
|
|
# endif
|
|
# endif
|
|
|
|
@@ -116,9 +118,9 @@
|
|
|
|
/* In a future release of Bison, this section will be replaced
|
|
by #include "y.tab.h". */
|
|
-#ifndef YY_YY__NTPD_NTP_PARSER_H_INCLUDED
|
|
-# define YY_YY__NTPD_NTP_PARSER_H_INCLUDED
|
|
-/* Debug traces. */
|
|
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
|
|
+# define YY_YY_NTP_PARSER_H_INCLUDED
|
|
+/* Enabling traces. */
|
|
#ifndef YYDEBUG
|
|
# define YYDEBUG 1
|
|
#endif
|
|
@@ -126,203 +128,207 @@
|
|
extern int yydebug;
|
|
#endif
|
|
|
|
-/* Token type. */
|
|
+/* Tokens. */
|
|
#ifndef YYTOKENTYPE
|
|
# define YYTOKENTYPE
|
|
- enum yytokentype
|
|
- {
|
|
- T_Abbrev = 258,
|
|
- T_Age = 259,
|
|
- T_All = 260,
|
|
- T_Allan = 261,
|
|
- T_Allpeers = 262,
|
|
- T_Auth = 263,
|
|
- T_Autokey = 264,
|
|
- T_Automax = 265,
|
|
- T_Average = 266,
|
|
- T_Bclient = 267,
|
|
- T_Beacon = 268,
|
|
- T_Broadcast = 269,
|
|
- T_Broadcastclient = 270,
|
|
- T_Broadcastdelay = 271,
|
|
- T_Burst = 272,
|
|
- T_Calibrate = 273,
|
|
- T_Ceiling = 274,
|
|
- T_Clockstats = 275,
|
|
- T_Cohort = 276,
|
|
- T_ControlKey = 277,
|
|
- T_Crypto = 278,
|
|
- T_Cryptostats = 279,
|
|
- T_Ctl = 280,
|
|
- T_Day = 281,
|
|
- T_Default = 282,
|
|
- T_Digest = 283,
|
|
- T_Disable = 284,
|
|
- T_Discard = 285,
|
|
- T_Dispersion = 286,
|
|
- T_Double = 287,
|
|
- T_Driftfile = 288,
|
|
- T_Drop = 289,
|
|
- T_Dscp = 290,
|
|
- T_Ellipsis = 291,
|
|
- T_Enable = 292,
|
|
- T_End = 293,
|
|
- T_False = 294,
|
|
- T_File = 295,
|
|
- T_Filegen = 296,
|
|
- T_Filenum = 297,
|
|
- T_Flag1 = 298,
|
|
- T_Flag2 = 299,
|
|
- T_Flag3 = 300,
|
|
- T_Flag4 = 301,
|
|
- T_Flake = 302,
|
|
- T_Floor = 303,
|
|
- T_Freq = 304,
|
|
- T_Fudge = 305,
|
|
- T_Host = 306,
|
|
- T_Huffpuff = 307,
|
|
- T_Iburst = 308,
|
|
- T_Ident = 309,
|
|
- T_Ignore = 310,
|
|
- T_Incalloc = 311,
|
|
- T_Incmem = 312,
|
|
- T_Initalloc = 313,
|
|
- T_Initmem = 314,
|
|
- T_Includefile = 315,
|
|
- T_Integer = 316,
|
|
- T_Interface = 317,
|
|
- T_Intrange = 318,
|
|
- T_Io = 319,
|
|
- T_Ipv4 = 320,
|
|
- T_Ipv4_flag = 321,
|
|
- T_Ipv6 = 322,
|
|
- T_Ipv6_flag = 323,
|
|
- T_Kernel = 324,
|
|
- T_Key = 325,
|
|
- T_Keys = 326,
|
|
- T_Keysdir = 327,
|
|
- T_Kod = 328,
|
|
- T_Mssntp = 329,
|
|
- T_Leapfile = 330,
|
|
- T_Leapsmearinterval = 331,
|
|
- T_Limited = 332,
|
|
- T_Link = 333,
|
|
- T_Listen = 334,
|
|
- T_Logconfig = 335,
|
|
- T_Logfile = 336,
|
|
- T_Loopstats = 337,
|
|
- T_Lowpriotrap = 338,
|
|
- T_Manycastclient = 339,
|
|
- T_Manycastserver = 340,
|
|
- T_Mask = 341,
|
|
- T_Maxage = 342,
|
|
- T_Maxclock = 343,
|
|
- T_Maxdepth = 344,
|
|
- T_Maxdist = 345,
|
|
- T_Maxmem = 346,
|
|
- T_Maxpoll = 347,
|
|
- T_Mdnstries = 348,
|
|
- T_Mem = 349,
|
|
- T_Memlock = 350,
|
|
- T_Minclock = 351,
|
|
- T_Mindepth = 352,
|
|
- T_Mindist = 353,
|
|
- T_Minimum = 354,
|
|
- T_Minpoll = 355,
|
|
- T_Minsane = 356,
|
|
- T_Mode = 357,
|
|
- T_Mode7 = 358,
|
|
- T_Monitor = 359,
|
|
- T_Month = 360,
|
|
- T_Mru = 361,
|
|
- T_Multicastclient = 362,
|
|
- T_Nic = 363,
|
|
- T_Nolink = 364,
|
|
- T_Nomodify = 365,
|
|
- T_Nomrulist = 366,
|
|
- T_None = 367,
|
|
- T_Nonvolatile = 368,
|
|
- T_Nopeer = 369,
|
|
- T_Noquery = 370,
|
|
- T_Noselect = 371,
|
|
- T_Noserve = 372,
|
|
- T_Notrap = 373,
|
|
- T_Notrust = 374,
|
|
- T_Ntp = 375,
|
|
- T_Ntpport = 376,
|
|
- T_NtpSignDsocket = 377,
|
|
- T_Orphan = 378,
|
|
- T_Orphanwait = 379,
|
|
- T_Panic = 380,
|
|
- T_Peer = 381,
|
|
- T_Peerstats = 382,
|
|
- T_Phone = 383,
|
|
- T_Pid = 384,
|
|
- T_Pidfile = 385,
|
|
- T_Pool = 386,
|
|
- T_Port = 387,
|
|
- T_Preempt = 388,
|
|
- T_Prefer = 389,
|
|
- T_Protostats = 390,
|
|
- T_Pw = 391,
|
|
- T_Randfile = 392,
|
|
- T_Rawstats = 393,
|
|
- T_Refid = 394,
|
|
- T_Requestkey = 395,
|
|
- T_Reset = 396,
|
|
- T_Restrict = 397,
|
|
- T_Revoke = 398,
|
|
- T_Rlimit = 399,
|
|
- T_Saveconfigdir = 400,
|
|
- T_Server = 401,
|
|
- T_Setvar = 402,
|
|
- T_Source = 403,
|
|
- T_Stacksize = 404,
|
|
- T_Statistics = 405,
|
|
- T_Stats = 406,
|
|
- T_Statsdir = 407,
|
|
- T_Step = 408,
|
|
- T_Stepback = 409,
|
|
- T_Stepfwd = 410,
|
|
- T_Stepout = 411,
|
|
- T_Stratum = 412,
|
|
- T_String = 413,
|
|
- T_Sys = 414,
|
|
- T_Sysstats = 415,
|
|
- T_Tick = 416,
|
|
- T_Time1 = 417,
|
|
- T_Time2 = 418,
|
|
- T_Timer = 419,
|
|
- T_Timingstats = 420,
|
|
- T_Tinker = 421,
|
|
- T_Tos = 422,
|
|
- T_Trap = 423,
|
|
- T_True = 424,
|
|
- T_Trustedkey = 425,
|
|
- T_Ttl = 426,
|
|
- T_Type = 427,
|
|
- T_U_int = 428,
|
|
- T_Unconfig = 429,
|
|
- T_Unpeer = 430,
|
|
- T_Version = 431,
|
|
- T_WanderThreshold = 432,
|
|
- T_Week = 433,
|
|
- T_Wildcard = 434,
|
|
- T_Xleave = 435,
|
|
- T_Year = 436,
|
|
- T_Flag = 437,
|
|
- T_EOC = 438,
|
|
- T_Simulate = 439,
|
|
- T_Beep_Delay = 440,
|
|
- T_Sim_Duration = 441,
|
|
- T_Server_Offset = 442,
|
|
- T_Duration = 443,
|
|
- T_Freq_Offset = 444,
|
|
- T_Wander = 445,
|
|
- T_Jitter = 446,
|
|
- T_Prop_Delay = 447,
|
|
- T_Proc_Delay = 448
|
|
- };
|
|
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
|
|
+ know about them. */
|
|
+ enum yytokentype {
|
|
+ T_Abbrev = 258,
|
|
+ T_Age = 259,
|
|
+ T_All = 260,
|
|
+ T_Allan = 261,
|
|
+ T_Allpeers = 262,
|
|
+ T_Auth = 263,
|
|
+ T_Autokey = 264,
|
|
+ T_Automax = 265,
|
|
+ T_Average = 266,
|
|
+ T_Bclient = 267,
|
|
+ T_Beacon = 268,
|
|
+ T_Broadcast = 269,
|
|
+ T_Broadcastclient = 270,
|
|
+ T_Broadcastdelay = 271,
|
|
+ T_Burst = 272,
|
|
+ T_Calibrate = 273,
|
|
+ T_Ceiling = 274,
|
|
+ T_Clockstats = 275,
|
|
+ T_Cohort = 276,
|
|
+ T_ControlKey = 277,
|
|
+ T_Crypto = 278,
|
|
+ T_Cryptostats = 279,
|
|
+ T_Ctl = 280,
|
|
+ T_Day = 281,
|
|
+ T_Default = 282,
|
|
+ T_Digest = 283,
|
|
+ T_Disable = 284,
|
|
+ T_Discard = 285,
|
|
+ T_Dispersion = 286,
|
|
+ T_Double = 287,
|
|
+ T_Driftfile = 288,
|
|
+ T_Drop = 289,
|
|
+ T_Dscp = 290,
|
|
+ T_Ellipsis = 291,
|
|
+ T_Enable = 292,
|
|
+ T_End = 293,
|
|
+ T_False = 294,
|
|
+ T_File = 295,
|
|
+ T_Filegen = 296,
|
|
+ T_Filenum = 297,
|
|
+ T_Flag1 = 298,
|
|
+ T_Flag2 = 299,
|
|
+ T_Flag3 = 300,
|
|
+ T_Flag4 = 301,
|
|
+ T_Flake = 302,
|
|
+ T_Floor = 303,
|
|
+ T_Freq = 304,
|
|
+ T_Fudge = 305,
|
|
+ T_Host = 306,
|
|
+ T_Huffpuff = 307,
|
|
+ T_Iburst = 308,
|
|
+ T_Ident = 309,
|
|
+ T_Ignore = 310,
|
|
+ T_Incalloc = 311,
|
|
+ T_Incmem = 312,
|
|
+ T_Initalloc = 313,
|
|
+ T_Initmem = 314,
|
|
+ T_Includefile = 315,
|
|
+ T_Integer = 316,
|
|
+ T_Interface = 317,
|
|
+ T_Intrange = 318,
|
|
+ T_Io = 319,
|
|
+ T_Ipv4 = 320,
|
|
+ T_Ipv4_flag = 321,
|
|
+ T_Ipv6 = 322,
|
|
+ T_Ipv6_flag = 323,
|
|
+ T_Kernel = 324,
|
|
+ T_Key = 325,
|
|
+ T_Keys = 326,
|
|
+ T_Keysdir = 327,
|
|
+ T_Kod = 328,
|
|
+ T_Mssntp = 329,
|
|
+ T_Leapfile = 330,
|
|
+ T_Leapsmearinterval = 331,
|
|
+ T_Limited = 332,
|
|
+ T_Link = 333,
|
|
+ T_Listen = 334,
|
|
+ T_Logconfig = 335,
|
|
+ T_Logfile = 336,
|
|
+ T_Loopstats = 337,
|
|
+ T_Lowpriotrap = 338,
|
|
+ T_Manycastclient = 339,
|
|
+ T_Manycastserver = 340,
|
|
+ T_Mask = 341,
|
|
+ T_Maxage = 342,
|
|
+ T_Maxclock = 343,
|
|
+ T_Maxdepth = 344,
|
|
+ T_Maxdist = 345,
|
|
+ T_Maxmem = 346,
|
|
+ T_Maxpoll = 347,
|
|
+ T_Mdnstries = 348,
|
|
+ T_Mem = 349,
|
|
+ T_Memlock = 350,
|
|
+ T_Minclock = 351,
|
|
+ T_Mindepth = 352,
|
|
+ T_Mindist = 353,
|
|
+ T_Minimum = 354,
|
|
+ T_Minpoll = 355,
|
|
+ T_Minsane = 356,
|
|
+ T_Mode = 357,
|
|
+ T_Mode7 = 358,
|
|
+ T_Monitor = 359,
|
|
+ T_Month = 360,
|
|
+ T_Mru = 361,
|
|
+ T_Multicastclient = 362,
|
|
+ T_Nic = 363,
|
|
+ T_Nolink = 364,
|
|
+ T_Nomodify = 365,
|
|
+ T_Nomrulist = 366,
|
|
+ T_None = 367,
|
|
+ T_Nonvolatile = 368,
|
|
+ T_Nopeer = 369,
|
|
+ T_Noquery = 370,
|
|
+ T_Noselect = 371,
|
|
+ T_Noserve = 372,
|
|
+ T_Notrap = 373,
|
|
+ T_Notrust = 374,
|
|
+ T_Ntp = 375,
|
|
+ T_Ntpport = 376,
|
|
+ T_NtpSignDsocket = 377,
|
|
+ T_Orphan = 378,
|
|
+ T_Orphanwait = 379,
|
|
+ T_Panic = 380,
|
|
+ T_Peer = 381,
|
|
+ T_Peerstats = 382,
|
|
+ T_Phone = 383,
|
|
+ T_Pid = 384,
|
|
+ T_Pidfile = 385,
|
|
+ T_Pool = 386,
|
|
+ T_Port = 387,
|
|
+ T_Preempt = 388,
|
|
+ T_Prefer = 389,
|
|
+ T_Protostats = 390,
|
|
+ T_Pw = 391,
|
|
+ T_Randfile = 392,
|
|
+ T_Rawstats = 393,
|
|
+ T_Refid = 394,
|
|
+ T_Requestkey = 395,
|
|
+ T_Reset = 396,
|
|
+ T_Restrict = 397,
|
|
+ T_Revoke = 398,
|
|
+ T_Rlimit = 399,
|
|
+ T_Saveconfigdir = 400,
|
|
+ T_Server = 401,
|
|
+ T_Setvar = 402,
|
|
+ T_Source = 403,
|
|
+ T_Stacksize = 404,
|
|
+ T_Statistics = 405,
|
|
+ T_Stats = 406,
|
|
+ T_Statsdir = 407,
|
|
+ T_Step = 408,
|
|
+ T_Stepback = 409,
|
|
+ T_Stepfwd = 410,
|
|
+ T_Stepout = 411,
|
|
+ T_Stratum = 412,
|
|
+ T_String = 413,
|
|
+ T_Sys = 414,
|
|
+ T_Sysstats = 415,
|
|
+ T_Tick = 416,
|
|
+ T_Time1 = 417,
|
|
+ T_Time2 = 418,
|
|
+ T_Timer = 419,
|
|
+ T_Timingstats = 420,
|
|
+ T_Tinker = 421,
|
|
+ T_Tos = 422,
|
|
+ T_Trap = 423,
|
|
+ T_True = 424,
|
|
+ T_Trustedkey = 425,
|
|
+ T_Ttl = 426,
|
|
+ T_Type = 427,
|
|
+ T_U_int = 428,
|
|
+ T_UEcrypto = 429,
|
|
+ T_UEcryptonak = 430,
|
|
+ T_UEdigest = 431,
|
|
+ T_Unconfig = 432,
|
|
+ T_Unpeer = 433,
|
|
+ T_Version = 434,
|
|
+ T_WanderThreshold = 435,
|
|
+ T_Week = 436,
|
|
+ T_Wildcard = 437,
|
|
+ T_Xleave = 438,
|
|
+ T_Year = 439,
|
|
+ T_Flag = 440,
|
|
+ T_EOC = 441,
|
|
+ T_Simulate = 442,
|
|
+ T_Beep_Delay = 443,
|
|
+ T_Sim_Duration = 444,
|
|
+ T_Server_Offset = 445,
|
|
+ T_Duration = 446,
|
|
+ T_Freq_Offset = 447,
|
|
+ T_Wander = 448,
|
|
+ T_Jitter = 449,
|
|
+ T_Prop_Delay = 450,
|
|
+ T_Proc_Delay = 451
|
|
+ };
|
|
#endif
|
|
/* Tokens. */
|
|
#define T_Abbrev 258
|
|
@@ -496,33 +502,37 @@ extern int yydebug;
|
|
#define T_Ttl 426
|
|
#define T_Type 427
|
|
#define T_U_int 428
|
|
-#define T_Unconfig 429
|
|
-#define T_Unpeer 430
|
|
-#define T_Version 431
|
|
-#define T_WanderThreshold 432
|
|
-#define T_Week 433
|
|
-#define T_Wildcard 434
|
|
-#define T_Xleave 435
|
|
-#define T_Year 436
|
|
-#define T_Flag 437
|
|
-#define T_EOC 438
|
|
-#define T_Simulate 439
|
|
-#define T_Beep_Delay 440
|
|
-#define T_Sim_Duration 441
|
|
-#define T_Server_Offset 442
|
|
-#define T_Duration 443
|
|
-#define T_Freq_Offset 444
|
|
-#define T_Wander 445
|
|
-#define T_Jitter 446
|
|
-#define T_Prop_Delay 447
|
|
-#define T_Proc_Delay 448
|
|
+#define T_UEcrypto 429
|
|
+#define T_UEcryptonak 430
|
|
+#define T_UEdigest 431
|
|
+#define T_Unconfig 432
|
|
+#define T_Unpeer 433
|
|
+#define T_Version 434
|
|
+#define T_WanderThreshold 435
|
|
+#define T_Week 436
|
|
+#define T_Wildcard 437
|
|
+#define T_Xleave 438
|
|
+#define T_Year 439
|
|
+#define T_Flag 440
|
|
+#define T_EOC 441
|
|
+#define T_Simulate 442
|
|
+#define T_Beep_Delay 443
|
|
+#define T_Sim_Duration 444
|
|
+#define T_Server_Offset 445
|
|
+#define T_Duration 446
|
|
+#define T_Freq_Offset 447
|
|
+#define T_Wander 448
|
|
+#define T_Jitter 449
|
|
+#define T_Prop_Delay 450
|
|
+#define T_Proc_Delay 451
|
|
|
|
-/* Value type. */
|
|
+
|
|
+
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
-typedef union YYSTYPE YYSTYPE;
|
|
-union YYSTYPE
|
|
+typedef union YYSTYPE
|
|
{
|
|
-#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:355 */
|
|
+/* Line 387 of yacc.c */
|
|
+#line 51 "../../ntpd/ntp_parser.y"
|
|
|
|
char * String;
|
|
double Double;
|
|
@@ -541,22 +551,37 @@ extern int yydebug;
|
|
script_info * Sim_script;
|
|
script_info_fifo * Sim_script_fifo;
|
|
|
|
-#line 545 "../../ntpd/ntp_parser.c" /* yacc.c:355 */
|
|
-};
|
|
+
|
|
+/* Line 387 of yacc.c */
|
|
+#line 557 "ntp_parser.c"
|
|
+} YYSTYPE;
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
# define YYSTYPE_IS_DECLARED 1
|
|
#endif
|
|
|
|
-
|
|
extern YYSTYPE yylval;
|
|
|
|
+#ifdef YYPARSE_PARAM
|
|
+#if defined __STDC__ || defined __cplusplus
|
|
+int yyparse (void *YYPARSE_PARAM);
|
|
+#else
|
|
+int yyparse ();
|
|
+#endif
|
|
+#else /* ! YYPARSE_PARAM */
|
|
+#if defined __STDC__ || defined __cplusplus
|
|
int yyparse (void);
|
|
+#else
|
|
+int yyparse ();
|
|
+#endif
|
|
+#endif /* ! YYPARSE_PARAM */
|
|
|
|
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED */
|
|
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED */
|
|
|
|
/* Copy the second part of user declarations. */
|
|
|
|
-#line 560 "../../ntpd/ntp_parser.c" /* yacc.c:358 */
|
|
+/* Line 390 of yacc.c */
|
|
+#line 585 "ntp_parser.c"
|
|
|
|
#ifdef short
|
|
# undef short
|
|
@@ -570,8 +595,11 @@ typedef unsigned char yytype_uint8;
|
|
|
|
#ifdef YYTYPE_INT8
|
|
typedef YYTYPE_INT8 yytype_int8;
|
|
+#elif (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
+typedef signed char yytype_int8;
|
|
#else
|
|
-typedef signed char yytype_int8;
|
|
+typedef short int yytype_int8;
|
|
#endif
|
|
|
|
#ifdef YYTYPE_UINT16
|
|
@@ -591,7 +619,8 @@ typedef short int yytype_int16;
|
|
# define YYSIZE_T __SIZE_TYPE__
|
|
# elif defined size_t
|
|
# define YYSIZE_T size_t
|
|
-# elif ! defined YYSIZE_T
|
|
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
|
|
# define YYSIZE_T size_t
|
|
# else
|
|
@@ -613,33 +642,14 @@ typedef short int yytype_int16;
|
|
# endif
|
|
#endif
|
|
|
|
-#ifndef YY_ATTRIBUTE
|
|
-# if (defined __GNUC__ \
|
|
- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
|
|
- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
|
|
-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
|
|
-# else
|
|
-# define YY_ATTRIBUTE(Spec) /* empty */
|
|
+#ifndef __attribute__
|
|
+/* This feature is available in gcc versions 2.5 and later. */
|
|
+# if (! defined __GNUC__ || __GNUC__ < 2 \
|
|
+ || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
|
|
+# define __attribute__(Spec) /* empty */
|
|
# endif
|
|
#endif
|
|
|
|
-#ifndef YY_ATTRIBUTE_PURE
|
|
-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
|
|
-#endif
|
|
-
|
|
-#ifndef YY_ATTRIBUTE_UNUSED
|
|
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
|
|
-#endif
|
|
-
|
|
-#if !defined _Noreturn \
|
|
- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
|
|
-# if defined _MSC_VER && 1200 <= _MSC_VER
|
|
-# define _Noreturn __declspec (noreturn)
|
|
-# else
|
|
-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
|
|
-# endif
|
|
-#endif
|
|
-
|
|
/* Suppress unused-variable warnings by "using" E. */
|
|
#if ! defined lint || defined __GNUC__
|
|
# define YYUSE(E) ((void) (E))
|
|
@@ -647,26 +657,25 @@ typedef short int yytype_int16;
|
|
# define YYUSE(E) /* empty */
|
|
#endif
|
|
|
|
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
|
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
|
- _Pragma ("GCC diagnostic push") \
|
|
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
|
|
- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
|
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
|
- _Pragma ("GCC diagnostic pop")
|
|
+
|
|
+/* Identity function, used to suppress warnings about constant conditions. */
|
|
+#ifndef lint
|
|
+# define YYID(N) (N)
|
|
#else
|
|
-# define YY_INITIAL_VALUE(Value) Value
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
+static int
|
|
+YYID (int yyi)
|
|
+#else
|
|
+static int
|
|
+YYID (yyi)
|
|
+ int yyi;
|
|
#endif
|
|
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
+{
|
|
+ return yyi;
|
|
+}
|
|
#endif
|
|
-#ifndef YY_INITIAL_VALUE
|
|
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
|
|
-#endif
|
|
|
|
-
|
|
#if ! defined yyoverflow || YYERROR_VERBOSE
|
|
|
|
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
|
@@ -684,7 +693,8 @@ typedef short int yytype_int16;
|
|
# define alloca _alloca
|
|
# else
|
|
# define YYSTACK_ALLOC alloca
|
|
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
|
|
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
|
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
|
|
# ifndef EXIT_SUCCESS
|
|
@@ -696,8 +706,8 @@ typedef short int yytype_int16;
|
|
# endif
|
|
|
|
# ifdef YYSTACK_ALLOC
|
|
- /* Pacify GCC's 'empty if-body' warning. */
|
|
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
|
|
+ /* Pacify GCC's `empty if-body' warning. */
|
|
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
|
|
# ifndef YYSTACK_ALLOC_MAXIMUM
|
|
/* The OS might guarantee only one guard page at the bottom of the stack,
|
|
and a page size can be as small as 4096 bytes. So we cannot safely
|
|
@@ -713,7 +723,7 @@ typedef short int yytype_int16;
|
|
# endif
|
|
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
|
|
&& ! ((defined YYMALLOC || defined malloc) \
|
|
- && (defined YYFREE || defined free)))
|
|
+ && (defined YYFREE || defined free)))
|
|
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
|
# ifndef EXIT_SUCCESS
|
|
# define EXIT_SUCCESS 0
|
|
@@ -721,13 +731,15 @@ typedef short int yytype_int16;
|
|
# endif
|
|
# ifndef YYMALLOC
|
|
# define YYMALLOC malloc
|
|
-# if ! defined malloc && ! defined EXIT_SUCCESS
|
|
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
|
|
# endif
|
|
# endif
|
|
# ifndef YYFREE
|
|
# define YYFREE free
|
|
-# if ! defined free && ! defined EXIT_SUCCESS
|
|
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
void free (void *); /* INFRINGES ON USER NAME SPACE */
|
|
# endif
|
|
# endif
|
|
@@ -737,7 +749,7 @@ void free (void *); /* INFRINGES ON USER NAME SPAC
|
|
|
|
#if (! defined yyoverflow \
|
|
&& (! defined __cplusplus \
|
|
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
|
|
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
|
|
|
|
/* A type that is properly aligned for any stack member. */
|
|
union yyalloc
|
|
@@ -762,16 +774,16 @@ union yyalloc
|
|
elements in the stack, and YYPTR gives the new location of the
|
|
stack. Advance YYPTR to a properly aligned location for the next
|
|
stack. */
|
|
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
|
|
- do \
|
|
- { \
|
|
- YYSIZE_T yynewbytes; \
|
|
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
|
|
- Stack = &yyptr->Stack_alloc; \
|
|
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
|
- yyptr += yynewbytes / sizeof (*yyptr); \
|
|
- } \
|
|
- while (0)
|
|
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
|
|
+ do \
|
|
+ { \
|
|
+ YYSIZE_T yynewbytes; \
|
|
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
|
|
+ Stack = &yyptr->Stack_alloc; \
|
|
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
|
+ yyptr += yynewbytes / sizeof (*yyptr); \
|
|
+ } \
|
|
+ while (YYID (0))
|
|
|
|
#endif
|
|
|
|
@@ -790,35 +802,33 @@ union yyalloc
|
|
for (yyi = 0; yyi < (Count); yyi++) \
|
|
(Dst)[yyi] = (Src)[yyi]; \
|
|
} \
|
|
- while (0)
|
|
+ while (YYID (0))
|
|
# endif
|
|
# endif
|
|
#endif /* !YYCOPY_NEEDED */
|
|
|
|
/* YYFINAL -- State number of the termination state. */
|
|
-#define YYFINAL 210
|
|
+#define YYFINAL 213
|
|
/* YYLAST -- Last index in YYTABLE. */
|
|
-#define YYLAST 647
|
|
+#define YYLAST 624
|
|
|
|
/* YYNTOKENS -- Number of terminals. */
|
|
-#define YYNTOKENS 199
|
|
+#define YYNTOKENS 202
|
|
/* YYNNTS -- Number of nonterminals. */
|
|
#define YYNNTS 105
|
|
/* YYNRULES -- Number of rules. */
|
|
-#define YYNRULES 313
|
|
-/* YYNSTATES -- Number of states. */
|
|
-#define YYNSTATES 419
|
|
+#define YYNRULES 316
|
|
+/* YYNRULES -- Number of states. */
|
|
+#define YYNSTATES 422
|
|
|
|
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
|
|
- by yylex, with out-of-bounds checking. */
|
|
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
|
#define YYUNDEFTOK 2
|
|
-#define YYMAXUTOK 448
|
|
+#define YYMAXUTOK 451
|
|
|
|
-#define YYTRANSLATE(YYX) \
|
|
+#define YYTRANSLATE(YYX) \
|
|
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
|
|
|
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
|
|
- as returned by yylex, without out-of-bounds checking. */
|
|
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
|
|
static const yytype_uint8 yytranslate[] =
|
|
{
|
|
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
@@ -825,15 +835,15 @@ static const yytype_uint8 yytranslate[] =
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 195, 196, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 198, 199, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 194, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 2, 197, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 2, 2, 197, 2, 198, 2, 2, 2, 2,
|
|
+ 2, 2, 2, 200, 2, 201, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
@@ -865,45 +875,166 @@ static const yytype_uint8 yytranslate[] =
|
|
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
|
|
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
|
|
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
|
|
- 185, 186, 187, 188, 189, 190, 191, 192, 193
|
|
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
|
|
+ 195, 196
|
|
};
|
|
|
|
#if YYDEBUG
|
|
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
|
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
|
|
+ YYRHS. */
|
|
+static const yytype_uint16 yyprhs[] =
|
|
+{
|
|
+ 0, 0, 3, 5, 9, 12, 15, 16, 18, 20,
|
|
+ 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
|
|
+ 42, 46, 48, 50, 52, 54, 56, 58, 61, 63,
|
|
+ 65, 67, 68, 71, 73, 75, 77, 79, 81, 83,
|
|
+ 85, 87, 89, 91, 93, 95, 98, 101, 103, 105,
|
|
+ 107, 109, 111, 113, 116, 118, 121, 123, 125, 127,
|
|
+ 130, 133, 136, 139, 142, 145, 148, 151, 154, 157,
|
|
+ 160, 163, 164, 167, 170, 173, 175, 177, 179, 181,
|
|
+ 183, 186, 189, 191, 194, 197, 200, 202, 204, 206,
|
|
+ 208, 210, 212, 214, 216, 218, 220, 223, 226, 230,
|
|
+ 233, 235, 237, 239, 241, 243, 245, 247, 249, 251,
|
|
+ 252, 255, 258, 261, 263, 265, 267, 269, 271, 273,
|
|
+ 275, 277, 279, 281, 283, 285, 287, 290, 293, 297,
|
|
+ 303, 307, 312, 317, 321, 322, 325, 327, 329, 331,
|
|
+ 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
|
|
+ 353, 355, 358, 360, 363, 365, 367, 369, 372, 374,
|
|
+ 377, 379, 381, 383, 385, 387, 389, 391, 393, 397,
|
|
+ 400, 402, 405, 408, 411, 414, 417, 419, 421, 423,
|
|
+ 425, 427, 429, 432, 435, 437, 440, 442, 444, 446,
|
|
+ 449, 452, 455, 457, 459, 461, 463, 465, 467, 469,
|
|
+ 471, 473, 475, 477, 479, 481, 483, 486, 489, 491,
|
|
+ 494, 496, 498, 500, 502, 504, 506, 508, 510, 512,
|
|
+ 514, 516, 518, 521, 524, 527, 530, 534, 536, 539,
|
|
+ 542, 545, 548, 552, 555, 557, 559, 561, 563, 565,
|
|
+ 567, 569, 571, 573, 575, 577, 580, 581, 586, 588,
|
|
+ 589, 590, 593, 596, 599, 602, 604, 606, 610, 614,
|
|
+ 616, 618, 620, 622, 624, 626, 628, 630, 632, 635,
|
|
+ 638, 640, 642, 644, 646, 648, 650, 652, 654, 657,
|
|
+ 659, 662, 664, 666, 668, 674, 677, 679, 682, 684,
|
|
+ 686, 688, 690, 692, 694, 700, 702, 706, 709, 713,
|
|
+ 715, 717, 720, 722, 728, 733, 737, 740, 742, 749,
|
|
+ 753, 756, 760, 762, 764, 766, 768
|
|
+};
|
|
+
|
|
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
|
+static const yytype_int16 yyrhs[] =
|
|
+{
|
|
+ 203, 0, -1, 204, -1, 204, 205, 186, -1, 205,
|
|
+ 186, -1, 1, 186, -1, -1, 206, -1, 219, -1,
|
|
+ 221, -1, 222, -1, 231, -1, 239, -1, 226, -1,
|
|
+ 248, -1, 253, -1, 257, -1, 262, -1, 266, -1,
|
|
+ 293, -1, 207, 208, 211, -1, 146, -1, 131, -1,
|
|
+ 126, -1, 14, -1, 84, -1, 209, -1, 210, 158,
|
|
+ -1, 158, -1, 66, -1, 68, -1, -1, 211, 212,
|
|
+ -1, 213, -1, 215, -1, 217, -1, 214, -1, 9,
|
|
+ -1, 17, -1, 53, -1, 116, -1, 133, -1, 134,
|
|
+ -1, 169, -1, 183, -1, 216, 61, -1, 216, 173,
|
|
+ -1, 70, -1, 100, -1, 92, -1, 171, -1, 102,
|
|
+ -1, 179, -1, 218, 158, -1, 54, -1, 220, 208,
|
|
+ -1, 177, -1, 178, -1, 15, -1, 85, 290, -1,
|
|
+ 107, 290, -1, 93, 61, -1, 10, 61, -1, 22,
|
|
+ 61, -1, 23, 223, -1, 71, 158, -1, 72, 158,
|
|
+ -1, 140, 61, -1, 143, 61, -1, 170, 286, -1,
|
|
+ 122, 158, -1, -1, 223, 224, -1, 225, 158, -1,
|
|
+ 143, 61, -1, 51, -1, 54, -1, 136, -1, 137,
|
|
+ -1, 28, -1, 167, 227, -1, 227, 228, -1, 228,
|
|
+ -1, 229, 61, -1, 230, 292, -1, 21, 291, -1,
|
|
+ 19, -1, 48, -1, 123, -1, 124, -1, 101, -1,
|
|
+ 13, -1, 98, -1, 90, -1, 96, -1, 88, -1,
|
|
+ 150, 232, -1, 152, 158, -1, 41, 233, 234, -1,
|
|
+ 232, 233, -1, 233, -1, 20, -1, 24, -1, 82,
|
|
+ -1, 127, -1, 138, -1, 160, -1, 165, -1, 135,
|
|
+ -1, -1, 234, 235, -1, 40, 158, -1, 172, 238,
|
|
+ -1, 236, -1, 237, -1, 78, -1, 109, -1, 37,
|
|
+ -1, 29, -1, 112, -1, 129, -1, 26, -1, 181,
|
|
+ -1, 105, -1, 184, -1, 4, -1, 30, 242, -1,
|
|
+ 106, 245, -1, 142, 208, 240, -1, 142, 209, 86,
|
|
+ 209, 240, -1, 142, 27, 240, -1, 142, 66, 27,
|
|
+ 240, -1, 142, 68, 27, 240, -1, 142, 148, 240,
|
|
+ -1, -1, 240, 241, -1, 47, -1, 55, -1, 73,
|
|
+ -1, 74, -1, 77, -1, 83, -1, 110, -1, 111,
|
|
+ -1, 114, -1, 115, -1, 117, -1, 118, -1, 119,
|
|
+ -1, 121, -1, 179, -1, 242, 243, -1, 243, -1,
|
|
+ 244, 61, -1, 11, -1, 99, -1, 104, -1, 245,
|
|
+ 246, -1, 246, -1, 247, 61, -1, 56, -1, 57,
|
|
+ -1, 58, -1, 59, -1, 87, -1, 89, -1, 91,
|
|
+ -1, 97, -1, 50, 208, 249, -1, 249, 250, -1,
|
|
+ 250, -1, 251, 292, -1, 252, 291, -1, 157, 61,
|
|
+ -1, 3, 158, -1, 139, 158, -1, 162, -1, 163,
|
|
+ -1, 43, -1, 44, -1, 45, -1, 46, -1, 144,
|
|
+ 254, -1, 254, 255, -1, 255, -1, 256, 61, -1,
|
|
+ 95, -1, 149, -1, 42, -1, 37, 258, -1, 29,
|
|
+ 258, -1, 258, 259, -1, 259, -1, 260, -1, 261,
|
|
+ -1, 8, -1, 12, -1, 18, -1, 69, -1, 104,
|
|
+ -1, 120, -1, 103, -1, 151, -1, 174, -1, 175,
|
|
+ -1, 176, -1, 166, 263, -1, 263, 264, -1, 264,
|
|
+ -1, 265, 292, -1, 6, -1, 31, -1, 49, -1,
|
|
+ 52, -1, 125, -1, 153, -1, 154, -1, 155, -1,
|
|
+ 156, -1, 161, -1, 278, -1, 282, -1, 267, 292,
|
|
+ -1, 268, 61, -1, 269, 158, -1, 270, 158, -1,
|
|
+ 60, 158, 205, -1, 38, -1, 33, 271, -1, 80,
|
|
+ 276, -1, 128, 289, -1, 147, 272, -1, 168, 209,
|
|
+ 274, -1, 171, 285, -1, 16, -1, 113, -1, 161,
|
|
+ -1, 35, -1, 76, -1, 54, -1, 75, -1, 81,
|
|
+ -1, 130, -1, 145, -1, 158, -1, 158, 32, -1,
|
|
+ -1, 158, 197, 158, 273, -1, 27, -1, -1, -1,
|
|
+ 274, 275, -1, 132, 61, -1, 62, 209, -1, 276,
|
|
+ 277, -1, 277, -1, 158, -1, 279, 281, 280, -1,
|
|
+ 279, 281, 158, -1, 62, -1, 108, -1, 5, -1,
|
|
+ 65, -1, 67, -1, 182, -1, 79, -1, 55, -1,
|
|
+ 34, -1, 141, 283, -1, 283, 284, -1, 284, -1,
|
|
+ 7, -1, 8, -1, 25, -1, 64, -1, 94, -1,
|
|
+ 159, -1, 164, -1, 285, 61, -1, 61, -1, 286,
|
|
+ 287, -1, 287, -1, 61, -1, 288, -1, 198, 61,
|
|
+ 36, 61, 199, -1, 289, 158, -1, 158, -1, 290,
|
|
+ 208, -1, 208, -1, 61, -1, 169, -1, 39, -1,
|
|
+ 61, -1, 32, -1, 294, 200, 295, 298, 201, -1,
|
|
+ 187, -1, 295, 296, 186, -1, 296, 186, -1, 297,
|
|
+ 197, 292, -1, 188, -1, 189, -1, 298, 299, -1,
|
|
+ 299, -1, 301, 200, 300, 302, 201, -1, 190, 197,
|
|
+ 292, 186, -1, 146, 197, 208, -1, 302, 303, -1,
|
|
+ 303, -1, 191, 197, 292, 200, 304, 201, -1, 304,
|
|
+ 305, 186, -1, 305, 186, -1, 306, 197, 292, -1,
|
|
+ 192, -1, 193, -1, 194, -1, 195, -1, 196, -1
|
|
+};
|
|
+
|
|
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
|
static const yytype_uint16 yyrline[] =
|
|
{
|
|
- 0, 366, 366, 370, 371, 372, 387, 388, 389, 390,
|
|
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
|
|
- 408, 418, 419, 420, 421, 422, 426, 427, 432, 437,
|
|
- 439, 445, 446, 454, 455, 456, 460, 465, 466, 467,
|
|
- 468, 469, 470, 471, 472, 476, 478, 483, 484, 485,
|
|
- 486, 487, 488, 492, 497, 506, 516, 517, 527, 529,
|
|
- 531, 533, 544, 551, 553, 558, 560, 562, 564, 566,
|
|
- 575, 581, 582, 590, 592, 604, 605, 606, 607, 608,
|
|
- 617, 622, 627, 635, 637, 639, 644, 645, 646, 647,
|
|
- 648, 649, 653, 654, 655, 656, 665, 667, 676, 686,
|
|
- 691, 699, 700, 701, 702, 703, 704, 705, 706, 711,
|
|
- 712, 720, 730, 739, 754, 759, 760, 764, 765, 769,
|
|
- 770, 771, 772, 773, 774, 775, 784, 788, 792, 800,
|
|
- 808, 816, 831, 846, 859, 860, 868, 869, 870, 871,
|
|
- 872, 873, 874, 875, 876, 877, 878, 879, 880, 881,
|
|
- 882, 886, 891, 899, 904, 905, 906, 910, 915, 923,
|
|
- 928, 929, 930, 931, 932, 933, 934, 935, 943, 953,
|
|
- 958, 966, 968, 970, 979, 981, 986, 987, 991, 992,
|
|
- 993, 994, 1002, 1007, 1012, 1020, 1025, 1026, 1027, 1036,
|
|
- 1038, 1043, 1048, 1056, 1058, 1075, 1076, 1077, 1078, 1079,
|
|
- 1080, 1084, 1085, 1093, 1098, 1103, 1111, 1116, 1117, 1118,
|
|
- 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1134, 1135, 1136,
|
|
- 1143, 1150, 1157, 1173, 1192, 1194, 1196, 1198, 1200, 1202,
|
|
- 1209, 1214, 1215, 1216, 1220, 1224, 1233, 1234, 1238, 1239,
|
|
- 1240, 1244, 1255, 1269, 1281, 1286, 1288, 1293, 1294, 1302,
|
|
- 1304, 1312, 1317, 1325, 1350, 1357, 1367, 1368, 1372, 1373,
|
|
- 1374, 1375, 1379, 1380, 1381, 1385, 1390, 1395, 1403, 1404,
|
|
- 1405, 1406, 1407, 1408, 1409, 1419, 1424, 1432, 1437, 1445,
|
|
- 1447, 1451, 1456, 1461, 1469, 1474, 1482, 1491, 1492, 1496,
|
|
- 1497, 1506, 1524, 1528, 1533, 1541, 1546, 1547, 1551, 1556,
|
|
- 1564, 1569, 1574, 1579, 1584, 1592, 1597, 1602, 1610, 1615,
|
|
- 1616, 1617, 1618, 1619
|
|
+ 0, 369, 369, 373, 374, 375, 390, 391, 392, 393,
|
|
+ 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
|
|
+ 411, 421, 422, 423, 424, 425, 429, 430, 435, 440,
|
|
+ 442, 448, 449, 457, 458, 459, 463, 468, 469, 470,
|
|
+ 471, 472, 473, 474, 475, 479, 481, 486, 487, 488,
|
|
+ 489, 490, 491, 495, 500, 509, 519, 520, 530, 532,
|
|
+ 534, 536, 547, 554, 556, 561, 563, 565, 567, 569,
|
|
+ 578, 584, 585, 593, 595, 607, 608, 609, 610, 611,
|
|
+ 620, 625, 630, 638, 640, 642, 647, 648, 649, 650,
|
|
+ 651, 652, 656, 657, 658, 659, 668, 670, 679, 689,
|
|
+ 694, 702, 703, 704, 705, 706, 707, 708, 709, 714,
|
|
+ 715, 723, 733, 742, 757, 762, 763, 767, 768, 772,
|
|
+ 773, 774, 775, 776, 777, 778, 787, 791, 795, 803,
|
|
+ 811, 819, 834, 849, 862, 863, 871, 872, 873, 874,
|
|
+ 875, 876, 877, 878, 879, 880, 881, 882, 883, 884,
|
|
+ 885, 889, 894, 902, 907, 908, 909, 913, 918, 926,
|
|
+ 931, 932, 933, 934, 935, 936, 937, 938, 946, 956,
|
|
+ 961, 969, 971, 973, 982, 984, 989, 990, 994, 995,
|
|
+ 996, 997, 1005, 1010, 1015, 1023, 1028, 1029, 1030, 1039,
|
|
+ 1041, 1046, 1051, 1059, 1061, 1078, 1079, 1080, 1081, 1082,
|
|
+ 1083, 1087, 1088, 1089, 1090, 1091, 1099, 1104, 1109, 1117,
|
|
+ 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
|
|
+ 1140, 1141, 1142, 1149, 1156, 1163, 1179, 1198, 1200, 1202,
|
|
+ 1204, 1206, 1208, 1215, 1220, 1221, 1222, 1226, 1230, 1239,
|
|
+ 1240, 1244, 1245, 1246, 1250, 1261, 1275, 1287, 1292, 1294,
|
|
+ 1299, 1300, 1308, 1310, 1318, 1323, 1331, 1356, 1363, 1373,
|
|
+ 1374, 1378, 1379, 1380, 1381, 1385, 1386, 1387, 1391, 1396,
|
|
+ 1401, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1425, 1430,
|
|
+ 1438, 1443, 1451, 1453, 1457, 1462, 1467, 1475, 1480, 1488,
|
|
+ 1497, 1498, 1502, 1503, 1512, 1530, 1534, 1539, 1547, 1552,
|
|
+ 1553, 1557, 1562, 1570, 1575, 1580, 1585, 1590, 1598, 1603,
|
|
+ 1608, 1616, 1621, 1622, 1623, 1624, 1625
|
|
};
|
|
#endif
|
|
|
|
@@ -944,29 +1075,29 @@ static const char *const yytname[] =
|
|
"T_Step", "T_Stepback", "T_Stepfwd", "T_Stepout", "T_Stratum",
|
|
"T_String", "T_Sys", "T_Sysstats", "T_Tick", "T_Time1", "T_Time2",
|
|
"T_Timer", "T_Timingstats", "T_Tinker", "T_Tos", "T_Trap", "T_True",
|
|
- "T_Trustedkey", "T_Ttl", "T_Type", "T_U_int", "T_Unconfig", "T_Unpeer",
|
|
- "T_Version", "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave",
|
|
- "T_Year", "T_Flag", "T_EOC", "T_Simulate", "T_Beep_Delay",
|
|
- "T_Sim_Duration", "T_Server_Offset", "T_Duration", "T_Freq_Offset",
|
|
- "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay", "'='", "'('",
|
|
- "')'", "'{'", "'}'", "$accept", "configuration", "command_list",
|
|
- "command", "server_command", "client_type", "address", "ip_address",
|
|
- "address_fam", "option_list", "option", "option_flag",
|
|
- "option_flag_keyword", "option_int", "option_int_keyword", "option_str",
|
|
- "option_str_keyword", "unpeer_command", "unpeer_keyword",
|
|
- "other_mode_command", "authentication_command", "crypto_command_list",
|
|
- "crypto_command", "crypto_str_keyword", "orphan_mode_command",
|
|
- "tos_option_list", "tos_option", "tos_option_int_keyword",
|
|
- "tos_option_dbl_keyword", "monitoring_command", "stats_list", "stat",
|
|
- "filegen_option_list", "filegen_option", "link_nolink", "enable_disable",
|
|
- "filegen_type", "access_control_command", "ac_flag_list",
|
|
- "access_control_flag", "discard_option_list", "discard_option",
|
|
- "discard_option_keyword", "mru_option_list", "mru_option",
|
|
- "mru_option_keyword", "fudge_command", "fudge_factor_list",
|
|
- "fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword",
|
|
- "rlimit_command", "rlimit_option_list", "rlimit_option",
|
|
- "rlimit_option_keyword", "system_option_command", "system_option_list",
|
|
- "system_option", "system_option_flag_keyword",
|
|
+ "T_Trustedkey", "T_Ttl", "T_Type", "T_U_int", "T_UEcrypto",
|
|
+ "T_UEcryptonak", "T_UEdigest", "T_Unconfig", "T_Unpeer", "T_Version",
|
|
+ "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave", "T_Year",
|
|
+ "T_Flag", "T_EOC", "T_Simulate", "T_Beep_Delay", "T_Sim_Duration",
|
|
+ "T_Server_Offset", "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter",
|
|
+ "T_Prop_Delay", "T_Proc_Delay", "'='", "'('", "')'", "'{'", "'}'",
|
|
+ "$accept", "configuration", "command_list", "command", "server_command",
|
|
+ "client_type", "address", "ip_address", "address_fam", "option_list",
|
|
+ "option", "option_flag", "option_flag_keyword", "option_int",
|
|
+ "option_int_keyword", "option_str", "option_str_keyword",
|
|
+ "unpeer_command", "unpeer_keyword", "other_mode_command",
|
|
+ "authentication_command", "crypto_command_list", "crypto_command",
|
|
+ "crypto_str_keyword", "orphan_mode_command", "tos_option_list",
|
|
+ "tos_option", "tos_option_int_keyword", "tos_option_dbl_keyword",
|
|
+ "monitoring_command", "stats_list", "stat", "filegen_option_list",
|
|
+ "filegen_option", "link_nolink", "enable_disable", "filegen_type",
|
|
+ "access_control_command", "ac_flag_list", "access_control_flag",
|
|
+ "discard_option_list", "discard_option", "discard_option_keyword",
|
|
+ "mru_option_list", "mru_option", "mru_option_keyword", "fudge_command",
|
|
+ "fudge_factor_list", "fudge_factor", "fudge_factor_dbl_keyword",
|
|
+ "fudge_factor_bool_keyword", "rlimit_command", "rlimit_option_list",
|
|
+ "rlimit_option", "rlimit_option_keyword", "system_option_command",
|
|
+ "system_option_list", "system_option", "system_option_flag_keyword",
|
|
"system_option_local_flag_keyword", "tinker_command",
|
|
"tinker_option_list", "tinker_option", "tinker_option_keyword",
|
|
"miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_int_keyword",
|
|
@@ -981,13 +1112,13 @@ static const char *const yytname[] =
|
|
"sim_init_statement_list", "sim_init_statement", "sim_init_keyword",
|
|
"sim_server_list", "sim_server", "sim_server_offset", "sim_server_name",
|
|
"sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt",
|
|
- "sim_act_keyword", YY_NULLPTR
|
|
+ "sim_act_keyword", YY_NULL
|
|
};
|
|
#endif
|
|
|
|
# ifdef YYPRINT
|
|
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
|
|
- (internal) symbol number NUM (which must be that of a token). */
|
|
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
|
|
+ token YYLEX-NUM. */
|
|
static const yytype_uint16 yytoknum[] =
|
|
{
|
|
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
|
|
@@ -1009,292 +1140,363 @@ static const yytype_uint16 yytoknum[] =
|
|
415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
|
|
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
|
|
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
|
|
- 445, 446, 447, 448, 61, 40, 41, 123, 125
|
|
+ 445, 446, 447, 448, 449, 450, 451, 61, 40, 41,
|
|
+ 123, 125
|
|
};
|
|
# endif
|
|
|
|
-#define YYPACT_NINF -185
|
|
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
|
+static const yytype_uint16 yyr1[] =
|
|
+{
|
|
+ 0, 202, 203, 204, 204, 204, 205, 205, 205, 205,
|
|
+ 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
|
+ 206, 207, 207, 207, 207, 207, 208, 208, 209, 210,
|
|
+ 210, 211, 211, 212, 212, 212, 213, 214, 214, 214,
|
|
+ 214, 214, 214, 214, 214, 215, 215, 216, 216, 216,
|
|
+ 216, 216, 216, 217, 218, 219, 220, 220, 221, 221,
|
|
+ 221, 221, 222, 222, 222, 222, 222, 222, 222, 222,
|
|
+ 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
|
|
+ 226, 227, 227, 228, 228, 228, 229, 229, 229, 229,
|
|
+ 229, 229, 230, 230, 230, 230, 231, 231, 231, 232,
|
|
+ 232, 233, 233, 233, 233, 233, 233, 233, 233, 234,
|
|
+ 234, 235, 235, 235, 235, 236, 236, 237, 237, 238,
|
|
+ 238, 238, 238, 238, 238, 238, 239, 239, 239, 239,
|
|
+ 239, 239, 239, 239, 240, 240, 241, 241, 241, 241,
|
|
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
|
|
+ 241, 242, 242, 243, 244, 244, 244, 245, 245, 246,
|
|
+ 247, 247, 247, 247, 247, 247, 247, 247, 248, 249,
|
|
+ 249, 250, 250, 250, 250, 250, 251, 251, 252, 252,
|
|
+ 252, 252, 253, 254, 254, 255, 256, 256, 256, 257,
|
|
+ 257, 258, 258, 259, 259, 260, 260, 260, 260, 260,
|
|
+ 260, 261, 261, 261, 261, 261, 262, 263, 263, 264,
|
|
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
|
|
+ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
|
|
+ 266, 266, 266, 266, 267, 267, 267, 268, 268, 269,
|
|
+ 269, 270, 270, 270, 271, 271, 271, 272, 273, 273,
|
|
+ 274, 274, 275, 275, 276, 276, 277, 278, 278, 279,
|
|
+ 279, 280, 280, 280, 280, 281, 281, 281, 282, 283,
|
|
+ 283, 284, 284, 284, 284, 284, 284, 284, 285, 285,
|
|
+ 286, 286, 287, 287, 288, 289, 289, 290, 290, 291,
|
|
+ 291, 291, 292, 292, 293, 294, 295, 295, 296, 297,
|
|
+ 297, 298, 298, 299, 300, 301, 302, 302, 303, 304,
|
|
+ 304, 305, 306, 306, 306, 306, 306
|
|
+};
|
|
|
|
-#define yypact_value_is_default(Yystate) \
|
|
- (!!((Yystate) == (-185)))
|
|
-
|
|
-#define YYTABLE_NINF -7
|
|
-
|
|
-#define yytable_value_is_error(Yytable_value) \
|
|
- 0
|
|
-
|
|
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
|
- STATE-NUM. */
|
|
-static const yytype_int16 yypact[] =
|
|
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
|
+static const yytype_uint8 yyr2[] =
|
|
{
|
|
- 78, -169, -34, -185, -185, -185, -29, -185, 17, 43,
|
|
- -124, -185, 17, -185, -5, -27, -185, -121, -185, -112,
|
|
- -110, -185, -185, -100, -185, -185, -27, 0, 116, -27,
|
|
- -185, -185, -91, -185, -89, -185, -185, 11, 35, 30,
|
|
- 13, 31, -185, -185, -83, -5, -78, -185, 186, 523,
|
|
- -76, -56, 15, -185, -185, -185, 83, 244, -99, -185,
|
|
- -27, -185, -27, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -12, 24, -71, -69, -185, -11, -185,
|
|
- -185, -107, -185, -185, -185, 8, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, 17, -185, -185, -185, -185, -185,
|
|
- -185, 43, -185, 34, 59, -185, 17, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, 7,
|
|
- -185, -61, 407, -185, -185, -185, -100, -185, -185, -27,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, 116,
|
|
- -185, 44, -27, -185, -185, -52, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, 35, -185, -185, 85, 96, -185,
|
|
- -185, 39, -185, -185, -185, -185, 31, -185, 75, -46,
|
|
- -185, -5, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, 186, -185, -12, -185, -185, -35,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, 523, -185,
|
|
- 82, -12, -185, -185, 91, -56, -185, -185, -185, 100,
|
|
- -185, -26, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -2, -130, -185, -185, -185, -185,
|
|
- -185, 105, -185, 9, -185, -185, -185, -185, -7, 18,
|
|
- -185, -185, -185, -185, 25, 121, -185, -185, 7, -185,
|
|
- -12, -35, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- 391, -185, -185, 391, 391, -76, -185, -185, 29, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, -51,
|
|
- 153, -185, -185, -185, 464, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -82, 14, 1, -185, -185, -185, -185,
|
|
- 38, -185, -185, 12, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, 391,
|
|
- 391, -185, 171, -76, 140, -185, 141, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -55, -185, 53, 20,
|
|
- 33, -128, -185, 32, -185, -12, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, 391, -185, -185, -185, -185,
|
|
- 16, -185, -185, -185, -27, -185, -185, -185, 46, -185,
|
|
- -185, -185, 37, 48, -12, 40, -167, -185, 54, -12,
|
|
- -185, -185, -185, 45, 79, -185, -185, -185, -185, -185,
|
|
- 98, 57, 47, -185, 60, -185, -12, -185, -185
|
|
+ 0, 2, 1, 3, 2, 2, 0, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 3, 1, 1, 1, 1, 1, 1, 2, 1, 1,
|
|
+ 1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
|
|
+ 1, 1, 1, 2, 1, 2, 1, 1, 1, 2,
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 2, 0, 2, 2, 2, 1, 1, 1, 1, 1,
|
|
+ 2, 2, 1, 2, 2, 2, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 2, 2, 3, 2,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
|
|
+ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 2, 2, 3, 5,
|
|
+ 3, 4, 4, 3, 0, 2, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 2, 1, 2, 1, 1, 1, 2, 1, 2,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
|
|
+ 1, 2, 2, 2, 2, 2, 1, 1, 1, 1,
|
|
+ 1, 1, 2, 2, 1, 2, 1, 1, 1, 2,
|
|
+ 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 2, 2, 2, 2, 3, 1, 2, 2,
|
|
+ 2, 2, 3, 2, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 2, 0, 4, 1, 0,
|
|
+ 0, 2, 2, 2, 2, 1, 1, 3, 3, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
|
|
+ 2, 1, 1, 1, 5, 2, 1, 2, 1, 1,
|
|
+ 1, 1, 1, 1, 5, 1, 3, 2, 3, 1,
|
|
+ 1, 2, 1, 5, 4, 3, 2, 1, 6, 3,
|
|
+ 2, 3, 1, 1, 1, 1, 1
|
|
};
|
|
|
|
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
|
- Performed when YYTABLE does not specify something else to do. Zero
|
|
- means the default is an error. */
|
|
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
|
|
+ Performed when YYTABLE doesn't specify something else to do. Zero
|
|
+ means the default is an error. */
|
|
static const yytype_uint16 yydefact[] =
|
|
{
|
|
- 0, 0, 0, 24, 58, 231, 0, 71, 0, 0,
|
|
- 243, 234, 0, 224, 0, 0, 236, 0, 256, 0,
|
|
- 0, 237, 235, 0, 238, 25, 0, 0, 0, 0,
|
|
- 257, 232, 0, 23, 0, 239, 22, 0, 0, 0,
|
|
- 0, 0, 240, 21, 0, 0, 0, 233, 0, 0,
|
|
- 0, 0, 0, 56, 57, 292, 0, 2, 0, 7,
|
|
+ 0, 0, 0, 24, 58, 234, 0, 71, 0, 0,
|
|
+ 246, 237, 0, 227, 0, 0, 239, 0, 259, 0,
|
|
+ 0, 240, 238, 0, 241, 25, 0, 0, 0, 0,
|
|
+ 260, 235, 0, 23, 0, 242, 22, 0, 0, 0,
|
|
+ 0, 0, 243, 21, 0, 0, 0, 236, 0, 0,
|
|
+ 0, 0, 0, 56, 57, 295, 0, 2, 0, 7,
|
|
0, 8, 0, 9, 10, 13, 11, 12, 14, 15,
|
|
- 16, 17, 18, 0, 0, 0, 0, 217, 0, 218,
|
|
+ 16, 17, 18, 0, 0, 0, 0, 220, 0, 221,
|
|
19, 0, 5, 62, 63, 64, 195, 196, 197, 198,
|
|
- 201, 199, 200, 202, 190, 192, 193, 194, 154, 155,
|
|
- 156, 126, 152, 0, 241, 225, 189, 101, 102, 103,
|
|
- 104, 108, 105, 106, 107, 109, 29, 30, 28, 0,
|
|
- 26, 0, 6, 65, 66, 253, 226, 252, 285, 59,
|
|
- 61, 160, 161, 162, 163, 164, 165, 166, 167, 127,
|
|
- 158, 0, 60, 70, 283, 227, 67, 268, 269, 270,
|
|
- 271, 272, 273, 274, 265, 267, 134, 29, 30, 134,
|
|
- 134, 26, 68, 188, 186, 187, 182, 184, 0, 0,
|
|
- 228, 96, 100, 97, 207, 208, 209, 210, 211, 212,
|
|
- 213, 214, 215, 216, 203, 205, 0, 91, 86, 0,
|
|
- 87, 95, 93, 94, 92, 90, 88, 89, 80, 82,
|
|
- 0, 0, 247, 279, 0, 69, 278, 280, 276, 230,
|
|
- 1, 0, 4, 31, 55, 290, 289, 219, 220, 221,
|
|
- 222, 264, 263, 262, 0, 0, 79, 75, 76, 77,
|
|
- 78, 0, 72, 0, 191, 151, 153, 242, 98, 0,
|
|
- 178, 179, 180, 181, 0, 0, 176, 177, 168, 170,
|
|
- 0, 0, 27, 223, 251, 284, 157, 159, 282, 266,
|
|
- 130, 134, 134, 133, 128, 0, 183, 185, 0, 99,
|
|
- 204, 206, 288, 286, 287, 85, 81, 83, 84, 229,
|
|
- 0, 277, 275, 3, 20, 258, 259, 260, 255, 261,
|
|
- 254, 296, 297, 0, 0, 0, 74, 73, 118, 117,
|
|
- 0, 115, 116, 0, 110, 113, 114, 174, 175, 173,
|
|
- 169, 171, 172, 136, 137, 138, 139, 140, 141, 142,
|
|
- 143, 144, 145, 146, 147, 148, 149, 150, 135, 131,
|
|
- 132, 134, 246, 0, 0, 248, 0, 37, 38, 39,
|
|
- 54, 47, 49, 48, 51, 40, 41, 42, 43, 50,
|
|
- 52, 44, 32, 33, 36, 34, 0, 35, 0, 0,
|
|
- 0, 0, 299, 0, 294, 0, 111, 125, 121, 123,
|
|
- 119, 120, 122, 124, 112, 129, 245, 244, 250, 249,
|
|
- 0, 45, 46, 53, 0, 293, 291, 298, 0, 295,
|
|
- 281, 302, 0, 0, 0, 0, 0, 304, 0, 0,
|
|
- 300, 303, 301, 0, 0, 309, 310, 311, 312, 313,
|
|
- 0, 0, 0, 305, 0, 307, 0, 306, 308
|
|
+ 201, 199, 200, 202, 203, 204, 205, 190, 192, 193,
|
|
+ 194, 154, 155, 156, 126, 152, 0, 244, 228, 189,
|
|
+ 101, 102, 103, 104, 108, 105, 106, 107, 109, 29,
|
|
+ 30, 28, 0, 26, 0, 6, 65, 66, 256, 229,
|
|
+ 255, 288, 59, 61, 160, 161, 162, 163, 164, 165,
|
|
+ 166, 167, 127, 158, 0, 60, 70, 286, 230, 67,
|
|
+ 271, 272, 273, 274, 275, 276, 277, 268, 270, 134,
|
|
+ 29, 30, 134, 134, 26, 68, 188, 186, 187, 182,
|
|
+ 184, 0, 0, 231, 96, 100, 97, 210, 211, 212,
|
|
+ 213, 214, 215, 216, 217, 218, 219, 206, 208, 0,
|
|
+ 91, 86, 0, 87, 95, 93, 94, 92, 90, 88,
|
|
+ 89, 80, 82, 0, 0, 250, 282, 0, 69, 281,
|
|
+ 283, 279, 233, 1, 0, 4, 31, 55, 293, 292,
|
|
+ 222, 223, 224, 225, 267, 266, 265, 0, 0, 79,
|
|
+ 75, 76, 77, 78, 0, 72, 0, 191, 151, 153,
|
|
+ 245, 98, 0, 178, 179, 180, 181, 0, 0, 176,
|
|
+ 177, 168, 170, 0, 0, 27, 226, 254, 287, 157,
|
|
+ 159, 285, 269, 130, 134, 134, 133, 128, 0, 183,
|
|
+ 185, 0, 99, 207, 209, 291, 289, 290, 85, 81,
|
|
+ 83, 84, 232, 0, 280, 278, 3, 20, 261, 262,
|
|
+ 263, 258, 264, 257, 299, 300, 0, 0, 0, 74,
|
|
+ 73, 118, 117, 0, 115, 116, 0, 110, 113, 114,
|
|
+ 174, 175, 173, 169, 171, 172, 136, 137, 138, 139,
|
|
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
|
|
+ 150, 135, 131, 132, 134, 249, 0, 0, 251, 0,
|
|
+ 37, 38, 39, 54, 47, 49, 48, 51, 40, 41,
|
|
+ 42, 43, 50, 52, 44, 32, 33, 36, 34, 0,
|
|
+ 35, 0, 0, 0, 0, 302, 0, 297, 0, 111,
|
|
+ 125, 121, 123, 119, 120, 122, 124, 112, 129, 248,
|
|
+ 247, 253, 252, 0, 45, 46, 53, 0, 296, 294,
|
|
+ 301, 0, 298, 284, 305, 0, 0, 0, 0, 0,
|
|
+ 307, 0, 0, 303, 306, 304, 0, 0, 312, 313,
|
|
+ 314, 315, 316, 0, 0, 0, 308, 0, 310, 0,
|
|
+ 309, 311
|
|
};
|
|
|
|
- /* YYPGOTO[NTERM-NUM]. */
|
|
-static const yytype_int16 yypgoto[] =
|
|
+/* YYDEFGOTO[NTERM-NUM]. */
|
|
+static const yytype_int16 yydefgoto[] =
|
|
{
|
|
- -185, -185, -185, -44, -185, -185, -15, -38, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, -185, 28, -185, -185, -185,
|
|
- -185, -36, -185, -185, -185, -185, -185, -185, -152, -185,
|
|
- -185, 146, -185, -185, 111, -185, -185, -185, 3, -185,
|
|
- -185, -185, -185, 89, -185, -185, 245, -66, -185, -185,
|
|
- -185, -185, 72, -185, -185, -185, -185, -185, -185, -185,
|
|
- -185, -185, -185, -185, -185, 137, -185, -185, -185, -185,
|
|
- -185, -185, 110, -185, -185, 70, -185, -185, 236, 27,
|
|
- -184, -185, -185, -185, -17, -185, -185, -81, -185, -185,
|
|
- -185, -113, -185, -126, -185
|
|
+ -1, 56, 57, 58, 59, 60, 131, 123, 124, 287,
|
|
+ 355, 356, 357, 358, 359, 360, 361, 61, 62, 63,
|
|
+ 64, 85, 235, 236, 65, 201, 202, 203, 204, 66,
|
|
+ 174, 118, 241, 307, 308, 309, 377, 67, 263, 331,
|
|
+ 104, 105, 106, 142, 143, 144, 68, 251, 252, 253,
|
|
+ 254, 69, 169, 170, 171, 70, 97, 98, 99, 100,
|
|
+ 71, 187, 188, 189, 72, 73, 74, 75, 76, 108,
|
|
+ 173, 380, 282, 338, 129, 130, 77, 78, 293, 227,
|
|
+ 79, 157, 158, 212, 208, 209, 210, 148, 132, 278,
|
|
+ 220, 80, 81, 296, 297, 298, 364, 365, 396, 366,
|
|
+ 399, 400, 413, 414, 415
|
|
};
|
|
|
|
- /* YYDEFGOTO[NTERM-NUM]. */
|
|
-static const yytype_int16 yydefgoto[] =
|
|
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
|
+ STATE-NUM. */
|
|
+#define YYPACT_NINF -188
|
|
+static const yytype_int16 yypact[] =
|
|
{
|
|
- -1, 56, 57, 58, 59, 60, 128, 120, 121, 284,
|
|
- 352, 353, 354, 355, 356, 357, 358, 61, 62, 63,
|
|
- 64, 85, 232, 233, 65, 198, 199, 200, 201, 66,
|
|
- 171, 115, 238, 304, 305, 306, 374, 67, 260, 328,
|
|
- 101, 102, 103, 139, 140, 141, 68, 248, 249, 250,
|
|
- 251, 69, 166, 167, 168, 70, 94, 95, 96, 97,
|
|
- 71, 184, 185, 186, 72, 73, 74, 75, 76, 105,
|
|
- 170, 377, 279, 335, 126, 127, 77, 78, 290, 224,
|
|
- 79, 154, 155, 209, 205, 206, 207, 145, 129, 275,
|
|
- 217, 80, 81, 293, 294, 295, 361, 362, 393, 363,
|
|
- 396, 397, 410, 411, 412
|
|
+ 5, -160, -28, -188, -188, -188, -24, -188, 60, 0,
|
|
+ -119, -188, 60, -188, 118, 7, -188, -117, -188, -110,
|
|
+ -108, -188, -188, -101, -188, -188, 7, -1, 345, 7,
|
|
+ -188, -188, -96, -188, -95, -188, -188, 21, -3, 73,
|
|
+ 33, 11, -188, -188, -94, 118, -61, -188, 43, 446,
|
|
+ -57, -58, 41, -188, -188, -188, 105, 179, -79, -188,
|
|
+ 7, -188, 7, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -7, 48, -48, -39, -188, 24, -188,
|
|
+ -188, -86, -188, -188, -188, 42, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, 60, -188, -188,
|
|
+ -188, -188, -188, -188, 0, -188, 59, 89, -188, 60,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, 80, -188, 9, 338, -188, -188, -188, -101,
|
|
+ -188, -188, 7, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, 345, -188, 67, 7, -188, -188, 12, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -3, -188, -188,
|
|
+ 107, 116, -188, -188, 83, -188, -188, -188, -188, 11,
|
|
+ -188, 113, -20, -188, 118, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, 43, -188, -7,
|
|
+ -188, -188, -25, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, 446, -188, 127, -7, -188, -188, 129, -58, -188,
|
|
+ -188, -188, 142, -188, 19, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, 4, -158, -188,
|
|
+ -188, -188, -188, -188, 145, -188, 49, -188, -188, -188,
|
|
+ -188, 233, 55, -188, -188, -188, -188, 64, 157, -188,
|
|
+ -188, 80, -188, -7, -25, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, 445, -188, -188, 445, 445, -57, -188,
|
|
+ -188, 82, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -44, 202, -188, -188, -188, 324, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -30, 58, 50, -188,
|
|
+ -188, -188, -188, 88, -188, -188, 3, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, 445, 445, -188, 221, -57, 188, -188, 191,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -51,
|
|
+ -188, 99, 61, 75, -114, -188, 65, -188, -7, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, 445, -188,
|
|
+ -188, -188, -188, 68, -188, -188, -188, 7, -188, -188,
|
|
+ -188, 76, -188, -188, -188, 71, 78, -7, 74, -178,
|
|
+ -188, 90, -7, -188, -188, -188, 77, 32, -188, -188,
|
|
+ -188, -188, -188, 101, 93, 84, -188, 94, -188, -7,
|
|
+ -188, -188
|
|
};
|
|
|
|
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
|
|
- positive, shift that token. If negative, reduce the rule whose
|
|
- number is the opposite. If YYTABLE_NINF, syntax error. */
|
|
+/* YYPGOTO[NTERM-NUM]. */
|
|
+static const yytype_int16 yypgoto[] =
|
|
+{
|
|
+ -188, -188, -188, -41, -188, -188, -15, -38, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, -188, 81, -188, -188, -188,
|
|
+ -188, -37, -188, -188, -188, -188, -188, -188, -111, -188,
|
|
+ -188, 170, -188, -188, 133, -188, -188, -188, 37, -188,
|
|
+ -188, -188, -188, 115, -188, -188, 277, -53, -188, -188,
|
|
+ -188, -188, 103, -188, -188, -188, -188, -188, -188, -188,
|
|
+ -188, -188, -188, -188, -188, 162, -188, -188, -188, -188,
|
|
+ -188, -188, 143, -188, -188, 91, -188, -188, 274, 52,
|
|
+ -187, -188, -188, -188, 8, -188, -188, -56, -188, -188,
|
|
+ -188, -87, -188, -100, -188
|
|
+};
|
|
+
|
|
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
|
+ positive, shift that token. If negative, reduce the rule which
|
|
+ number is the opposite. If YYTABLE_NINF, syntax error. */
|
|
+#define YYTABLE_NINF -7
|
|
static const yytype_int16 yytable[] =
|
|
{
|
|
- 119, 161, 271, 285, 272, 203, 381, 263, 264, 172,
|
|
- 239, 333, 202, 211, 82, 107, 367, 278, 359, 108,
|
|
- 215, 395, 298, 221, 160, 86, 273, 83, 234, 87,
|
|
- 299, 400, 84, 300, 104, 88, 226, 122, 368, 116,
|
|
- 234, 117, 147, 148, 222, 213, 123, 214, 124, 216,
|
|
- 240, 241, 242, 243, 98, 291, 292, 156, 125, 227,
|
|
- 149, 130, 228, 286, 359, 287, 311, 143, 223, 144,
|
|
- 386, 301, 146, 163, 162, 169, 208, 109, 253, 1,
|
|
- 173, 334, 118, 210, 212, 218, 89, 219, 2, 220,
|
|
- 225, 237, 3, 4, 5, 236, 157, 252, 158, 150,
|
|
- 6, 7, 302, 291, 292, 257, 258, 8, 9, 329,
|
|
- 330, 10, 261, 11, 255, 12, 13, 369, 382, 14,
|
|
- 90, 91, 110, 262, 370, 265, 164, 255, 15, 151,
|
|
- 111, 118, 16, 112, 274, 269, 267, 92, 17, 204,
|
|
- 18, 371, 99, 277, 229, 230, 244, 100, 268, 19,
|
|
- 20, 231, 280, 21, 22, 113, 288, 283, 23, 24,
|
|
- 114, 282, 25, 26, 245, 303, 296, 297, 93, 246,
|
|
- 247, 27, 131, 132, 133, 134, 307, 289, 159, 375,
|
|
- 165, 389, 309, 308, 28, 29, 30, 332, 118, 336,
|
|
- 372, 31, 174, 373, 152, 365, 366, 364, 376, 153,
|
|
- 32, 379, 380, 135, 33, 136, 34, 137, 35, 36,
|
|
- 398, 383, 390, 138, 384, 403, 385, 175, 37, 38,
|
|
- 39, 40, 41, 42, 43, 44, 276, 331, 45, 388,
|
|
- 46, 394, 418, 392, 399, 176, 395, 402, 177, 47,
|
|
- 415, 416, 404, 417, 48, 49, 50, 235, 51, 52,
|
|
- 256, 310, 53, 54, 2, 266, 270, 106, 3, 4,
|
|
- 5, -6, 55, 254, 259, 142, 6, 7, 405, 406,
|
|
- 407, 408, 409, 8, 9, 281, 360, 10, 312, 11,
|
|
- 387, 12, 13, 401, 414, 14, 0, 405, 406, 407,
|
|
- 408, 409, 0, 0, 15, 378, 413, 0, 16, 0,
|
|
- 0, 0, 0, 0, 17, 0, 18, 0, 0, 0,
|
|
- 0, 178, 0, 0, 0, 19, 20, 0, 0, 21,
|
|
- 22, 0, 0, 0, 23, 24, 0, 0, 25, 26,
|
|
- 0, 0, 0, 0, 0, 0, 0, 27, 0, 179,
|
|
- 180, 181, 182, 0, 0, 0, 0, 183, 0, 0,
|
|
- 28, 29, 30, 0, 0, 0, 0, 31, 0, 0,
|
|
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 391,
|
|
- 33, 0, 34, 0, 35, 36, 0, 0, 0, 0,
|
|
- 0, 0, 0, 0, 37, 38, 39, 40, 41, 42,
|
|
- 43, 44, 0, 0, 45, 0, 46, 0, 0, 0,
|
|
- 0, 0, 0, 0, 0, 47, 0, 0, 0, 0,
|
|
- 48, 49, 50, 0, 51, 52, 0, 2, 53, 54,
|
|
- 0, 3, 4, 5, 0, 0, 0, -6, 55, 6,
|
|
- 7, 0, 0, 0, 0, 0, 8, 9, 313, 0,
|
|
- 10, 0, 11, 0, 12, 13, 314, 0, 14, 0,
|
|
- 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
|
|
- 0, 16, 0, 0, 315, 316, 0, 17, 317, 18,
|
|
- 0, 0, 0, 337, 318, 0, 0, 0, 19, 20,
|
|
- 0, 338, 21, 22, 0, 0, 0, 23, 24, 0,
|
|
- 0, 25, 26, 0, 0, 0, 0, 0, 0, 0,
|
|
- 27, 319, 320, 0, 0, 321, 322, 0, 323, 324,
|
|
- 325, 0, 326, 28, 29, 30, 0, 339, 340, 0,
|
|
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 32,
|
|
- 0, 0, 0, 33, 341, 34, 187, 35, 36, 0,
|
|
- 0, 0, 188, 0, 189, 0, 0, 37, 38, 39,
|
|
- 40, 41, 42, 43, 44, 0, 342, 45, 0, 46,
|
|
- 0, 0, 0, 0, 343, 0, 344, 327, 47, 0,
|
|
- 0, 190, 0, 48, 49, 50, 0, 51, 52, 0,
|
|
- 345, 53, 54, 0, 0, 0, 0, 0, 0, 0,
|
|
- 0, 55, 0, 0, 0, 0, 0, 346, 347, 0,
|
|
+ 122, 164, 274, 206, 150, 151, 1, 370, 175, 288,
|
|
+ 384, 101, 205, 398, 275, 2, 214, 281, 336, 3,
|
|
+ 4, 5, 152, 403, 163, 218, 82, 6, 7, 371,
|
|
+ 294, 295, 362, 83, 8, 9, 276, 84, 10, 107,
|
|
+ 11, 125, 12, 13, 237, 216, 14, 217, 126, 177,
|
|
+ 127, 266, 267, 166, 219, 15, 237, 128, 224, 16,
|
|
+ 133, 153, 146, 147, 172, 17, 314, 18, 86, 289,
|
|
+ 229, 290, 87, 119, 178, 120, 19, 20, 88, 225,
|
|
+ 21, 22, 149, 242, 256, 23, 24, 389, 337, 25,
|
|
+ 26, 154, 179, 230, 165, 180, 231, 176, 27, 102,
|
|
+ 159, 121, 211, 226, 103, 213, 167, 215, 372, 221,
|
|
+ 222, 28, 29, 30, 228, 373, 362, 258, 31, 223,
|
|
+ 239, 240, 385, 243, 244, 245, 246, 32, 260, 89,
|
|
+ 258, 33, 374, 34, 264, 35, 36, 272, 110, 160,
|
|
+ 207, 161, 111, 265, 277, 37, 38, 39, 40, 41,
|
|
+ 42, 43, 44, 332, 333, 45, 155, 46, 294, 295,
|
|
+ 168, 156, 291, 90, 91, 121, 47, 255, 181, 268,
|
|
+ 261, 48, 49, 50, 270, 51, 52, 271, 232, 233,
|
|
+ 92, 392, 53, 54, 375, 234, 292, 376, 280, 2,
|
|
+ 283, -6, 55, 3, 4, 5, 182, 183, 184, 185,
|
|
+ 112, 6, 7, 285, 186, 286, 299, 300, 8, 9,
|
|
+ 401, 93, 10, 310, 11, 406, 12, 13, 312, 247,
|
|
+ 14, 162, 311, 378, 408, 409, 410, 411, 412, 15,
|
|
+ 334, 121, 421, 16, 94, 95, 96, 248, 339, 17,
|
|
+ 335, 18, 249, 250, 367, 113, 369, 368, 379, 382,
|
|
+ 19, 20, 383, 114, 21, 22, 115, 386, 387, 23,
|
|
+ 24, 388, 301, 25, 26, 391, 395, 393, 397, 398,
|
|
+ 302, 402, 27, 303, 238, 259, 405, 407, 116, 418,
|
|
+ 420, 419, 279, 117, 269, 28, 29, 30, 313, 109,
|
|
+ 273, 257, 31, 408, 409, 410, 411, 412, 381, 284,
|
|
+ 262, 32, 416, 145, 363, 33, 315, 34, 390, 35,
|
|
+ 36, 304, 404, 417, 0, 0, 0, 0, 0, 37,
|
|
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 45,
|
|
+ 0, 46, 0, 340, 0, 0, 0, 0, 0, 0,
|
|
+ 47, 341, 305, 0, 0, 48, 49, 50, 2, 51,
|
|
+ 52, 0, 3, 4, 5, 0, 53, 54, 0, 0,
|
|
+ 6, 7, 0, 0, 0, -6, 55, 8, 9, 0,
|
|
+ 0, 10, 394, 11, 0, 12, 13, 342, 343, 14,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
|
|
+ 0, 0, 16, 0, 344, 0, 0, 0, 17, 0,
|
|
+ 18, 134, 135, 136, 137, 306, 0, 0, 0, 19,
|
|
+ 20, 0, 0, 21, 22, 0, 345, 0, 23, 24,
|
|
+ 0, 0, 25, 26, 346, 0, 347, 0, 0, 0,
|
|
+ 0, 27, 138, 0, 139, 0, 140, 0, 0, 0,
|
|
+ 348, 0, 141, 0, 28, 29, 30, 0, 0, 0,
|
|
+ 0, 31, 0, 0, 0, 0, 0, 349, 350, 190,
|
|
+ 32, 0, 0, 0, 33, 191, 34, 192, 35, 36,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 37, 38,
|
|
+ 39, 40, 41, 42, 43, 44, 0, 0, 45, 0,
|
|
+ 46, 0, 316, 351, 193, 352, 0, 0, 0, 47,
|
|
+ 317, 0, 0, 353, 48, 49, 50, 354, 51, 52,
|
|
+ 0, 0, 0, 0, 0, 53, 54, 0, 318, 319,
|
|
+ 0, 0, 320, 0, 0, 55, 0, 0, 321, 0,
|
|
+ 0, 0, 0, 0, 194, 0, 195, 0, 0, 0,
|
|
+ 0, 0, 196, 0, 197, 0, 0, 198, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 322, 323, 0, 0, 324,
|
|
+ 325, 0, 326, 327, 328, 0, 329, 0, 0, 199,
|
|
+ 200, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
- 0, 191, 0, 192, 0, 0, 0, 0, 0, 193,
|
|
- 0, 194, 0, 0, 195, 0, 0, 0, 0, 0,
|
|
- 0, 0, 0, 348, 0, 349, 0, 0, 0, 0,
|
|
- 350, 0, 0, 0, 351, 0, 196, 197
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 330
|
|
};
|
|
|
|
+#define yypact_value_is_default(Yystate) \
|
|
+ (!!((Yystate) == (-188)))
|
|
+
|
|
+#define yytable_value_is_error(Yytable_value) \
|
|
+ YYID (0)
|
|
+
|
|
static const yytype_int16 yycheck[] =
|
|
{
|
|
- 15, 39, 186, 5, 39, 61, 61, 159, 160, 45,
|
|
- 3, 62, 50, 57, 183, 20, 4, 201, 146, 24,
|
|
- 32, 188, 29, 34, 39, 8, 61, 61, 94, 12,
|
|
- 37, 198, 61, 40, 158, 18, 28, 158, 26, 66,
|
|
- 106, 68, 7, 8, 55, 60, 158, 62, 158, 61,
|
|
- 43, 44, 45, 46, 11, 185, 186, 27, 158, 51,
|
|
- 25, 61, 54, 65, 146, 67, 250, 158, 79, 158,
|
|
- 198, 78, 61, 42, 61, 158, 61, 82, 122, 1,
|
|
- 158, 132, 158, 0, 183, 61, 69, 158, 10, 158,
|
|
- 197, 32, 14, 15, 16, 61, 66, 158, 68, 64,
|
|
- 22, 23, 109, 185, 186, 61, 158, 29, 30, 261,
|
|
- 262, 33, 27, 35, 129, 37, 38, 105, 173, 41,
|
|
- 103, 104, 127, 27, 112, 86, 95, 142, 50, 94,
|
|
- 135, 158, 54, 138, 169, 171, 61, 120, 60, 195,
|
|
- 62, 129, 99, 61, 136, 137, 139, 104, 194, 71,
|
|
- 72, 143, 61, 75, 76, 160, 158, 183, 80, 81,
|
|
- 165, 61, 84, 85, 157, 172, 61, 158, 151, 162,
|
|
- 163, 93, 56, 57, 58, 59, 158, 179, 148, 331,
|
|
- 149, 365, 61, 158, 106, 107, 108, 158, 158, 36,
|
|
- 178, 113, 6, 181, 159, 194, 158, 183, 27, 164,
|
|
- 122, 61, 61, 87, 126, 89, 128, 91, 130, 131,
|
|
- 394, 158, 196, 97, 194, 399, 183, 31, 140, 141,
|
|
- 142, 143, 144, 145, 146, 147, 198, 265, 150, 197,
|
|
- 152, 194, 416, 187, 194, 49, 188, 183, 52, 161,
|
|
- 183, 194, 197, 183, 166, 167, 168, 101, 170, 171,
|
|
- 139, 248, 174, 175, 10, 166, 184, 12, 14, 15,
|
|
- 16, 183, 184, 126, 154, 29, 22, 23, 189, 190,
|
|
- 191, 192, 193, 29, 30, 205, 293, 33, 251, 35,
|
|
- 361, 37, 38, 396, 410, 41, -1, 189, 190, 191,
|
|
- 192, 193, -1, -1, 50, 333, 198, -1, 54, -1,
|
|
- -1, -1, -1, -1, 60, -1, 62, -1, -1, -1,
|
|
- -1, 125, -1, -1, -1, 71, 72, -1, -1, 75,
|
|
- 76, -1, -1, -1, 80, 81, -1, -1, 84, 85,
|
|
- -1, -1, -1, -1, -1, -1, -1, 93, -1, 153,
|
|
- 154, 155, 156, -1, -1, -1, -1, 161, -1, -1,
|
|
- 106, 107, 108, -1, -1, -1, -1, 113, -1, -1,
|
|
- -1, -1, -1, -1, -1, -1, 122, -1, -1, 384,
|
|
- 126, -1, 128, -1, 130, 131, -1, -1, -1, -1,
|
|
- -1, -1, -1, -1, 140, 141, 142, 143, 144, 145,
|
|
- 146, 147, -1, -1, 150, -1, 152, -1, -1, -1,
|
|
- -1, -1, -1, -1, -1, 161, -1, -1, -1, -1,
|
|
- 166, 167, 168, -1, 170, 171, -1, 10, 174, 175,
|
|
- -1, 14, 15, 16, -1, -1, -1, 183, 184, 22,
|
|
- 23, -1, -1, -1, -1, -1, 29, 30, 47, -1,
|
|
- 33, -1, 35, -1, 37, 38, 55, -1, 41, -1,
|
|
- -1, -1, -1, -1, -1, -1, -1, 50, -1, -1,
|
|
- -1, 54, -1, -1, 73, 74, -1, 60, 77, 62,
|
|
- -1, -1, -1, 9, 83, -1, -1, -1, 71, 72,
|
|
- -1, 17, 75, 76, -1, -1, -1, 80, 81, -1,
|
|
- -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
|
|
- 93, 110, 111, -1, -1, 114, 115, -1, 117, 118,
|
|
- 119, -1, 121, 106, 107, 108, -1, 53, 54, -1,
|
|
- 113, -1, -1, -1, -1, -1, -1, -1, -1, 122,
|
|
- -1, -1, -1, 126, 70, 128, 13, 130, 131, -1,
|
|
- -1, -1, 19, -1, 21, -1, -1, 140, 141, 142,
|
|
- 143, 144, 145, 146, 147, -1, 92, 150, -1, 152,
|
|
- -1, -1, -1, -1, 100, -1, 102, 176, 161, -1,
|
|
- -1, 48, -1, 166, 167, 168, -1, 170, 171, -1,
|
|
- 116, 174, 175, -1, -1, -1, -1, -1, -1, -1,
|
|
- -1, 184, -1, -1, -1, -1, -1, 133, 134, -1,
|
|
+ 15, 39, 189, 61, 7, 8, 1, 4, 45, 5,
|
|
+ 61, 11, 50, 191, 39, 10, 57, 204, 62, 14,
|
|
+ 15, 16, 25, 201, 39, 32, 186, 22, 23, 26,
|
|
+ 188, 189, 146, 61, 29, 30, 61, 61, 33, 158,
|
|
+ 35, 158, 37, 38, 97, 60, 41, 62, 158, 6,
|
|
+ 158, 162, 163, 42, 61, 50, 109, 158, 34, 54,
|
|
+ 61, 64, 158, 158, 158, 60, 253, 62, 8, 65,
|
|
+ 28, 67, 12, 66, 31, 68, 71, 72, 18, 55,
|
|
+ 75, 76, 61, 3, 125, 80, 81, 201, 132, 84,
|
|
+ 85, 94, 49, 51, 61, 52, 54, 158, 93, 99,
|
|
+ 27, 158, 61, 79, 104, 0, 95, 186, 105, 61,
|
|
+ 158, 106, 107, 108, 200, 112, 146, 132, 113, 158,
|
|
+ 61, 32, 173, 43, 44, 45, 46, 122, 61, 69,
|
|
+ 145, 126, 129, 128, 27, 130, 131, 174, 20, 66,
|
|
+ 198, 68, 24, 27, 169, 140, 141, 142, 143, 144,
|
|
+ 145, 146, 147, 264, 265, 150, 159, 152, 188, 189,
|
|
+ 149, 164, 158, 103, 104, 158, 161, 158, 125, 86,
|
|
+ 158, 166, 167, 168, 61, 170, 171, 197, 136, 137,
|
|
+ 120, 368, 177, 178, 181, 143, 182, 184, 61, 10,
|
|
+ 61, 186, 187, 14, 15, 16, 153, 154, 155, 156,
|
|
+ 82, 22, 23, 61, 161, 186, 61, 158, 29, 30,
|
|
+ 397, 151, 33, 158, 35, 402, 37, 38, 61, 139,
|
|
+ 41, 148, 158, 334, 192, 193, 194, 195, 196, 50,
|
|
+ 268, 158, 419, 54, 174, 175, 176, 157, 36, 60,
|
|
+ 158, 62, 162, 163, 186, 127, 158, 197, 27, 61,
|
|
+ 71, 72, 61, 135, 75, 76, 138, 158, 197, 80,
|
|
+ 81, 186, 29, 84, 85, 200, 190, 199, 197, 191,
|
|
+ 37, 197, 93, 40, 104, 142, 186, 200, 160, 186,
|
|
+ 186, 197, 201, 165, 169, 106, 107, 108, 251, 12,
|
|
+ 187, 129, 113, 192, 193, 194, 195, 196, 336, 208,
|
|
+ 157, 122, 201, 29, 296, 126, 254, 128, 364, 130,
|
|
+ 131, 78, 399, 413, -1, -1, -1, -1, -1, 140,
|
|
+ 141, 142, 143, 144, 145, 146, 147, -1, -1, 150,
|
|
+ -1, 152, -1, 9, -1, -1, -1, -1, -1, -1,
|
|
+ 161, 17, 109, -1, -1, 166, 167, 168, 10, 170,
|
|
+ 171, -1, 14, 15, 16, -1, 177, 178, -1, -1,
|
|
+ 22, 23, -1, -1, -1, 186, 187, 29, 30, -1,
|
|
+ -1, 33, 387, 35, -1, 37, 38, 53, 54, 41,
|
|
+ -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
|
|
+ -1, -1, 54, -1, 70, -1, -1, -1, 60, -1,
|
|
+ 62, 56, 57, 58, 59, 172, -1, -1, -1, 71,
|
|
+ 72, -1, -1, 75, 76, -1, 92, -1, 80, 81,
|
|
+ -1, -1, 84, 85, 100, -1, 102, -1, -1, -1,
|
|
+ -1, 93, 87, -1, 89, -1, 91, -1, -1, -1,
|
|
+ 116, -1, 97, -1, 106, 107, 108, -1, -1, -1,
|
|
+ -1, 113, -1, -1, -1, -1, -1, 133, 134, 13,
|
|
+ 122, -1, -1, -1, 126, 19, 128, 21, 130, 131,
|
|
+ -1, -1, -1, -1, -1, -1, -1, -1, 140, 141,
|
|
+ 142, 143, 144, 145, 146, 147, -1, -1, 150, -1,
|
|
+ 152, -1, 47, 169, 48, 171, -1, -1, -1, 161,
|
|
+ 55, -1, -1, 179, 166, 167, 168, 183, 170, 171,
|
|
+ -1, -1, -1, -1, -1, 177, 178, -1, 73, 74,
|
|
+ -1, -1, 77, -1, -1, 187, -1, -1, 83, -1,
|
|
+ -1, -1, -1, -1, 88, -1, 90, -1, -1, -1,
|
|
+ -1, -1, 96, -1, 98, -1, -1, 101, -1, -1,
|
|
+ -1, -1, -1, -1, -1, 110, 111, -1, -1, 114,
|
|
+ 115, -1, 117, 118, 119, -1, 121, -1, -1, 123,
|
|
+ 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
- -1, 88, -1, 90, -1, -1, -1, -1, -1, 96,
|
|
- -1, 98, -1, -1, 101, -1, -1, -1, -1, -1,
|
|
- -1, -1, -1, 169, -1, 171, -1, -1, -1, -1,
|
|
- 176, -1, -1, -1, 180, -1, 123, 124
|
|
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
+ -1, -1, -1, -1, 179
|
|
};
|
|
|
|
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
|
- symbol of state STATE-NUM. */
|
|
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
|
+ symbol of state STATE-NUM. */
|
|
static const yytype_uint16 yystos[] =
|
|
{
|
|
0, 1, 10, 14, 15, 16, 22, 23, 29, 30,
|
|
@@ -1302,130 +1504,71 @@ static const yytype_uint16 yystos[] =
|
|
72, 75, 76, 80, 81, 84, 85, 93, 106, 107,
|
|
108, 113, 122, 126, 128, 130, 131, 140, 141, 142,
|
|
143, 144, 145, 146, 147, 150, 152, 161, 166, 167,
|
|
- 168, 170, 171, 174, 175, 184, 200, 201, 202, 203,
|
|
- 204, 216, 217, 218, 219, 223, 228, 236, 245, 250,
|
|
- 254, 259, 263, 264, 265, 266, 267, 275, 276, 279,
|
|
- 290, 291, 183, 61, 61, 220, 8, 12, 18, 69,
|
|
- 103, 104, 120, 151, 255, 256, 257, 258, 11, 99,
|
|
- 104, 239, 240, 241, 158, 268, 255, 20, 24, 82,
|
|
- 127, 135, 138, 160, 165, 230, 66, 68, 158, 205,
|
|
- 206, 207, 158, 158, 158, 158, 273, 274, 205, 287,
|
|
- 61, 56, 57, 58, 59, 87, 89, 91, 97, 242,
|
|
- 243, 244, 287, 158, 158, 286, 61, 7, 8, 25,
|
|
- 64, 94, 159, 164, 280, 281, 27, 66, 68, 148,
|
|
- 205, 206, 61, 42, 95, 149, 251, 252, 253, 158,
|
|
- 269, 229, 230, 158, 6, 31, 49, 52, 125, 153,
|
|
- 154, 155, 156, 161, 260, 261, 262, 13, 19, 21,
|
|
- 48, 88, 90, 96, 98, 101, 123, 124, 224, 225,
|
|
- 226, 227, 206, 61, 195, 283, 284, 285, 61, 282,
|
|
- 0, 202, 183, 205, 205, 32, 61, 289, 61, 158,
|
|
- 158, 34, 55, 79, 278, 197, 28, 51, 54, 136,
|
|
- 137, 143, 221, 222, 256, 240, 61, 32, 231, 3,
|
|
- 43, 44, 45, 46, 139, 157, 162, 163, 246, 247,
|
|
- 248, 249, 158, 202, 274, 205, 243, 61, 158, 281,
|
|
- 237, 27, 27, 237, 237, 86, 252, 61, 194, 230,
|
|
- 261, 289, 39, 61, 169, 288, 225, 61, 289, 271,
|
|
- 61, 284, 61, 183, 208, 5, 65, 67, 158, 179,
|
|
- 277, 185, 186, 292, 293, 294, 61, 158, 29, 37,
|
|
- 40, 78, 109, 172, 232, 233, 234, 158, 158, 61,
|
|
- 247, 289, 288, 47, 55, 73, 74, 77, 83, 110,
|
|
- 111, 114, 115, 117, 118, 119, 121, 176, 238, 237,
|
|
- 237, 206, 158, 62, 132, 272, 36, 9, 17, 53,
|
|
- 54, 70, 92, 100, 102, 116, 133, 134, 169, 171,
|
|
- 176, 180, 209, 210, 211, 212, 213, 214, 215, 146,
|
|
- 293, 295, 296, 298, 183, 194, 158, 4, 26, 105,
|
|
- 112, 129, 178, 181, 235, 237, 27, 270, 206, 61,
|
|
- 61, 61, 173, 158, 194, 183, 198, 296, 197, 289,
|
|
- 196, 205, 187, 297, 194, 188, 299, 300, 289, 194,
|
|
- 198, 300, 183, 289, 197, 189, 190, 191, 192, 193,
|
|
- 301, 302, 303, 198, 302, 183, 194, 183, 289
|
|
+ 168, 170, 171, 177, 178, 187, 203, 204, 205, 206,
|
|
+ 207, 219, 220, 221, 222, 226, 231, 239, 248, 253,
|
|
+ 257, 262, 266, 267, 268, 269, 270, 278, 279, 282,
|
|
+ 293, 294, 186, 61, 61, 223, 8, 12, 18, 69,
|
|
+ 103, 104, 120, 151, 174, 175, 176, 258, 259, 260,
|
|
+ 261, 11, 99, 104, 242, 243, 244, 158, 271, 258,
|
|
+ 20, 24, 82, 127, 135, 138, 160, 165, 233, 66,
|
|
+ 68, 158, 208, 209, 210, 158, 158, 158, 158, 276,
|
|
+ 277, 208, 290, 61, 56, 57, 58, 59, 87, 89,
|
|
+ 91, 97, 245, 246, 247, 290, 158, 158, 289, 61,
|
|
+ 7, 8, 25, 64, 94, 159, 164, 283, 284, 27,
|
|
+ 66, 68, 148, 208, 209, 61, 42, 95, 149, 254,
|
|
+ 255, 256, 158, 272, 232, 233, 158, 6, 31, 49,
|
|
+ 52, 125, 153, 154, 155, 156, 161, 263, 264, 265,
|
|
+ 13, 19, 21, 48, 88, 90, 96, 98, 101, 123,
|
|
+ 124, 227, 228, 229, 230, 209, 61, 198, 286, 287,
|
|
+ 288, 61, 285, 0, 205, 186, 208, 208, 32, 61,
|
|
+ 292, 61, 158, 158, 34, 55, 79, 281, 200, 28,
|
|
+ 51, 54, 136, 137, 143, 224, 225, 259, 243, 61,
|
|
+ 32, 234, 3, 43, 44, 45, 46, 139, 157, 162,
|
|
+ 163, 249, 250, 251, 252, 158, 205, 277, 208, 246,
|
|
+ 61, 158, 284, 240, 27, 27, 240, 240, 86, 255,
|
|
+ 61, 197, 233, 264, 292, 39, 61, 169, 291, 228,
|
|
+ 61, 292, 274, 61, 287, 61, 186, 211, 5, 65,
|
|
+ 67, 158, 182, 280, 188, 189, 295, 296, 297, 61,
|
|
+ 158, 29, 37, 40, 78, 109, 172, 235, 236, 237,
|
|
+ 158, 158, 61, 250, 292, 291, 47, 55, 73, 74,
|
|
+ 77, 83, 110, 111, 114, 115, 117, 118, 119, 121,
|
|
+ 179, 241, 240, 240, 209, 158, 62, 132, 275, 36,
|
|
+ 9, 17, 53, 54, 70, 92, 100, 102, 116, 133,
|
|
+ 134, 169, 171, 179, 183, 212, 213, 214, 215, 216,
|
|
+ 217, 218, 146, 296, 298, 299, 301, 186, 197, 158,
|
|
+ 4, 26, 105, 112, 129, 181, 184, 238, 240, 27,
|
|
+ 273, 209, 61, 61, 61, 173, 158, 197, 186, 201,
|
|
+ 299, 200, 292, 199, 208, 190, 300, 197, 191, 302,
|
|
+ 303, 292, 197, 201, 303, 186, 292, 200, 192, 193,
|
|
+ 194, 195, 196, 304, 305, 306, 201, 305, 186, 197,
|
|
+ 186, 292
|
|
};
|
|
|
|
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
|
-static const yytype_uint16 yyr1[] =
|
|
-{
|
|
- 0, 199, 200, 201, 201, 201, 202, 202, 202, 202,
|
|
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
|
|
- 203, 204, 204, 204, 204, 204, 205, 205, 206, 207,
|
|
- 207, 208, 208, 209, 209, 209, 210, 211, 211, 211,
|
|
- 211, 211, 211, 211, 211, 212, 212, 213, 213, 213,
|
|
- 213, 213, 213, 214, 215, 216, 217, 217, 218, 218,
|
|
- 218, 218, 219, 219, 219, 219, 219, 219, 219, 219,
|
|
- 219, 220, 220, 221, 221, 222, 222, 222, 222, 222,
|
|
- 223, 224, 224, 225, 225, 225, 226, 226, 226, 226,
|
|
- 226, 226, 227, 227, 227, 227, 228, 228, 228, 229,
|
|
- 229, 230, 230, 230, 230, 230, 230, 230, 230, 231,
|
|
- 231, 232, 232, 232, 232, 233, 233, 234, 234, 235,
|
|
- 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
|
|
- 236, 236, 236, 236, 237, 237, 238, 238, 238, 238,
|
|
- 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
|
|
- 238, 239, 239, 240, 241, 241, 241, 242, 242, 243,
|
|
- 244, 244, 244, 244, 244, 244, 244, 244, 245, 246,
|
|
- 246, 247, 247, 247, 247, 247, 248, 248, 249, 249,
|
|
- 249, 249, 250, 251, 251, 252, 253, 253, 253, 254,
|
|
- 254, 255, 255, 256, 256, 257, 257, 257, 257, 257,
|
|
- 257, 258, 258, 259, 260, 260, 261, 262, 262, 262,
|
|
- 262, 262, 262, 262, 262, 262, 262, 263, 263, 263,
|
|
- 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
|
|
- 263, 264, 264, 264, 265, 265, 266, 266, 267, 267,
|
|
- 267, 268, 268, 268, 269, 270, 270, 271, 271, 272,
|
|
- 272, 273, 273, 274, 275, 275, 276, 276, 277, 277,
|
|
- 277, 277, 278, 278, 278, 279, 280, 280, 281, 281,
|
|
- 281, 281, 281, 281, 281, 282, 282, 283, 283, 284,
|
|
- 284, 285, 286, 286, 287, 287, 288, 288, 288, 289,
|
|
- 289, 290, 291, 292, 292, 293, 294, 294, 295, 295,
|
|
- 296, 297, 298, 299, 299, 300, 301, 301, 302, 303,
|
|
- 303, 303, 303, 303
|
|
-};
|
|
+#define yyerrok (yyerrstatus = 0)
|
|
+#define yyclearin (yychar = YYEMPTY)
|
|
+#define YYEMPTY (-2)
|
|
+#define YYEOF 0
|
|
|
|
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
|
|
-static const yytype_uint8 yyr2[] =
|
|
-{
|
|
- 0, 2, 1, 3, 2, 2, 0, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 3, 1, 1, 1, 1, 1, 1, 2, 1, 1,
|
|
- 1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
|
|
- 1, 1, 1, 2, 1, 2, 1, 1, 1, 2,
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 0, 2, 2, 2, 1, 1, 1, 1, 1,
|
|
- 2, 2, 1, 2, 2, 2, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 2, 2, 3, 2,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
|
|
- 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 2, 2, 3, 5,
|
|
- 3, 4, 4, 3, 0, 2, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 2, 1, 2, 1, 1, 1, 2, 1, 2,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
|
|
- 1, 2, 2, 2, 2, 2, 1, 1, 1, 1,
|
|
- 1, 1, 2, 2, 1, 2, 1, 1, 1, 2,
|
|
- 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 2, 2, 1, 2, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
|
- 2, 2, 2, 3, 1, 2, 2, 2, 2, 3,
|
|
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 2, 0, 4, 1, 0, 0, 2, 2,
|
|
- 2, 2, 1, 1, 3, 3, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 2, 1, 2, 1, 1,
|
|
- 1, 5, 2, 1, 2, 1, 1, 1, 1, 1,
|
|
- 1, 5, 1, 3, 2, 3, 1, 1, 2, 1,
|
|
- 5, 4, 3, 2, 1, 6, 3, 2, 3, 1,
|
|
- 1, 1, 1, 1
|
|
-};
|
|
+#define YYACCEPT goto yyacceptlab
|
|
+#define YYABORT goto yyabortlab
|
|
+#define YYERROR goto yyerrorlab
|
|
|
|
|
|
-#define yyerrok (yyerrstatus = 0)
|
|
-#define yyclearin (yychar = YYEMPTY)
|
|
-#define YYEMPTY (-2)
|
|
-#define YYEOF 0
|
|
+/* Like YYERROR except do call yyerror. This remains here temporarily
|
|
+ to ease the transition to the new meaning of YYERROR, for GCC.
|
|
+ Once GCC version 2 has supplanted version 1, this can go. However,
|
|
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
|
|
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
|
|
+ discussed. */
|
|
|
|
-#define YYACCEPT goto yyacceptlab
|
|
-#define YYABORT goto yyabortlab
|
|
-#define YYERROR goto yyerrorlab
|
|
+#define YYFAIL goto yyerrlab
|
|
+#if defined YYFAIL
|
|
+ /* This is here to suppress warnings from the GCC cpp's
|
|
+ -Wunused-macros. Normally we don't worry about that warning, but
|
|
+ some users do, and we want to make it easy for users to remove
|
|
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
|
|
+#endif
|
|
|
|
-
|
|
#define YYRECOVERING() (!!yyerrstatus)
|
|
|
|
#define YYBACKUP(Token, Value) \
|
|
@@ -1441,16 +1584,28 @@ do
|
|
else \
|
|
{ \
|
|
yyerror (YY_("syntax error: cannot back up")); \
|
|
- YYERROR; \
|
|
- } \
|
|
-while (0)
|
|
+ YYERROR; \
|
|
+ } \
|
|
+while (YYID (0))
|
|
|
|
/* Error token number */
|
|
-#define YYTERROR 1
|
|
-#define YYERRCODE 256
|
|
+#define YYTERROR 1
|
|
+#define YYERRCODE 256
|
|
|
|
|
|
+/* This macro is provided for backward compatibility. */
|
|
+#ifndef YY_LOCATION_PRINT
|
|
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
|
|
+#endif
|
|
|
|
+
|
|
+/* YYLEX -- calling `yylex' with the right arguments. */
|
|
+#ifdef YYLEX_PARAM
|
|
+# define YYLEX yylex (YYLEX_PARAM)
|
|
+#else
|
|
+# define YYLEX yylex ()
|
|
+#endif
|
|
+
|
|
/* Enable debugging if requested. */
|
|
#if YYDEBUG
|
|
|
|
@@ -1459,36 +1614,40 @@ do
|
|
# define YYFPRINTF fprintf
|
|
# endif
|
|
|
|
-# define YYDPRINTF(Args) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- YYFPRINTF Args; \
|
|
-} while (0)
|
|
+# define YYDPRINTF(Args) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ YYFPRINTF Args; \
|
|
+} while (YYID (0))
|
|
|
|
-/* This macro is provided for backward compatibility. */
|
|
-#ifndef YY_LOCATION_PRINT
|
|
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
|
|
-#endif
|
|
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ { \
|
|
+ YYFPRINTF (stderr, "%s ", Title); \
|
|
+ yy_symbol_print (stderr, \
|
|
+ Type, Value); \
|
|
+ YYFPRINTF (stderr, "\n"); \
|
|
+ } \
|
|
+} while (YYID (0))
|
|
|
|
|
|
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- { \
|
|
- YYFPRINTF (stderr, "%s ", Title); \
|
|
- yy_symbol_print (stderr, \
|
|
- Type, Value); \
|
|
- YYFPRINTF (stderr, "\n"); \
|
|
- } \
|
|
-} while (0)
|
|
+/*--------------------------------.
|
|
+| Print this symbol on YYOUTPUT. |
|
|
+`--------------------------------*/
|
|
|
|
-
|
|
-/*----------------------------------------.
|
|
-| Print this symbol's value on YYOUTPUT. |
|
|
-`----------------------------------------*/
|
|
-
|
|
+/*ARGSUSED*/
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
|
|
+#else
|
|
+static void
|
|
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
|
|
+ FILE *yyoutput;
|
|
+ int yytype;
|
|
+ YYSTYPE const * const yyvaluep;
|
|
+#endif
|
|
{
|
|
FILE *yyo = yyoutput;
|
|
YYUSE (yyo);
|
|
@@ -1497,6 +1656,8 @@ yy_symbol_value_print (FILE *yyoutput, int yytype,
|
|
# ifdef YYPRINT
|
|
if (yytype < YYNTOKENS)
|
|
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
|
|
+# else
|
|
+ YYUSE (yyoutput);
|
|
# endif
|
|
YYUSE (yytype);
|
|
}
|
|
@@ -1506,11 +1667,22 @@ yy_symbol_value_print (FILE *yyoutput, int yytype,
|
|
| Print this symbol on YYOUTPUT. |
|
|
`--------------------------------*/
|
|
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
|
|
+#else
|
|
+static void
|
|
+yy_symbol_print (yyoutput, yytype, yyvaluep)
|
|
+ FILE *yyoutput;
|
|
+ int yytype;
|
|
+ YYSTYPE const * const yyvaluep;
|
|
+#endif
|
|
{
|
|
- YYFPRINTF (yyoutput, "%s %s (",
|
|
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
|
|
+ if (yytype < YYNTOKENS)
|
|
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
|
|
+ else
|
|
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
|
|
|
|
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
|
|
YYFPRINTF (yyoutput, ")");
|
|
@@ -1521,8 +1693,16 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTY
|
|
| TOP (included). |
|
|
`------------------------------------------------------------------*/
|
|
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
|
|
+#else
|
|
+static void
|
|
+yy_stack_print (yybottom, yytop)
|
|
+ yytype_int16 *yybottom;
|
|
+ yytype_int16 *yytop;
|
|
+#endif
|
|
{
|
|
YYFPRINTF (stderr, "Stack now");
|
|
for (; yybottom <= yytop; yybottom++)
|
|
@@ -1533,11 +1713,11 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int
|
|
YYFPRINTF (stderr, "\n");
|
|
}
|
|
|
|
-# define YY_STACK_PRINT(Bottom, Top) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- yy_stack_print ((Bottom), (Top)); \
|
|
-} while (0)
|
|
+# define YY_STACK_PRINT(Bottom, Top) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ yy_stack_print ((Bottom), (Top)); \
|
|
+} while (YYID (0))
|
|
|
|
|
|
/*------------------------------------------------.
|
|
@@ -1544,31 +1724,38 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int
|
|
| Report that the YYRULE is going to be reduced. |
|
|
`------------------------------------------------*/
|
|
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
|
|
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
|
|
+#else
|
|
+static void
|
|
+yy_reduce_print (yyvsp, yyrule)
|
|
+ YYSTYPE *yyvsp;
|
|
+ int yyrule;
|
|
+#endif
|
|
{
|
|
- unsigned long int yylno = yyrline[yyrule];
|
|
int yynrhs = yyr2[yyrule];
|
|
int yyi;
|
|
+ unsigned long int yylno = yyrline[yyrule];
|
|
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
|
|
- yyrule - 1, yylno);
|
|
+ yyrule - 1, yylno);
|
|
/* The symbols being reduced. */
|
|
for (yyi = 0; yyi < yynrhs; yyi++)
|
|
{
|
|
YYFPRINTF (stderr, " $%d = ", yyi + 1);
|
|
- yy_symbol_print (stderr,
|
|
- yystos[yyssp[yyi + 1 - yynrhs]],
|
|
- &(yyvsp[(yyi + 1) - (yynrhs)])
|
|
- );
|
|
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
|
|
+ &(yyvsp[(yyi + 1) - (yynrhs)])
|
|
+ );
|
|
YYFPRINTF (stderr, "\n");
|
|
}
|
|
}
|
|
|
|
-# define YY_REDUCE_PRINT(Rule) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- yy_reduce_print (yyssp, yyvsp, Rule); \
|
|
-} while (0)
|
|
+# define YY_REDUCE_PRINT(Rule) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ yy_reduce_print (yyvsp, Rule); \
|
|
+} while (YYID (0))
|
|
|
|
/* Nonzero means print parse trace. It is left uninitialized so that
|
|
multiple parsers can coexist. */
|
|
@@ -1582,7 +1769,7 @@ int yydebug;
|
|
|
|
|
|
/* YYINITDEPTH -- initial size of the parser's stacks. */
|
|
-#ifndef YYINITDEPTH
|
|
+#ifndef YYINITDEPTH
|
|
# define YYINITDEPTH 200
|
|
#endif
|
|
|
|
@@ -1605,8 +1792,15 @@ int yydebug;
|
|
# define yystrlen strlen
|
|
# else
|
|
/* Return the length of YYSTR. */
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static YYSIZE_T
|
|
yystrlen (const char *yystr)
|
|
+#else
|
|
+static YYSIZE_T
|
|
+yystrlen (yystr)
|
|
+ const char *yystr;
|
|
+#endif
|
|
{
|
|
YYSIZE_T yylen;
|
|
for (yylen = 0; yystr[yylen]; yylen++)
|
|
@@ -1622,8 +1816,16 @@ yystrlen (const char *yystr)
|
|
# else
|
|
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
|
|
YYDEST. */
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static char *
|
|
yystpcpy (char *yydest, const char *yysrc)
|
|
+#else
|
|
+static char *
|
|
+yystpcpy (yydest, yysrc)
|
|
+ char *yydest;
|
|
+ const char *yysrc;
|
|
+#endif
|
|
{
|
|
char *yyd = yydest;
|
|
const char *yys = yysrc;
|
|
@@ -1653,27 +1855,27 @@ yytnamerr (char *yyres, const char *yystr)
|
|
char const *yyp = yystr;
|
|
|
|
for (;;)
|
|
- switch (*++yyp)
|
|
- {
|
|
- case '\'':
|
|
- case ',':
|
|
- goto do_not_strip_quotes;
|
|
+ switch (*++yyp)
|
|
+ {
|
|
+ case '\'':
|
|
+ case ',':
|
|
+ goto do_not_strip_quotes;
|
|
|
|
- case '\\':
|
|
- if (*++yyp != '\\')
|
|
- goto do_not_strip_quotes;
|
|
- /* Fall through. */
|
|
- default:
|
|
- if (yyres)
|
|
- yyres[yyn] = *yyp;
|
|
- yyn++;
|
|
- break;
|
|
+ case '\\':
|
|
+ if (*++yyp != '\\')
|
|
+ goto do_not_strip_quotes;
|
|
+ /* Fall through. */
|
|
+ default:
|
|
+ if (yyres)
|
|
+ yyres[yyn] = *yyp;
|
|
+ yyn++;
|
|
+ break;
|
|
|
|
- case '"':
|
|
- if (yyres)
|
|
- yyres[yyn] = '\0';
|
|
- return yyn;
|
|
- }
|
|
+ case '"':
|
|
+ if (yyres)
|
|
+ yyres[yyn] = '\0';
|
|
+ return yyn;
|
|
+ }
|
|
do_not_strip_quotes: ;
|
|
}
|
|
|
|
@@ -1696,11 +1898,11 @@ static int
|
|
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
|
|
yytype_int16 *yyssp, int yytoken)
|
|
{
|
|
- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
|
|
+ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
|
|
YYSIZE_T yysize = yysize0;
|
|
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
|
|
/* Internationalized format string. */
|
|
- const char *yyformat = YY_NULLPTR;
|
|
+ const char *yyformat = YY_NULL;
|
|
/* Arguments of yyformat. */
|
|
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
|
|
/* Number of reported tokens (one for the "unexpected", one per
|
|
@@ -1708,6 +1910,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yyms
|
|
int yycount = 0;
|
|
|
|
/* There are many possibilities here to consider:
|
|
+ - Assume YYFAIL is not used. It's too flawed to consider. See
|
|
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
|
|
+ for details. YYERROR is fine as it does not invoke this
|
|
+ function.
|
|
- If this state is a consistent state with a default action, then
|
|
the only way this function was invoked is if the default action
|
|
is an error action. In that case, don't check for expected
|
|
@@ -1757,7 +1963,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yyms
|
|
}
|
|
yyarg[yycount++] = yytname[yyx];
|
|
{
|
|
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
|
|
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
|
|
if (! (yysize <= yysize1
|
|
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
|
|
return 2;
|
|
@@ -1824,17 +2030,26 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yyms
|
|
| Release the memory associated to this symbol. |
|
|
`-----------------------------------------------*/
|
|
|
|
+/*ARGSUSED*/
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
|
|
+#else
|
|
+static void
|
|
+yydestruct (yymsg, yytype, yyvaluep)
|
|
+ const char *yymsg;
|
|
+ int yytype;
|
|
+ YYSTYPE *yyvaluep;
|
|
+#endif
|
|
{
|
|
YYUSE (yyvaluep);
|
|
+
|
|
if (!yymsg)
|
|
yymsg = "Deleting";
|
|
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
|
|
|
|
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
YYUSE (yytype);
|
|
- YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
}
|
|
|
|
|
|
@@ -1843,8 +2058,18 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE
|
|
/* The lookahead symbol. */
|
|
int yychar;
|
|
|
|
+
|
|
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
+#endif
|
|
+#ifndef YY_INITIAL_VALUE
|
|
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
|
|
+#endif
|
|
+
|
|
/* The semantic value of the lookahead symbol. */
|
|
-YYSTYPE yylval;
|
|
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
|
|
+
|
|
/* Number of syntax errors so far. */
|
|
int yynerrs;
|
|
|
|
@@ -1853,8 +2078,27 @@ int yynerrs;
|
|
| yyparse. |
|
|
`----------*/
|
|
|
|
+#ifdef YYPARSE_PARAM
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
int
|
|
+yyparse (void *YYPARSE_PARAM)
|
|
+#else
|
|
+int
|
|
+yyparse (YYPARSE_PARAM)
|
|
+ void *YYPARSE_PARAM;
|
|
+#endif
|
|
+#else /* ! YYPARSE_PARAM */
|
|
+#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
+ || defined __cplusplus || defined _MSC_VER)
|
|
+int
|
|
yyparse (void)
|
|
+#else
|
|
+int
|
|
+yyparse ()
|
|
+
|
|
+#endif
|
|
+#endif
|
|
{
|
|
int yystate;
|
|
/* Number of tokens to shift before error messages enabled. */
|
|
@@ -1861,8 +2105,8 @@ yyparse (void)
|
|
int yyerrstatus;
|
|
|
|
/* The stacks and their tools:
|
|
- 'yyss': related to states.
|
|
- 'yyvs': related to semantic values.
|
|
+ `yyss': related to states.
|
|
+ `yyvs': related to semantic values.
|
|
|
|
Refer to the stacks through separate pointers, to allow yyoverflow
|
|
to reallocate them elsewhere. */
|
|
@@ -1930,23 +2174,23 @@ yyparse (void)
|
|
|
|
#ifdef yyoverflow
|
|
{
|
|
- /* Give user a chance to reallocate the stack. Use copies of
|
|
- these so that the &'s don't force the real ones into
|
|
- memory. */
|
|
- YYSTYPE *yyvs1 = yyvs;
|
|
- yytype_int16 *yyss1 = yyss;
|
|
+ /* Give user a chance to reallocate the stack. Use copies of
|
|
+ these so that the &'s don't force the real ones into
|
|
+ memory. */
|
|
+ YYSTYPE *yyvs1 = yyvs;
|
|
+ yytype_int16 *yyss1 = yyss;
|
|
|
|
- /* Each stack pointer address is followed by the size of the
|
|
- data in use in that stack, in bytes. This used to be a
|
|
- conditional around just the two extra args, but that might
|
|
- be undefined if yyoverflow is a macro. */
|
|
- yyoverflow (YY_("memory exhausted"),
|
|
- &yyss1, yysize * sizeof (*yyssp),
|
|
- &yyvs1, yysize * sizeof (*yyvsp),
|
|
- &yystacksize);
|
|
+ /* Each stack pointer address is followed by the size of the
|
|
+ data in use in that stack, in bytes. This used to be a
|
|
+ conditional around just the two extra args, but that might
|
|
+ be undefined if yyoverflow is a macro. */
|
|
+ yyoverflow (YY_("memory exhausted"),
|
|
+ &yyss1, yysize * sizeof (*yyssp),
|
|
+ &yyvs1, yysize * sizeof (*yyvsp),
|
|
+ &yystacksize);
|
|
|
|
- yyss = yyss1;
|
|
- yyvs = yyvs1;
|
|
+ yyss = yyss1;
|
|
+ yyvs = yyvs1;
|
|
}
|
|
#else /* no yyoverflow */
|
|
# ifndef YYSTACK_RELOCATE
|
|
@@ -1954,22 +2198,22 @@ yyparse (void)
|
|
# else
|
|
/* Extend the stack our own way. */
|
|
if (YYMAXDEPTH <= yystacksize)
|
|
- goto yyexhaustedlab;
|
|
+ goto yyexhaustedlab;
|
|
yystacksize *= 2;
|
|
if (YYMAXDEPTH < yystacksize)
|
|
- yystacksize = YYMAXDEPTH;
|
|
+ yystacksize = YYMAXDEPTH;
|
|
|
|
{
|
|
- yytype_int16 *yyss1 = yyss;
|
|
- union yyalloc *yyptr =
|
|
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
|
- if (! yyptr)
|
|
- goto yyexhaustedlab;
|
|
- YYSTACK_RELOCATE (yyss_alloc, yyss);
|
|
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
|
|
+ yytype_int16 *yyss1 = yyss;
|
|
+ union yyalloc *yyptr =
|
|
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
|
+ if (! yyptr)
|
|
+ goto yyexhaustedlab;
|
|
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
|
|
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
|
|
# undef YYSTACK_RELOCATE
|
|
- if (yyss1 != yyssa)
|
|
- YYSTACK_FREE (yyss1);
|
|
+ if (yyss1 != yyssa)
|
|
+ YYSTACK_FREE (yyss1);
|
|
}
|
|
# endif
|
|
#endif /* no yyoverflow */
|
|
@@ -1978,10 +2222,10 @@ yyparse (void)
|
|
yyvsp = yyvs + yysize - 1;
|
|
|
|
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
|
- (unsigned long int) yystacksize));
|
|
+ (unsigned long int) yystacksize));
|
|
|
|
if (yyss + yystacksize - 1 <= yyssp)
|
|
- YYABORT;
|
|
+ YYABORT;
|
|
}
|
|
|
|
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
|
@@ -2010,7 +2254,7 @@ yybackup:
|
|
if (yychar == YYEMPTY)
|
|
{
|
|
YYDPRINTF ((stderr, "Reading a token: "));
|
|
- yychar = yylex ();
|
|
+ yychar = YYLEX;
|
|
}
|
|
|
|
if (yychar <= YYEOF)
|
|
@@ -2075,7 +2319,7 @@ yyreduce:
|
|
yylen = yyr2[yyn];
|
|
|
|
/* If YYLEN is nonzero, implement the default value of the action:
|
|
- '$$ = $1'.
|
|
+ `$$ = $1'.
|
|
|
|
Otherwise, the following line sets YYVAL to garbage.
|
|
This behavior is undocumented and Bison
|
|
@@ -2089,7 +2333,8 @@ yyreduce:
|
|
switch (yyn)
|
|
{
|
|
case 5:
|
|
-#line 373 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 376 "../../ntpd/ntp_parser.y"
|
|
{
|
|
/* I will need to incorporate much more fine grained
|
|
* error messages. The following should suffice for
|
|
@@ -2102,173 +2347,173 @@ yyreduce:
|
|
ip_ctx->errpos.nline,
|
|
ip_ctx->errpos.ncol);
|
|
}
|
|
-#line 2106 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 20:
|
|
-#line 409 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 412 "../../ntpd/ntp_parser.y"
|
|
{
|
|
peer_node *my_node;
|
|
|
|
- my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
|
|
+ my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
|
|
APPEND_G_FIFO(cfgt.peers, my_node);
|
|
}
|
|
-#line 2117 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 27:
|
|
-#line 428 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
|
|
-#line 2123 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 431 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), (yyvsp[(1) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 28:
|
|
-#line 433 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
|
|
-#line 2129 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 436 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); }
|
|
break;
|
|
|
|
case 29:
|
|
-#line 438 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 441 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Integer) = AF_INET; }
|
|
-#line 2135 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 30:
|
|
-#line 440 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 443 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Integer) = AF_INET6; }
|
|
-#line 2141 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 31:
|
|
-#line 445 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 448 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Attr_val_fifo) = NULL; }
|
|
-#line 2147 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 32:
|
|
-#line 447 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 450 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2156 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 36:
|
|
-#line 461 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
|
|
-#line 2162 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 464 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
|
|
break;
|
|
|
|
case 45:
|
|
-#line 477 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2168 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 480 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 46:
|
|
-#line 479 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2174 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 482 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_uval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 53:
|
|
-#line 493 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
|
|
-#line 2180 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 496 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
|
|
break;
|
|
|
|
case 55:
|
|
-#line 507 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 510 "../../ntpd/ntp_parser.y"
|
|
{
|
|
unpeer_node *my_node;
|
|
|
|
- my_node = create_unpeer_node((yyvsp[0].Address_node));
|
|
+ my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node));
|
|
if (my_node)
|
|
APPEND_G_FIFO(cfgt.unpeers, my_node);
|
|
}
|
|
-#line 2192 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 58:
|
|
-#line 528 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 531 "../../ntpd/ntp_parser.y"
|
|
{ cfgt.broadcastclient = 1; }
|
|
-#line 2198 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 59:
|
|
-#line 530 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
|
|
-#line 2204 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 533 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[(2) - (2)].Address_fifo)); }
|
|
break;
|
|
|
|
case 60:
|
|
-#line 532 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
|
|
-#line 2210 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 535 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[(2) - (2)].Address_fifo)); }
|
|
break;
|
|
|
|
case 61:
|
|
-#line 534 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.mdnstries = (yyvsp[0].Integer); }
|
|
-#line 2216 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 537 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.mdnstries = (yyvsp[(2) - (2)].Integer); }
|
|
break;
|
|
|
|
case 62:
|
|
-#line 545 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 548 "../../ntpd/ntp_parser.y"
|
|
{
|
|
attr_val *atrv;
|
|
|
|
- atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
|
|
+ atrv = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
|
|
APPEND_G_FIFO(cfgt.vars, atrv);
|
|
}
|
|
-#line 2227 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 63:
|
|
-#line 552 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.control_key = (yyvsp[0].Integer); }
|
|
-#line 2233 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 555 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); }
|
|
break;
|
|
|
|
case 64:
|
|
-#line 554 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 557 "../../ntpd/ntp_parser.y"
|
|
{
|
|
cfgt.auth.cryptosw++;
|
|
- CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
|
|
+ CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Attr_val_fifo));
|
|
}
|
|
-#line 2242 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 65:
|
|
-#line 559 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.keys = (yyvsp[0].String); }
|
|
-#line 2248 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 562 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.keys = (yyvsp[(2) - (2)].String); }
|
|
break;
|
|
|
|
case 66:
|
|
-#line 561 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.keysdir = (yyvsp[0].String); }
|
|
-#line 2254 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 564 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); }
|
|
break;
|
|
|
|
case 67:
|
|
-#line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.request_key = (yyvsp[0].Integer); }
|
|
-#line 2260 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 566 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); }
|
|
break;
|
|
|
|
case 68:
|
|
-#line 565 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.revoke = (yyvsp[0].Integer); }
|
|
-#line 2266 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 568 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); }
|
|
break;
|
|
|
|
case 69:
|
|
-#line 567 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 570 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo);
|
|
+ cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Attr_val_fifo);
|
|
|
|
// if (!cfgt.auth.trusted_key_list)
|
|
// cfgt.auth.trusted_key_list = $2;
|
|
@@ -2275,191 +2520,191 @@ yyreduce:
|
|
// else
|
|
// LINK_SLIST(cfgt.auth.trusted_key_list, $2, link);
|
|
}
|
|
-#line 2279 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 70:
|
|
-#line 576 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
|
|
-#line 2285 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 579 "../../ntpd/ntp_parser.y"
|
|
+ { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); }
|
|
break;
|
|
|
|
case 71:
|
|
-#line 581 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 584 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Attr_val_fifo) = NULL; }
|
|
-#line 2291 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 72:
|
|
-#line 583 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 586 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2300 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 73:
|
|
-#line 591 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
|
|
-#line 2306 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 594 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
|
|
break;
|
|
|
|
case 74:
|
|
-#line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 596 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val) = NULL;
|
|
- cfgt.auth.revoke = (yyvsp[0].Integer);
|
|
+ cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer);
|
|
msyslog(LOG_WARNING,
|
|
"'crypto revoke %d' is deprecated, "
|
|
"please use 'revoke %d' instead.",
|
|
cfgt.auth.revoke, cfgt.auth.revoke);
|
|
}
|
|
-#line 2319 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 80:
|
|
-#line 618 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2325 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 621 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
case 81:
|
|
-#line 623 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 626 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2334 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 82:
|
|
-#line 628 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 631 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2343 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 83:
|
|
-#line 636 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
|
|
-#line 2349 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 639 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 84:
|
|
-#line 638 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
|
|
-#line 2355 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 641 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
|
|
break;
|
|
|
|
case 85:
|
|
-#line 640 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
|
|
-#line 2361 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 643 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 96:
|
|
-#line 666 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
|
|
-#line 2367 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 669 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[(2) - (2)].Int_fifo)); }
|
|
break;
|
|
|
|
case 97:
|
|
-#line 668 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 671 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
- cfgt.stats_dir = (yyvsp[0].String);
|
|
+ cfgt.stats_dir = (yyvsp[(2) - (2)].String);
|
|
} else {
|
|
- YYFREE((yyvsp[0].String));
|
|
+ YYFREE((yyvsp[(2) - (2)].String));
|
|
yyerror("statsdir remote configuration ignored");
|
|
}
|
|
}
|
|
-#line 2380 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 98:
|
|
-#line 677 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 680 "../../ntpd/ntp_parser.y"
|
|
{
|
|
filegen_node *fgn;
|
|
|
|
- fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
|
|
+ fgn = create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Attr_val_fifo));
|
|
APPEND_G_FIFO(cfgt.filegen_opts, fgn);
|
|
}
|
|
-#line 2391 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 99:
|
|
-#line 687 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 690 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
|
|
- APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
|
|
+ APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
|
|
}
|
|
-#line 2400 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 100:
|
|
-#line 692 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 695 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Int_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
|
|
}
|
|
-#line 2409 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 109:
|
|
-#line 711 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 714 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Attr_val_fifo) = NULL; }
|
|
-#line 2415 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 110:
|
|
-#line 713 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 716 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2424 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 111:
|
|
-#line 721 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 724 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
- (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
|
|
+ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
|
|
} else {
|
|
(yyval.Attr_val) = NULL;
|
|
- YYFREE((yyvsp[0].String));
|
|
+ YYFREE((yyvsp[(2) - (2)].String));
|
|
yyerror("filegen file remote config ignored");
|
|
}
|
|
}
|
|
-#line 2438 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 112:
|
|
-#line 731 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 734 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
- (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
|
|
+ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
|
|
} else {
|
|
(yyval.Attr_val) = NULL;
|
|
yyerror("filegen type remote config ignored");
|
|
}
|
|
}
|
|
-#line 2451 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 113:
|
|
-#line 740 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 743 "../../ntpd/ntp_parser.y"
|
|
{
|
|
const char *err;
|
|
|
|
if (lex_from_file()) {
|
|
- (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
|
|
+ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
|
|
} else {
|
|
(yyval.Attr_val) = NULL;
|
|
- if (T_Link == (yyvsp[0].Integer))
|
|
+ if (T_Link == (yyvsp[(1) - (1)].Integer))
|
|
err = "filegen link remote config ignored";
|
|
else
|
|
err = "filegen nolink remote config ignored";
|
|
@@ -2466,69 +2711,69 @@ yyreduce:
|
|
yyerror(err);
|
|
}
|
|
}
|
|
-#line 2470 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 114:
|
|
-#line 755 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
|
|
-#line 2476 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 758 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
|
|
break;
|
|
|
|
case 126:
|
|
-#line 785 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 788 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
|
|
+ CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
|
|
}
|
|
-#line 2484 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 127:
|
|
-#line 789 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 792 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
|
|
+ CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
|
|
}
|
|
-#line 2492 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 128:
|
|
-#line 793 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 796 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node *rn;
|
|
|
|
- rn = create_restrict_node((yyvsp[-1].Address_node), NULL, (yyvsp[0].Int_fifo),
|
|
+ rn = create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Int_fifo),
|
|
lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2504 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 129:
|
|
-#line 801 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 804 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node *rn;
|
|
|
|
- rn = create_restrict_node((yyvsp[-3].Address_node), (yyvsp[-1].Address_node), (yyvsp[0].Int_fifo),
|
|
+ rn = create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Int_fifo),
|
|
lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2516 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 130:
|
|
-#line 809 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 812 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node *rn;
|
|
|
|
- rn = create_restrict_node(NULL, NULL, (yyvsp[0].Int_fifo),
|
|
+ rn = create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Int_fifo),
|
|
lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2528 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 131:
|
|
-#line 817 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 820 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node *rn;
|
|
|
|
@@ -2539,15 +2784,15 @@ yyreduce:
|
|
create_address_node(
|
|
estrdup("0.0.0.0"),
|
|
AF_INET),
|
|
- (yyvsp[0].Int_fifo),
|
|
+ (yyvsp[(4) - (4)].Int_fifo),
|
|
lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2547 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 132:
|
|
-#line 832 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 835 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node *rn;
|
|
|
|
@@ -2558,226 +2803,226 @@ yyreduce:
|
|
create_address_node(
|
|
estrdup("::"),
|
|
AF_INET6),
|
|
- (yyvsp[0].Int_fifo),
|
|
+ (yyvsp[(4) - (4)].Int_fifo),
|
|
lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2566 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 133:
|
|
-#line 847 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 850 "../../ntpd/ntp_parser.y"
|
|
{
|
|
restrict_node * rn;
|
|
|
|
- APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-1].Integer)));
|
|
+ APPEND_G_FIFO((yyvsp[(3) - (3)].Int_fifo), create_int_node((yyvsp[(2) - (3)].Integer)));
|
|
rn = create_restrict_node(
|
|
- NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline);
|
|
+ NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), lex_current()->curpos.nline);
|
|
APPEND_G_FIFO(cfgt.restrict_opts, rn);
|
|
}
|
|
-#line 2579 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 134:
|
|
-#line 859 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 862 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Int_fifo) = NULL; }
|
|
-#line 2585 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 135:
|
|
-#line 861 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 864 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
|
|
- APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
|
|
+ APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
|
|
}
|
|
-#line 2594 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 151:
|
|
-#line 887 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 890 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2603 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 152:
|
|
-#line 892 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 895 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2612 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 153:
|
|
-#line 900 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2618 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 903 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 157:
|
|
-#line 911 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 914 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2627 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 158:
|
|
-#line 916 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 919 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2636 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 159:
|
|
-#line 924 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2642 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 927 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 168:
|
|
-#line 944 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 947 "../../ntpd/ntp_parser.y"
|
|
{
|
|
addr_opts_node *aon;
|
|
|
|
- aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
|
|
+ aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
|
|
APPEND_G_FIFO(cfgt.fudge, aon);
|
|
}
|
|
-#line 2653 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 169:
|
|
-#line 954 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 957 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2662 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 170:
|
|
-#line 959 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 962 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2671 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 171:
|
|
-#line 967 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
|
|
-#line 2677 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 970 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
|
|
break;
|
|
|
|
case 172:
|
|
-#line 969 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2683 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 972 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 173:
|
|
-#line 971 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 974 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- if ((yyvsp[0].Integer) >= 0 && (yyvsp[0].Integer) <= 16) {
|
|
- (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
|
|
+ if ((yyvsp[(2) - (2)].Integer) >= 0 && (yyvsp[(2) - (2)].Integer) <= 16) {
|
|
+ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
|
|
} else {
|
|
(yyval.Attr_val) = NULL;
|
|
yyerror("fudge factor: stratum value not in [0..16], ignored");
|
|
}
|
|
}
|
|
-#line 2696 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 174:
|
|
-#line 980 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
|
|
-#line 2702 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 983 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
|
|
break;
|
|
|
|
case 175:
|
|
-#line 982 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
|
|
-#line 2708 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 985 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
|
|
break;
|
|
|
|
case 182:
|
|
-#line 1003 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2714 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1006 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
case 183:
|
|
-#line 1008 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1011 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2723 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 184:
|
|
-#line 1013 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1016 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2732 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 185:
|
|
-#line 1021 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 2738 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1024 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
case 189:
|
|
-#line 1037 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2744 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1040 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
case 190:
|
|
-#line 1039 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2750 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1042 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
case 191:
|
|
-#line 1044 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1047 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2759 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 192:
|
|
-#line 1049 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1052 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2768 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 193:
|
|
-#line 1057 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
|
|
-#line 2774 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1060 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
|
|
break;
|
|
|
|
case 194:
|
|
-#line 1059 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1062 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
- (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
|
|
+ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
|
|
} else {
|
|
char err_str[128];
|
|
|
|
@@ -2784,101 +3029,101 @@ yyreduce:
|
|
(yyval.Attr_val) = NULL;
|
|
snprintf(err_str, sizeof(err_str),
|
|
"enable/disable %s remote configuration ignored",
|
|
- keyword((yyvsp[0].Integer)));
|
|
+ keyword((yyvsp[(1) - (1)].Integer)));
|
|
yyerror(err_str);
|
|
}
|
|
}
|
|
-#line 2792 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 203:
|
|
-#line 1094 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2798 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 206:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1100 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
- case 204:
|
|
-#line 1099 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 207:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1105 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 2807 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 205:
|
|
-#line 1104 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 208:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1110 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 2816 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 206:
|
|
-#line 1112 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
|
|
-#line 2822 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 209:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1118 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
|
|
break;
|
|
|
|
- case 219:
|
|
-#line 1137 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 222:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1143 "../../ntpd/ntp_parser.y"
|
|
{
|
|
attr_val *av;
|
|
|
|
- av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
|
|
+ av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
}
|
|
-#line 2833 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 220:
|
|
-#line 1144 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 223:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1150 "../../ntpd/ntp_parser.y"
|
|
{
|
|
attr_val *av;
|
|
|
|
- av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
|
|
+ av = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
}
|
|
-#line 2844 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 221:
|
|
-#line 1151 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 224:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1157 "../../ntpd/ntp_parser.y"
|
|
{
|
|
attr_val *av;
|
|
|
|
- av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
|
|
+ av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
}
|
|
-#line 2855 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 222:
|
|
-#line 1158 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 225:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1164 "../../ntpd/ntp_parser.y"
|
|
{
|
|
char error_text[64];
|
|
attr_val *av;
|
|
|
|
if (lex_from_file()) {
|
|
- av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
|
|
+ av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
} else {
|
|
- YYFREE((yyvsp[0].String));
|
|
+ YYFREE((yyvsp[(2) - (2)].String));
|
|
snprintf(error_text, sizeof(error_text),
|
|
"%s remote config ignored",
|
|
- keyword((yyvsp[-1].Integer)));
|
|
+ keyword((yyvsp[(1) - (2)].Integer)));
|
|
yyerror(error_text);
|
|
}
|
|
}
|
|
-#line 2875 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 223:
|
|
-#line 1174 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 226:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1180 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (!lex_from_file()) {
|
|
- YYFREE((yyvsp[-1].String)); /* avoid leak */
|
|
+ YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */
|
|
yyerror("remote includefile ignored");
|
|
break;
|
|
}
|
|
@@ -2886,108 +3131,108 @@ yyreduce:
|
|
fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
|
|
msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.");
|
|
} else {
|
|
- const char * path = FindConfig((yyvsp[-1].String)); /* might return $2! */
|
|
+ const char * path = FindConfig((yyvsp[(2) - (3)].String)); /* might return $2! */
|
|
if (!lex_push_file(path, "r")) {
|
|
fprintf(stderr, "getconfig: Couldn't open <%s>\n", path);
|
|
msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", path);
|
|
}
|
|
}
|
|
- YYFREE((yyvsp[-1].String)); /* avoid leak */
|
|
+ YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */
|
|
}
|
|
-#line 2898 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 224:
|
|
-#line 1193 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 227:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1199 "../../ntpd/ntp_parser.y"
|
|
{ lex_flush_stack(); }
|
|
-#line 2904 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 225:
|
|
-#line 1195 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 228:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1201 "../../ntpd/ntp_parser.y"
|
|
{ /* see drift_parm below for actions */ }
|
|
-#line 2910 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 226:
|
|
-#line 1197 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2916 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 229:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1203 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
- case 227:
|
|
-#line 1199 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
|
|
-#line 2922 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 230:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1205 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[(2) - (2)].String_fifo)); }
|
|
break;
|
|
|
|
- case 228:
|
|
-#line 1201 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
|
|
-#line 2928 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 231:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1207 "../../ntpd/ntp_parser.y"
|
|
+ { APPEND_G_FIFO(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); }
|
|
break;
|
|
|
|
- case 229:
|
|
-#line 1203 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 232:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1209 "../../ntpd/ntp_parser.y"
|
|
{
|
|
addr_opts_node *aon;
|
|
|
|
- aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
|
|
+ aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
|
|
APPEND_G_FIFO(cfgt.trap, aon);
|
|
}
|
|
-#line 2939 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 230:
|
|
-#line 1210 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
|
|
-#line 2945 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 233:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1216 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[(2) - (2)].Attr_val_fifo)); }
|
|
break;
|
|
|
|
- case 235:
|
|
-#line 1225 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 238:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1231 "../../ntpd/ntp_parser.y"
|
|
{
|
|
#ifndef LEAP_SMEAR
|
|
yyerror("Built without LEAP_SMEAR support.");
|
|
#endif
|
|
}
|
|
-#line 2955 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 241:
|
|
-#line 1245 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 244:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1251 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
attr_val *av;
|
|
- av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
|
|
+ av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
} else {
|
|
- YYFREE((yyvsp[0].String));
|
|
+ YYFREE((yyvsp[(1) - (1)].String));
|
|
yyerror("driftfile remote configuration ignored");
|
|
}
|
|
}
|
|
-#line 2970 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 242:
|
|
-#line 1256 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 245:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1262 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
attr_val *av;
|
|
- av = create_attr_sval(T_Driftfile, (yyvsp[-1].String));
|
|
+ av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
- av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double));
|
|
+ av = create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double));
|
|
APPEND_G_FIFO(cfgt.vars, av);
|
|
} else {
|
|
- YYFREE((yyvsp[-1].String));
|
|
+ YYFREE((yyvsp[(1) - (2)].String));
|
|
yyerror("driftfile remote configuration ignored");
|
|
}
|
|
}
|
|
-#line 2987 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 243:
|
|
-#line 1269 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 246:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1275 "../../ntpd/ntp_parser.y"
|
|
{
|
|
if (lex_from_file()) {
|
|
attr_val *av;
|
|
@@ -2997,386 +3242,386 @@ yyreduce:
|
|
yyerror("driftfile remote configuration ignored");
|
|
}
|
|
}
|
|
-#line 3001 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 244:
|
|
-#line 1282 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
|
|
-#line 3007 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 247:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1288 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); }
|
|
break;
|
|
|
|
- case 246:
|
|
-#line 1288 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 249:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1294 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Integer) = 0; }
|
|
-#line 3013 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 247:
|
|
-#line 1293 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 250:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1299 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Attr_val_fifo) = NULL; }
|
|
-#line 3019 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 248:
|
|
-#line 1295 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 251:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1301 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 3028 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 249:
|
|
-#line 1303 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
|
|
-#line 3034 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 252:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1309 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
|
|
break;
|
|
|
|
- case 250:
|
|
-#line 1305 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 253:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1311 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address));
|
|
- destroy_address_node((yyvsp[0].Address_node));
|
|
+ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), estrdup((yyvsp[(2) - (2)].Address_node)->address));
|
|
+ destroy_address_node((yyvsp[(2) - (2)].Address_node));
|
|
}
|
|
-#line 3043 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 251:
|
|
-#line 1313 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 254:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1319 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 3052 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 252:
|
|
-#line 1318 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 255:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1324 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 3061 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 253:
|
|
-#line 1326 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 256:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1332 "../../ntpd/ntp_parser.y"
|
|
{
|
|
char prefix;
|
|
char * type;
|
|
|
|
- switch ((yyvsp[0].String)[0]) {
|
|
+ switch ((yyvsp[(1) - (1)].String)[0]) {
|
|
|
|
case '+':
|
|
case '-':
|
|
case '=':
|
|
- prefix = (yyvsp[0].String)[0];
|
|
- type = (yyvsp[0].String) + 1;
|
|
+ prefix = (yyvsp[(1) - (1)].String)[0];
|
|
+ type = (yyvsp[(1) - (1)].String) + 1;
|
|
break;
|
|
|
|
default:
|
|
prefix = '=';
|
|
- type = (yyvsp[0].String);
|
|
+ type = (yyvsp[(1) - (1)].String);
|
|
}
|
|
|
|
(yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
|
|
- YYFREE((yyvsp[0].String));
|
|
+ YYFREE((yyvsp[(1) - (1)].String));
|
|
}
|
|
-#line 3087 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 254:
|
|
-#line 1351 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 257:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1357 "../../ntpd/ntp_parser.y"
|
|
{
|
|
nic_rule_node *nrn;
|
|
|
|
- nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
|
|
+ nrn = create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer));
|
|
APPEND_G_FIFO(cfgt.nic_rules, nrn);
|
|
}
|
|
-#line 3098 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 255:
|
|
-#line 1358 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 258:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1364 "../../ntpd/ntp_parser.y"
|
|
{
|
|
nic_rule_node *nrn;
|
|
|
|
- nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
|
|
+ nrn = create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer));
|
|
APPEND_G_FIFO(cfgt.nic_rules, nrn);
|
|
}
|
|
-#line 3109 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 265:
|
|
-#line 1386 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
|
|
-#line 3115 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 268:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1392 "../../ntpd/ntp_parser.y"
|
|
+ { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[(2) - (2)].Int_fifo)); }
|
|
break;
|
|
|
|
- case 266:
|
|
-#line 1391 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 269:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1397 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
|
|
- APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
|
|
+ APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
|
|
}
|
|
-#line 3124 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 267:
|
|
-#line 1396 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 270:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1402 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Int_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
|
|
}
|
|
-#line 3133 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 275:
|
|
-#line 1420 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 278:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1426 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
|
|
}
|
|
-#line 3142 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 276:
|
|
-#line 1425 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 279:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1431 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
|
|
}
|
|
-#line 3151 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 277:
|
|
-#line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 280:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1439 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
|
|
}
|
|
-#line 3160 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 278:
|
|
-#line 1438 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 281:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1444 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
|
|
}
|
|
-#line 3169 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 279:
|
|
-#line 1446 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
|
|
-#line 3175 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 282:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1452 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[(1) - (1)].Integer)); }
|
|
break;
|
|
|
|
- case 281:
|
|
-#line 1452 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
|
|
-#line 3181 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 284:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1458 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); }
|
|
break;
|
|
|
|
- case 282:
|
|
-#line 1457 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 285:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1463 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.String_fifo) = (yyvsp[-1].String_fifo);
|
|
- APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
|
|
+ (yyval.String_fifo) = (yyvsp[(1) - (2)].String_fifo);
|
|
+ APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(2) - (2)].String)));
|
|
}
|
|
-#line 3190 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 283:
|
|
-#line 1462 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 286:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1468 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.String_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
|
|
+ APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(1) - (1)].String)));
|
|
}
|
|
-#line 3199 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 284:
|
|
-#line 1470 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 287:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1476 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
|
|
- APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
|
|
+ (yyval.Address_fifo) = (yyvsp[(1) - (2)].Address_fifo);
|
|
+ APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(2) - (2)].Address_node));
|
|
}
|
|
-#line 3208 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 285:
|
|
-#line 1475 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 288:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1481 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Address_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
|
|
+ APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(1) - (1)].Address_node));
|
|
}
|
|
-#line 3217 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 286:
|
|
-#line 1483 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 289:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1489 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
|
|
+ if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) {
|
|
yyerror("Integer value is not boolean (0 or 1). Assuming 1");
|
|
(yyval.Integer) = 1;
|
|
} else {
|
|
- (yyval.Integer) = (yyvsp[0].Integer);
|
|
+ (yyval.Integer) = (yyvsp[(1) - (1)].Integer);
|
|
}
|
|
}
|
|
-#line 3230 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 287:
|
|
-#line 1491 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 290:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1497 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Integer) = 1; }
|
|
-#line 3236 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 288:
|
|
-#line 1492 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 291:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1498 "../../ntpd/ntp_parser.y"
|
|
{ (yyval.Integer) = 0; }
|
|
-#line 3242 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 289:
|
|
-#line 1496 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Double) = (double)(yyvsp[0].Integer); }
|
|
-#line 3248 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 292:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1502 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); }
|
|
break;
|
|
|
|
- case 291:
|
|
-#line 1507 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 294:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1513 "../../ntpd/ntp_parser.y"
|
|
{
|
|
sim_node *sn;
|
|
|
|
- sn = create_sim_node((yyvsp[-2].Attr_val_fifo), (yyvsp[-1].Sim_server_fifo));
|
|
+ sn = create_sim_node((yyvsp[(3) - (5)].Attr_val_fifo), (yyvsp[(4) - (5)].Sim_server_fifo));
|
|
APPEND_G_FIFO(cfgt.sim_details, sn);
|
|
|
|
/* Revert from ; to \n for end-of-command */
|
|
old_config_style = 1;
|
|
}
|
|
-#line 3262 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 292:
|
|
-#line 1524 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 295:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1530 "../../ntpd/ntp_parser.y"
|
|
{ old_config_style = 0; }
|
|
-#line 3268 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 293:
|
|
-#line 1529 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 296:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1535 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
|
|
}
|
|
-#line 3277 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 294:
|
|
-#line 1534 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 297:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1540 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
|
|
}
|
|
-#line 3286 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 295:
|
|
-#line 1542 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
|
|
-#line 3292 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 298:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1548 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
|
|
break;
|
|
|
|
- case 298:
|
|
-#line 1552 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 301:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1558 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
|
|
- APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
|
|
+ (yyval.Sim_server_fifo) = (yyvsp[(1) - (2)].Sim_server_fifo);
|
|
+ APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(2) - (2)].Sim_server));
|
|
}
|
|
-#line 3301 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 299:
|
|
-#line 1557 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 302:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1563 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Sim_server_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
|
|
+ APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(1) - (1)].Sim_server));
|
|
}
|
|
-#line 3310 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 300:
|
|
-#line 1565 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
|
|
-#line 3316 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 303:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1571 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Sim_script_fifo))); }
|
|
break;
|
|
|
|
- case 301:
|
|
-#line 1570 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Double) = (yyvsp[-1].Double); }
|
|
-#line 3322 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 304:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1576 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Double) = (yyvsp[(3) - (4)].Double); }
|
|
break;
|
|
|
|
- case 302:
|
|
-#line 1575 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Address_node) = (yyvsp[0].Address_node); }
|
|
-#line 3328 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 305:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1581 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); }
|
|
break;
|
|
|
|
- case 303:
|
|
-#line 1580 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 306:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1586 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
|
|
- APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
|
|
+ (yyval.Sim_script_fifo) = (yyvsp[(1) - (2)].Sim_script_fifo);
|
|
+ APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(2) - (2)].Sim_script));
|
|
}
|
|
-#line 3337 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 304:
|
|
-#line 1585 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 307:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1591 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Sim_script_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
|
|
+ APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(1) - (1)].Sim_script));
|
|
}
|
|
-#line 3346 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 305:
|
|
-#line 1593 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
|
|
-#line 3352 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 308:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1599 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Attr_val_fifo))); }
|
|
break;
|
|
|
|
- case 306:
|
|
-#line 1598 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 309:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1604 "../../ntpd/ntp_parser.y"
|
|
{
|
|
- (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
|
|
+ (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
|
|
}
|
|
-#line 3361 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 307:
|
|
-#line 1603 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
+ case 310:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1609 "../../ntpd/ntp_parser.y"
|
|
{
|
|
(yyval.Attr_val_fifo) = NULL;
|
|
- APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
|
|
+ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
|
|
}
|
|
-#line 3370 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
- case 308:
|
|
-#line 1611 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */
|
|
- { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
|
|
-#line 3376 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+ case 311:
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 1617 "../../ntpd/ntp_parser.y"
|
|
+ { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
|
|
break;
|
|
|
|
|
|
-#line 3380 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
|
|
+/* Line 1787 of yacc.c */
|
|
+#line 3625 "ntp_parser.c"
|
|
default: break;
|
|
}
|
|
/* User semantic actions sometimes alter yychar, and that requires
|
|
@@ -3398,7 +3643,7 @@ yyreduce:
|
|
|
|
*++yyvsp = yyval;
|
|
|
|
- /* Now 'shift' the result of the reduction. Determine what state
|
|
+ /* Now `shift' the result of the reduction. Determine what state
|
|
that goes to, based on the state we popped back to and the rule
|
|
number reduced by. */
|
|
|
|
@@ -3413,9 +3658,9 @@ yyreduce:
|
|
goto yynewstate;
|
|
|
|
|
|
-/*--------------------------------------.
|
|
-| yyerrlab -- here on detecting error. |
|
|
-`--------------------------------------*/
|
|
+/*------------------------------------.
|
|
+| yyerrlab -- here on detecting error |
|
|
+`------------------------------------*/
|
|
yyerrlab:
|
|
/* Make sure we have latest lookahead translation. See comments at
|
|
user semantic actions for why this is necessary. */
|
|
@@ -3466,20 +3711,20 @@ yyerrlab:
|
|
if (yyerrstatus == 3)
|
|
{
|
|
/* If just tried and failed to reuse lookahead token after an
|
|
- error, discard it. */
|
|
+ error, discard it. */
|
|
|
|
if (yychar <= YYEOF)
|
|
- {
|
|
- /* Return failure if at end of input. */
|
|
- if (yychar == YYEOF)
|
|
- YYABORT;
|
|
- }
|
|
+ {
|
|
+ /* Return failure if at end of input. */
|
|
+ if (yychar == YYEOF)
|
|
+ YYABORT;
|
|
+ }
|
|
else
|
|
- {
|
|
- yydestruct ("Error: discarding",
|
|
- yytoken, &yylval);
|
|
- yychar = YYEMPTY;
|
|
- }
|
|
+ {
|
|
+ yydestruct ("Error: discarding",
|
|
+ yytoken, &yylval);
|
|
+ yychar = YYEMPTY;
|
|
+ }
|
|
}
|
|
|
|
/* Else will try to reuse lookahead token after shifting the error
|
|
@@ -3498,7 +3743,7 @@ yyerrorlab:
|
|
if (/*CONSTCOND*/ 0)
|
|
goto yyerrorlab;
|
|
|
|
- /* Do not reclaim the symbols of the rule whose action triggered
|
|
+ /* Do not reclaim the symbols of the rule which action triggered
|
|
this YYERROR. */
|
|
YYPOPSTACK (yylen);
|
|
yylen = 0;
|
|
@@ -3511,29 +3756,29 @@ yyerrorlab:
|
|
| yyerrlab1 -- common code for both syntax error and YYERROR. |
|
|
`-------------------------------------------------------------*/
|
|
yyerrlab1:
|
|
- yyerrstatus = 3; /* Each real token shifted decrements this. */
|
|
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
|
|
|
|
for (;;)
|
|
{
|
|
yyn = yypact[yystate];
|
|
if (!yypact_value_is_default (yyn))
|
|
- {
|
|
- yyn += YYTERROR;
|
|
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
|
|
- {
|
|
- yyn = yytable[yyn];
|
|
- if (0 < yyn)
|
|
- break;
|
|
- }
|
|
- }
|
|
+ {
|
|
+ yyn += YYTERROR;
|
|
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
|
|
+ {
|
|
+ yyn = yytable[yyn];
|
|
+ if (0 < yyn)
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
|
|
/* Pop the current state because it cannot handle the error token. */
|
|
if (yyssp == yyss)
|
|
- YYABORT;
|
|
+ YYABORT;
|
|
|
|
|
|
yydestruct ("Error: popping",
|
|
- yystos[yystate], yyvsp);
|
|
+ yystos[yystate], yyvsp);
|
|
YYPOPSTACK (1);
|
|
yystate = *yyssp;
|
|
YY_STACK_PRINT (yyss, yyssp);
|
|
@@ -3584,7 +3829,7 @@ yyreturn:
|
|
yydestruct ("Cleanup: discarding lookahead",
|
|
yytoken, &yylval);
|
|
}
|
|
- /* Do not reclaim the symbols of the rule whose action triggered
|
|
+ /* Do not reclaim the symbols of the rule which action triggered
|
|
this YYABORT or YYACCEPT. */
|
|
YYPOPSTACK (yylen);
|
|
YY_STACK_PRINT (yyss, yyssp);
|
|
@@ -3591,7 +3836,7 @@ yyreturn:
|
|
while (yyssp != yyss)
|
|
{
|
|
yydestruct ("Cleanup: popping",
|
|
- yystos[*yyssp], yyvsp);
|
|
+ yystos[*yyssp], yyvsp);
|
|
YYPOPSTACK (1);
|
|
}
|
|
#ifndef yyoverflow
|
|
@@ -3602,11 +3847,15 @@ yyreturn:
|
|
if (yymsg != yymsgbuf)
|
|
YYSTACK_FREE (yymsg);
|
|
#endif
|
|
- return yyresult;
|
|
+ /* Make sure YYID is used. */
|
|
+ return YYID (yyresult);
|
|
}
|
|
-#line 1622 "../../ntpd/ntp_parser.y" /* yacc.c:1906 */
|
|
|
|
|
|
+/* Line 2050 of yacc.c */
|
|
+#line 1628 "../../ntpd/ntp_parser.y"
|
|
+
|
|
+
|
|
void
|
|
yyerror(
|
|
const char *msg
|
|
Index: contrib/ntp/ntpd/ntp_parser.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_parser.h (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_parser.h (working copy)
|
|
@@ -1,19 +1,19 @@
|
|
-/* A Bison parser, made by GNU Bison 3.0.2. */
|
|
+/* A Bison parser, made by GNU Bison 2.7.12-4996. */
|
|
|
|
/* Bison interface for Yacc-like parsers in C
|
|
-
|
|
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
|
-
|
|
+
|
|
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
|
+
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
-
|
|
+
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
-
|
|
+
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
@@ -26,13 +26,13 @@
|
|
special exception, which will cause the skeleton and the resulting
|
|
Bison output files to be licensed under the GNU General Public
|
|
License without this special exception.
|
|
-
|
|
+
|
|
This special exception was added by the Free Software Foundation in
|
|
version 2.2 of Bison. */
|
|
|
|
-#ifndef YY_YY__NTPD_NTP_PARSER_H_INCLUDED
|
|
-# define YY_YY__NTPD_NTP_PARSER_H_INCLUDED
|
|
-/* Debug traces. */
|
|
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
|
|
+# define YY_YY_NTP_PARSER_H_INCLUDED
|
|
+/* Enabling traces. */
|
|
#ifndef YYDEBUG
|
|
# define YYDEBUG 1
|
|
#endif
|
|
@@ -40,203 +40,207 @@
|
|
extern int yydebug;
|
|
#endif
|
|
|
|
-/* Token type. */
|
|
+/* Tokens. */
|
|
#ifndef YYTOKENTYPE
|
|
# define YYTOKENTYPE
|
|
- enum yytokentype
|
|
- {
|
|
- T_Abbrev = 258,
|
|
- T_Age = 259,
|
|
- T_All = 260,
|
|
- T_Allan = 261,
|
|
- T_Allpeers = 262,
|
|
- T_Auth = 263,
|
|
- T_Autokey = 264,
|
|
- T_Automax = 265,
|
|
- T_Average = 266,
|
|
- T_Bclient = 267,
|
|
- T_Beacon = 268,
|
|
- T_Broadcast = 269,
|
|
- T_Broadcastclient = 270,
|
|
- T_Broadcastdelay = 271,
|
|
- T_Burst = 272,
|
|
- T_Calibrate = 273,
|
|
- T_Ceiling = 274,
|
|
- T_Clockstats = 275,
|
|
- T_Cohort = 276,
|
|
- T_ControlKey = 277,
|
|
- T_Crypto = 278,
|
|
- T_Cryptostats = 279,
|
|
- T_Ctl = 280,
|
|
- T_Day = 281,
|
|
- T_Default = 282,
|
|
- T_Digest = 283,
|
|
- T_Disable = 284,
|
|
- T_Discard = 285,
|
|
- T_Dispersion = 286,
|
|
- T_Double = 287,
|
|
- T_Driftfile = 288,
|
|
- T_Drop = 289,
|
|
- T_Dscp = 290,
|
|
- T_Ellipsis = 291,
|
|
- T_Enable = 292,
|
|
- T_End = 293,
|
|
- T_False = 294,
|
|
- T_File = 295,
|
|
- T_Filegen = 296,
|
|
- T_Filenum = 297,
|
|
- T_Flag1 = 298,
|
|
- T_Flag2 = 299,
|
|
- T_Flag3 = 300,
|
|
- T_Flag4 = 301,
|
|
- T_Flake = 302,
|
|
- T_Floor = 303,
|
|
- T_Freq = 304,
|
|
- T_Fudge = 305,
|
|
- T_Host = 306,
|
|
- T_Huffpuff = 307,
|
|
- T_Iburst = 308,
|
|
- T_Ident = 309,
|
|
- T_Ignore = 310,
|
|
- T_Incalloc = 311,
|
|
- T_Incmem = 312,
|
|
- T_Initalloc = 313,
|
|
- T_Initmem = 314,
|
|
- T_Includefile = 315,
|
|
- T_Integer = 316,
|
|
- T_Interface = 317,
|
|
- T_Intrange = 318,
|
|
- T_Io = 319,
|
|
- T_Ipv4 = 320,
|
|
- T_Ipv4_flag = 321,
|
|
- T_Ipv6 = 322,
|
|
- T_Ipv6_flag = 323,
|
|
- T_Kernel = 324,
|
|
- T_Key = 325,
|
|
- T_Keys = 326,
|
|
- T_Keysdir = 327,
|
|
- T_Kod = 328,
|
|
- T_Mssntp = 329,
|
|
- T_Leapfile = 330,
|
|
- T_Leapsmearinterval = 331,
|
|
- T_Limited = 332,
|
|
- T_Link = 333,
|
|
- T_Listen = 334,
|
|
- T_Logconfig = 335,
|
|
- T_Logfile = 336,
|
|
- T_Loopstats = 337,
|
|
- T_Lowpriotrap = 338,
|
|
- T_Manycastclient = 339,
|
|
- T_Manycastserver = 340,
|
|
- T_Mask = 341,
|
|
- T_Maxage = 342,
|
|
- T_Maxclock = 343,
|
|
- T_Maxdepth = 344,
|
|
- T_Maxdist = 345,
|
|
- T_Maxmem = 346,
|
|
- T_Maxpoll = 347,
|
|
- T_Mdnstries = 348,
|
|
- T_Mem = 349,
|
|
- T_Memlock = 350,
|
|
- T_Minclock = 351,
|
|
- T_Mindepth = 352,
|
|
- T_Mindist = 353,
|
|
- T_Minimum = 354,
|
|
- T_Minpoll = 355,
|
|
- T_Minsane = 356,
|
|
- T_Mode = 357,
|
|
- T_Mode7 = 358,
|
|
- T_Monitor = 359,
|
|
- T_Month = 360,
|
|
- T_Mru = 361,
|
|
- T_Multicastclient = 362,
|
|
- T_Nic = 363,
|
|
- T_Nolink = 364,
|
|
- T_Nomodify = 365,
|
|
- T_Nomrulist = 366,
|
|
- T_None = 367,
|
|
- T_Nonvolatile = 368,
|
|
- T_Nopeer = 369,
|
|
- T_Noquery = 370,
|
|
- T_Noselect = 371,
|
|
- T_Noserve = 372,
|
|
- T_Notrap = 373,
|
|
- T_Notrust = 374,
|
|
- T_Ntp = 375,
|
|
- T_Ntpport = 376,
|
|
- T_NtpSignDsocket = 377,
|
|
- T_Orphan = 378,
|
|
- T_Orphanwait = 379,
|
|
- T_Panic = 380,
|
|
- T_Peer = 381,
|
|
- T_Peerstats = 382,
|
|
- T_Phone = 383,
|
|
- T_Pid = 384,
|
|
- T_Pidfile = 385,
|
|
- T_Pool = 386,
|
|
- T_Port = 387,
|
|
- T_Preempt = 388,
|
|
- T_Prefer = 389,
|
|
- T_Protostats = 390,
|
|
- T_Pw = 391,
|
|
- T_Randfile = 392,
|
|
- T_Rawstats = 393,
|
|
- T_Refid = 394,
|
|
- T_Requestkey = 395,
|
|
- T_Reset = 396,
|
|
- T_Restrict = 397,
|
|
- T_Revoke = 398,
|
|
- T_Rlimit = 399,
|
|
- T_Saveconfigdir = 400,
|
|
- T_Server = 401,
|
|
- T_Setvar = 402,
|
|
- T_Source = 403,
|
|
- T_Stacksize = 404,
|
|
- T_Statistics = 405,
|
|
- T_Stats = 406,
|
|
- T_Statsdir = 407,
|
|
- T_Step = 408,
|
|
- T_Stepback = 409,
|
|
- T_Stepfwd = 410,
|
|
- T_Stepout = 411,
|
|
- T_Stratum = 412,
|
|
- T_String = 413,
|
|
- T_Sys = 414,
|
|
- T_Sysstats = 415,
|
|
- T_Tick = 416,
|
|
- T_Time1 = 417,
|
|
- T_Time2 = 418,
|
|
- T_Timer = 419,
|
|
- T_Timingstats = 420,
|
|
- T_Tinker = 421,
|
|
- T_Tos = 422,
|
|
- T_Trap = 423,
|
|
- T_True = 424,
|
|
- T_Trustedkey = 425,
|
|
- T_Ttl = 426,
|
|
- T_Type = 427,
|
|
- T_U_int = 428,
|
|
- T_Unconfig = 429,
|
|
- T_Unpeer = 430,
|
|
- T_Version = 431,
|
|
- T_WanderThreshold = 432,
|
|
- T_Week = 433,
|
|
- T_Wildcard = 434,
|
|
- T_Xleave = 435,
|
|
- T_Year = 436,
|
|
- T_Flag = 437,
|
|
- T_EOC = 438,
|
|
- T_Simulate = 439,
|
|
- T_Beep_Delay = 440,
|
|
- T_Sim_Duration = 441,
|
|
- T_Server_Offset = 442,
|
|
- T_Duration = 443,
|
|
- T_Freq_Offset = 444,
|
|
- T_Wander = 445,
|
|
- T_Jitter = 446,
|
|
- T_Prop_Delay = 447,
|
|
- T_Proc_Delay = 448
|
|
- };
|
|
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
|
|
+ know about them. */
|
|
+ enum yytokentype {
|
|
+ T_Abbrev = 258,
|
|
+ T_Age = 259,
|
|
+ T_All = 260,
|
|
+ T_Allan = 261,
|
|
+ T_Allpeers = 262,
|
|
+ T_Auth = 263,
|
|
+ T_Autokey = 264,
|
|
+ T_Automax = 265,
|
|
+ T_Average = 266,
|
|
+ T_Bclient = 267,
|
|
+ T_Beacon = 268,
|
|
+ T_Broadcast = 269,
|
|
+ T_Broadcastclient = 270,
|
|
+ T_Broadcastdelay = 271,
|
|
+ T_Burst = 272,
|
|
+ T_Calibrate = 273,
|
|
+ T_Ceiling = 274,
|
|
+ T_Clockstats = 275,
|
|
+ T_Cohort = 276,
|
|
+ T_ControlKey = 277,
|
|
+ T_Crypto = 278,
|
|
+ T_Cryptostats = 279,
|
|
+ T_Ctl = 280,
|
|
+ T_Day = 281,
|
|
+ T_Default = 282,
|
|
+ T_Digest = 283,
|
|
+ T_Disable = 284,
|
|
+ T_Discard = 285,
|
|
+ T_Dispersion = 286,
|
|
+ T_Double = 287,
|
|
+ T_Driftfile = 288,
|
|
+ T_Drop = 289,
|
|
+ T_Dscp = 290,
|
|
+ T_Ellipsis = 291,
|
|
+ T_Enable = 292,
|
|
+ T_End = 293,
|
|
+ T_False = 294,
|
|
+ T_File = 295,
|
|
+ T_Filegen = 296,
|
|
+ T_Filenum = 297,
|
|
+ T_Flag1 = 298,
|
|
+ T_Flag2 = 299,
|
|
+ T_Flag3 = 300,
|
|
+ T_Flag4 = 301,
|
|
+ T_Flake = 302,
|
|
+ T_Floor = 303,
|
|
+ T_Freq = 304,
|
|
+ T_Fudge = 305,
|
|
+ T_Host = 306,
|
|
+ T_Huffpuff = 307,
|
|
+ T_Iburst = 308,
|
|
+ T_Ident = 309,
|
|
+ T_Ignore = 310,
|
|
+ T_Incalloc = 311,
|
|
+ T_Incmem = 312,
|
|
+ T_Initalloc = 313,
|
|
+ T_Initmem = 314,
|
|
+ T_Includefile = 315,
|
|
+ T_Integer = 316,
|
|
+ T_Interface = 317,
|
|
+ T_Intrange = 318,
|
|
+ T_Io = 319,
|
|
+ T_Ipv4 = 320,
|
|
+ T_Ipv4_flag = 321,
|
|
+ T_Ipv6 = 322,
|
|
+ T_Ipv6_flag = 323,
|
|
+ T_Kernel = 324,
|
|
+ T_Key = 325,
|
|
+ T_Keys = 326,
|
|
+ T_Keysdir = 327,
|
|
+ T_Kod = 328,
|
|
+ T_Mssntp = 329,
|
|
+ T_Leapfile = 330,
|
|
+ T_Leapsmearinterval = 331,
|
|
+ T_Limited = 332,
|
|
+ T_Link = 333,
|
|
+ T_Listen = 334,
|
|
+ T_Logconfig = 335,
|
|
+ T_Logfile = 336,
|
|
+ T_Loopstats = 337,
|
|
+ T_Lowpriotrap = 338,
|
|
+ T_Manycastclient = 339,
|
|
+ T_Manycastserver = 340,
|
|
+ T_Mask = 341,
|
|
+ T_Maxage = 342,
|
|
+ T_Maxclock = 343,
|
|
+ T_Maxdepth = 344,
|
|
+ T_Maxdist = 345,
|
|
+ T_Maxmem = 346,
|
|
+ T_Maxpoll = 347,
|
|
+ T_Mdnstries = 348,
|
|
+ T_Mem = 349,
|
|
+ T_Memlock = 350,
|
|
+ T_Minclock = 351,
|
|
+ T_Mindepth = 352,
|
|
+ T_Mindist = 353,
|
|
+ T_Minimum = 354,
|
|
+ T_Minpoll = 355,
|
|
+ T_Minsane = 356,
|
|
+ T_Mode = 357,
|
|
+ T_Mode7 = 358,
|
|
+ T_Monitor = 359,
|
|
+ T_Month = 360,
|
|
+ T_Mru = 361,
|
|
+ T_Multicastclient = 362,
|
|
+ T_Nic = 363,
|
|
+ T_Nolink = 364,
|
|
+ T_Nomodify = 365,
|
|
+ T_Nomrulist = 366,
|
|
+ T_None = 367,
|
|
+ T_Nonvolatile = 368,
|
|
+ T_Nopeer = 369,
|
|
+ T_Noquery = 370,
|
|
+ T_Noselect = 371,
|
|
+ T_Noserve = 372,
|
|
+ T_Notrap = 373,
|
|
+ T_Notrust = 374,
|
|
+ T_Ntp = 375,
|
|
+ T_Ntpport = 376,
|
|
+ T_NtpSignDsocket = 377,
|
|
+ T_Orphan = 378,
|
|
+ T_Orphanwait = 379,
|
|
+ T_Panic = 380,
|
|
+ T_Peer = 381,
|
|
+ T_Peerstats = 382,
|
|
+ T_Phone = 383,
|
|
+ T_Pid = 384,
|
|
+ T_Pidfile = 385,
|
|
+ T_Pool = 386,
|
|
+ T_Port = 387,
|
|
+ T_Preempt = 388,
|
|
+ T_Prefer = 389,
|
|
+ T_Protostats = 390,
|
|
+ T_Pw = 391,
|
|
+ T_Randfile = 392,
|
|
+ T_Rawstats = 393,
|
|
+ T_Refid = 394,
|
|
+ T_Requestkey = 395,
|
|
+ T_Reset = 396,
|
|
+ T_Restrict = 397,
|
|
+ T_Revoke = 398,
|
|
+ T_Rlimit = 399,
|
|
+ T_Saveconfigdir = 400,
|
|
+ T_Server = 401,
|
|
+ T_Setvar = 402,
|
|
+ T_Source = 403,
|
|
+ T_Stacksize = 404,
|
|
+ T_Statistics = 405,
|
|
+ T_Stats = 406,
|
|
+ T_Statsdir = 407,
|
|
+ T_Step = 408,
|
|
+ T_Stepback = 409,
|
|
+ T_Stepfwd = 410,
|
|
+ T_Stepout = 411,
|
|
+ T_Stratum = 412,
|
|
+ T_String = 413,
|
|
+ T_Sys = 414,
|
|
+ T_Sysstats = 415,
|
|
+ T_Tick = 416,
|
|
+ T_Time1 = 417,
|
|
+ T_Time2 = 418,
|
|
+ T_Timer = 419,
|
|
+ T_Timingstats = 420,
|
|
+ T_Tinker = 421,
|
|
+ T_Tos = 422,
|
|
+ T_Trap = 423,
|
|
+ T_True = 424,
|
|
+ T_Trustedkey = 425,
|
|
+ T_Ttl = 426,
|
|
+ T_Type = 427,
|
|
+ T_U_int = 428,
|
|
+ T_UEcrypto = 429,
|
|
+ T_UEcryptonak = 430,
|
|
+ T_UEdigest = 431,
|
|
+ T_Unconfig = 432,
|
|
+ T_Unpeer = 433,
|
|
+ T_Version = 434,
|
|
+ T_WanderThreshold = 435,
|
|
+ T_Week = 436,
|
|
+ T_Wildcard = 437,
|
|
+ T_Xleave = 438,
|
|
+ T_Year = 439,
|
|
+ T_Flag = 440,
|
|
+ T_EOC = 441,
|
|
+ T_Simulate = 442,
|
|
+ T_Beep_Delay = 443,
|
|
+ T_Sim_Duration = 444,
|
|
+ T_Server_Offset = 445,
|
|
+ T_Duration = 446,
|
|
+ T_Freq_Offset = 447,
|
|
+ T_Wander = 448,
|
|
+ T_Jitter = 449,
|
|
+ T_Prop_Delay = 450,
|
|
+ T_Proc_Delay = 451
|
|
+ };
|
|
#endif
|
|
/* Tokens. */
|
|
#define T_Abbrev 258
|
|
@@ -410,33 +414,37 @@ extern int yydebug;
|
|
#define T_Ttl 426
|
|
#define T_Type 427
|
|
#define T_U_int 428
|
|
-#define T_Unconfig 429
|
|
-#define T_Unpeer 430
|
|
-#define T_Version 431
|
|
-#define T_WanderThreshold 432
|
|
-#define T_Week 433
|
|
-#define T_Wildcard 434
|
|
-#define T_Xleave 435
|
|
-#define T_Year 436
|
|
-#define T_Flag 437
|
|
-#define T_EOC 438
|
|
-#define T_Simulate 439
|
|
-#define T_Beep_Delay 440
|
|
-#define T_Sim_Duration 441
|
|
-#define T_Server_Offset 442
|
|
-#define T_Duration 443
|
|
-#define T_Freq_Offset 444
|
|
-#define T_Wander 445
|
|
-#define T_Jitter 446
|
|
-#define T_Prop_Delay 447
|
|
-#define T_Proc_Delay 448
|
|
+#define T_UEcrypto 429
|
|
+#define T_UEcryptonak 430
|
|
+#define T_UEdigest 431
|
|
+#define T_Unconfig 432
|
|
+#define T_Unpeer 433
|
|
+#define T_Version 434
|
|
+#define T_WanderThreshold 435
|
|
+#define T_Week 436
|
|
+#define T_Wildcard 437
|
|
+#define T_Xleave 438
|
|
+#define T_Year 439
|
|
+#define T_Flag 440
|
|
+#define T_EOC 441
|
|
+#define T_Simulate 442
|
|
+#define T_Beep_Delay 443
|
|
+#define T_Sim_Duration 444
|
|
+#define T_Server_Offset 445
|
|
+#define T_Duration 446
|
|
+#define T_Freq_Offset 447
|
|
+#define T_Wander 448
|
|
+#define T_Jitter 449
|
|
+#define T_Prop_Delay 450
|
|
+#define T_Proc_Delay 451
|
|
|
|
-/* Value type. */
|
|
+
|
|
+
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
-typedef union YYSTYPE YYSTYPE;
|
|
-union YYSTYPE
|
|
+typedef union YYSTYPE
|
|
{
|
|
-#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:1909 */
|
|
+/* Line 2053 of yacc.c */
|
|
+#line 51 "../../ntpd/ntp_parser.y"
|
|
|
|
char * String;
|
|
double Double;
|
|
@@ -455,15 +463,29 @@ extern int yydebug;
|
|
script_info * Sim_script;
|
|
script_info_fifo * Sim_script_fifo;
|
|
|
|
-#line 459 "../../ntpd/ntp_parser.h" /* yacc.c:1909 */
|
|
-};
|
|
+
|
|
+/* Line 2053 of yacc.c */
|
|
+#line 469 "ntp_parser.h"
|
|
+} YYSTYPE;
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
# define YYSTYPE_IS_DECLARED 1
|
|
#endif
|
|
|
|
-
|
|
extern YYSTYPE yylval;
|
|
|
|
+#ifdef YYPARSE_PARAM
|
|
+#if defined __STDC__ || defined __cplusplus
|
|
+int yyparse (void *YYPARSE_PARAM);
|
|
+#else
|
|
+int yyparse ();
|
|
+#endif
|
|
+#else /* ! YYPARSE_PARAM */
|
|
+#if defined __STDC__ || defined __cplusplus
|
|
int yyparse (void);
|
|
+#else
|
|
+int yyparse ();
|
|
+#endif
|
|
+#endif /* ! YYPARSE_PARAM */
|
|
|
|
-#endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED */
|
|
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED */
|
|
Index: contrib/ntp/ntpd/ntp_proto.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_proto.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_proto.c (working copy)
|
|
@@ -153,6 +153,19 @@ u_long sys_declined; /* declined */
|
|
u_long sys_limitrejected; /* rate exceeded */
|
|
u_long sys_kodsent; /* KoD sent */
|
|
|
|
+/*
|
|
+ * Mechanism knobs: how soon do we unpeer()?
|
|
+ *
|
|
+ * The default way is "on-receipt". If this was a packet from a
|
|
+ * well-behaved source, on-receipt will offer the fastest recovery.
|
|
+ * If this was from a DoS attack, the default way makes it easier
|
|
+ * for a bad-guy to DoS us. So look and see what bites you harder
|
|
+ * and choose according to your environment.
|
|
+ */
|
|
+int unpeer_crypto_early = 1; /* bad crypto (TEST9) */
|
|
+int unpeer_crypto_nak_early = 1; /* crypto_NAK (TEST5) */
|
|
+int unpeer_digest_early = 1; /* bad digest (TEST5) */
|
|
+
|
|
static int kiss_code_check(u_char hisleap, u_char hisstratum, u_char hismode, u_int32 refid);
|
|
static double root_distance (struct peer *);
|
|
static void clock_combine (peer_select *, int, int);
|
|
@@ -1157,6 +1170,7 @@ receive(
|
|
|
|
} else {
|
|
peer->delay = sys_bdelay;
|
|
+ peer->bxmt = p_xmt;
|
|
}
|
|
break;
|
|
}
|
|
@@ -1177,6 +1191,7 @@ receive(
|
|
sys_restricted++;
|
|
return; /* ignore duplicate */
|
|
}
|
|
+ peer->bxmt = p_xmt;
|
|
#ifdef AUTOKEY
|
|
if (skeyid > NTP_MAXKEY)
|
|
crypto_recv(peer, rbufp);
|
|
@@ -1286,6 +1301,73 @@ receive(
|
|
return;
|
|
}
|
|
#endif /* AUTOKEY */
|
|
+
|
|
+ if (MODE_BROADCAST == hismode) {
|
|
+ u_char poll;
|
|
+ int bail = 0;
|
|
+ l_fp tdiff;
|
|
+
|
|
+ DPRINTF(2, ("receive: PROCPKT/BROADCAST: prev pkt %ld seconds ago, ppoll: %d, %d secs\n",
|
|
+ (current_time - peer->timelastrec),
|
|
+ peer->ppoll, (1 << peer->ppoll)
|
|
+ ));
|
|
+ /* Things we can check:
|
|
+ *
|
|
+ * Did the poll interval change?
|
|
+ * Is the poll interval in the packet in-range?
|
|
+ * Did this packet arrive too soon?
|
|
+ * Is the timestamp in this packet monotonic
|
|
+ * with respect to the previous packet?
|
|
+ */
|
|
+
|
|
+ /* This is noteworthy, not error-worthy */
|
|
+ if (pkt->ppoll != peer->ppoll) {
|
|
+ msyslog(LOG_INFO, "receive: broadcast poll from %s changed from %ud to %ud",
|
|
+ stoa(&rbufp->recv_srcadr),
|
|
+ peer->ppoll, pkt->ppoll);
|
|
+ }
|
|
+
|
|
+ poll = min(peer->maxpoll,
|
|
+ max(peer->minpoll, pkt->ppoll));
|
|
+
|
|
+ /* This is error-worthy */
|
|
+ if (pkt->ppoll != poll) {
|
|
+ msyslog(LOG_INFO, "receive: broadcast poll of %ud from %s is out-of-range (%d to %d)!",
|
|
+ pkt->ppoll, stoa(&rbufp->recv_srcadr),
|
|
+ peer->minpoll, peer->maxpoll);
|
|
+ ++bail;
|
|
+ }
|
|
+
|
|
+ if ( (current_time - peer->timelastrec)
|
|
+ < (1 << pkt->ppoll)) {
|
|
+ msyslog(LOG_INFO, "receive: broadcast packet from %s arrived after %ld, not %d seconds!",
|
|
+ stoa(&rbufp->recv_srcadr),
|
|
+ (current_time - peer->timelastrec),
|
|
+ (1 << pkt->ppoll)
|
|
+ );
|
|
+ ++bail;
|
|
+ }
|
|
+
|
|
+ tdiff = p_xmt;
|
|
+ L_SUB(&tdiff, &peer->bxmt);
|
|
+ if (tdiff.l_i < 0) {
|
|
+ msyslog(LOG_INFO, "receive: broadcast packet from %s contains non-monotonic timestamp: %#010x.%08x -> %#010x.%08x",
|
|
+ stoa(&rbufp->recv_srcadr),
|
|
+ peer->bxmt.l_ui, peer->bxmt.l_uf,
|
|
+ p_xmt.l_ui, p_xmt.l_uf
|
|
+ );
|
|
+ ++bail;
|
|
+ }
|
|
+
|
|
+ peer->bxmt = p_xmt;
|
|
+
|
|
+ if (bail) {
|
|
+ peer->timelastrec = current_time;
|
|
+ sys_declined++;
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
break;
|
|
|
|
/*
|
|
@@ -1362,7 +1444,12 @@ receive(
|
|
/*
|
|
* Basic mode checks:
|
|
*
|
|
- * If there is no origin timestamp, it's an initial packet.
|
|
+ * If there is no origin timestamp, it's either an initial packet
|
|
+ * or we've already received a response to our query. Of course,
|
|
+ * should 'aorg' be all-zero because this really was the original
|
|
+ * transmit timestamp, we'll drop the reply. There is a window of
|
|
+ * one nanosecond once every 136 years' time where this is possible.
|
|
+ * We currently ignore this situation.
|
|
*
|
|
* Otherwise, check for bogus packet in basic mode.
|
|
* If it is bogus, switch to interleaved mode and resynchronize,
|
|
@@ -1375,7 +1462,8 @@ receive(
|
|
} else if (peer->flip == 0) {
|
|
if (0 < hisstratum && L_ISZERO(&p_org)) {
|
|
L_CLR(&peer->aorg);
|
|
- } else if (!L_ISEQU(&p_org, &peer->aorg)) {
|
|
+ } else if ( L_ISZERO(&peer->aorg)
|
|
+ || !L_ISEQU(&p_org, &peer->aorg)) {
|
|
peer->bogusorg++;
|
|
peer->flash |= TEST2; /* bogus */
|
|
msyslog(LOG_INFO,
|
|
@@ -1424,7 +1512,9 @@ receive(
|
|
peer->flash |= TEST5; /* bad auth */
|
|
peer->badauth++;
|
|
if (peer->flags & FLAG_PREEMPT) {
|
|
- unpeer(peer);
|
|
+ if (unpeer_crypto_nak_early) {
|
|
+ unpeer(peer);
|
|
+ }
|
|
return;
|
|
}
|
|
#ifdef AUTOKEY
|
|
@@ -1450,7 +1540,9 @@ receive(
|
|
&& (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE))
|
|
fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask);
|
|
if (peer->flags & FLAG_PREEMPT) {
|
|
- unpeer(peer);
|
|
+ if (unpeer_digest_early) {
|
|
+ unpeer(peer);
|
|
+ }
|
|
return;
|
|
}
|
|
#ifdef AUTOKEY
|
|
@@ -1505,12 +1597,47 @@ receive(
|
|
return; /* Drop any other kiss code packets */
|
|
}
|
|
|
|
+ /*
|
|
+ * If:
|
|
+ * - this is a *cast (uni-, broad-, or m-) server packet
|
|
+ * - and it's authenticated
|
|
+ * then see if the sender's IP is trusted for this keyid.
|
|
+ * If it is, great - nothing special to do here.
|
|
+ * Otherwise, we should report and bail.
|
|
+ */
|
|
|
|
+ switch (hismode) {
|
|
+ case MODE_SERVER: /* server mode */
|
|
+ case MODE_BROADCAST: /* broadcast mode */
|
|
+ case MODE_ACTIVE: /* symmetric active mode */
|
|
+ if ( is_authentic == AUTH_OK
|
|
+ && !authistrustedip(skeyid, &peer->srcadr)) {
|
|
+ report_event(PEVNT_AUTH, peer, "authIP");
|
|
+ peer->badauth++;
|
|
+ return;
|
|
+ }
|
|
+ break;
|
|
+
|
|
+ case MODE_UNSPEC: /* unspecified (old version) */
|
|
+ case MODE_PASSIVE: /* symmetric passive mode */
|
|
+ case MODE_CLIENT: /* client mode */
|
|
+#if 0 /* At this point, MODE_CONTROL is overloaded by MODE_BCLIENT */
|
|
+ case MODE_CONTROL: /* control mode */
|
|
+#endif
|
|
+ case MODE_PRIVATE: /* private mode */
|
|
+ case MODE_BCLIENT: /* broadcast client mode */
|
|
+ break;
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
+
|
|
+
|
|
/*
|
|
* That was hard and I am sweaty, but the packet is squeaky
|
|
* clean. Get on with real work.
|
|
*/
|
|
peer->timereceived = current_time;
|
|
+ peer->timelastrec = current_time;
|
|
if (is_authentic == AUTH_OK)
|
|
peer->flags |= FLAG_AUTHENTIC;
|
|
else
|
|
@@ -1560,8 +1687,11 @@ receive(
|
|
"crypto error");
|
|
peer_clear(peer, "CRYP");
|
|
peer->flash |= TEST9; /* bad crypt */
|
|
- if (peer->flags & FLAG_PREEMPT)
|
|
- unpeer(peer);
|
|
+ if (peer->flags & FLAG_PREEMPT) {
|
|
+ if (unpeer_crypto_early) {
|
|
+ unpeer(peer);
|
|
+ }
|
|
+ }
|
|
}
|
|
return;
|
|
}
|
|
@@ -4358,6 +4488,22 @@ proto_config(
|
|
io_multicast_del(svalue);
|
|
break;
|
|
|
|
+ /*
|
|
+ * Unpeer Early policy choices
|
|
+ */
|
|
+
|
|
+ case PROTO_UECRYPTO: /* Crypto */
|
|
+ unpeer_crypto_early = value;
|
|
+ break;
|
|
+
|
|
+ case PROTO_UECRYPTONAK: /* Crypto_NAK */
|
|
+ unpeer_crypto_nak_early = value;
|
|
+ break;
|
|
+
|
|
+ case PROTO_UEDIGEST: /* Digest */
|
|
+ unpeer_digest_early = value;
|
|
+ break;
|
|
+
|
|
default:
|
|
msyslog(LOG_NOTICE,
|
|
"proto: unsupported option %d", item);
|
|
Index: contrib/ntp/ntpd/ntp_request.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_request.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_request.c (working copy)
|
|
@@ -81,8 +81,8 @@ static void do_unconf (sockaddr_u *, endpt *, stru
|
|
static void set_sys_flag (sockaddr_u *, endpt *, struct req_pkt *);
|
|
static void clr_sys_flag (sockaddr_u *, endpt *, struct req_pkt *);
|
|
static void setclr_flags (sockaddr_u *, endpt *, struct req_pkt *, u_long);
|
|
-static void list_restrict4 (restrict_u *, struct info_restrict **);
|
|
-static void list_restrict6 (restrict_u *, struct info_restrict **);
|
|
+static void list_restrict4 (const restrict_u *, struct info_restrict **);
|
|
+static void list_restrict6 (const restrict_u *, struct info_restrict **);
|
|
static void list_restrict (sockaddr_u *, endpt *, struct req_pkt *);
|
|
static void do_resaddflags (sockaddr_u *, endpt *, struct req_pkt *);
|
|
static void do_ressubflags (sockaddr_u *, endpt *, struct req_pkt *);
|
|
@@ -667,43 +667,35 @@ list_peers(
|
|
struct req_pkt *inpkt
|
|
)
|
|
{
|
|
- struct info_peer_list *ip;
|
|
- struct peer *pp;
|
|
- int skip = 0;
|
|
+ struct info_peer_list * ip;
|
|
+ const struct peer * pp;
|
|
|
|
ip = (struct info_peer_list *)prepare_pkt(srcadr, inter, inpkt,
|
|
v6sizeof(struct info_peer_list));
|
|
for (pp = peer_list; pp != NULL && ip != NULL; pp = pp->p_link) {
|
|
if (IS_IPV6(&pp->srcadr)) {
|
|
- if (client_v6_capable) {
|
|
- ip->addr6 = SOCK_ADDR6(&pp->srcadr);
|
|
- ip->v6_flag = 1;
|
|
- skip = 0;
|
|
- } else {
|
|
- skip = 1;
|
|
- break;
|
|
- }
|
|
+ if (!client_v6_capable)
|
|
+ continue;
|
|
+ ip->addr6 = SOCK_ADDR6(&pp->srcadr);
|
|
+ ip->v6_flag = 1;
|
|
} else {
|
|
ip->addr = NSRCADR(&pp->srcadr);
|
|
if (client_v6_capable)
|
|
ip->v6_flag = 0;
|
|
- skip = 0;
|
|
}
|
|
|
|
- if (!skip) {
|
|
- ip->port = NSRCPORT(&pp->srcadr);
|
|
- ip->hmode = pp->hmode;
|
|
- ip->flags = 0;
|
|
- if (pp->flags & FLAG_CONFIG)
|
|
- ip->flags |= INFO_FLAG_CONFIG;
|
|
- if (pp == sys_peer)
|
|
- ip->flags |= INFO_FLAG_SYSPEER;
|
|
- if (pp->status == CTL_PST_SEL_SYNCCAND)
|
|
- ip->flags |= INFO_FLAG_SEL_CANDIDATE;
|
|
- if (pp->status >= CTL_PST_SEL_SYSPEER)
|
|
- ip->flags |= INFO_FLAG_SHORTLIST;
|
|
- ip = (struct info_peer_list *)more_pkt();
|
|
- }
|
|
+ ip->port = NSRCPORT(&pp->srcadr);
|
|
+ ip->hmode = pp->hmode;
|
|
+ ip->flags = 0;
|
|
+ if (pp->flags & FLAG_CONFIG)
|
|
+ ip->flags |= INFO_FLAG_CONFIG;
|
|
+ if (pp == sys_peer)
|
|
+ ip->flags |= INFO_FLAG_SYSPEER;
|
|
+ if (pp->status == CTL_PST_SEL_SYNCCAND)
|
|
+ ip->flags |= INFO_FLAG_SEL_CANDIDATE;
|
|
+ if (pp->status >= CTL_PST_SEL_SYSPEER)
|
|
+ ip->flags |= INFO_FLAG_SHORTLIST;
|
|
+ ip = (struct info_peer_list *)more_pkt();
|
|
} /* for pp */
|
|
|
|
flush_pkt();
|
|
@@ -720,10 +712,9 @@ list_peers_sum(
|
|
struct req_pkt *inpkt
|
|
)
|
|
{
|
|
- register struct info_peer_summary *ips;
|
|
- register struct peer *pp;
|
|
- l_fp ltmp;
|
|
- register int skip;
|
|
+ struct info_peer_summary * ips;
|
|
+ const struct peer * pp;
|
|
+ l_fp ltmp;
|
|
|
|
DPRINTF(3, ("wants peer list summary\n"));
|
|
|
|
@@ -736,18 +727,14 @@ list_peers_sum(
|
|
* want only v4.
|
|
*/
|
|
if (IS_IPV6(&pp->srcadr)) {
|
|
- if (client_v6_capable) {
|
|
- ips->srcadr6 = SOCK_ADDR6(&pp->srcadr);
|
|
- ips->v6_flag = 1;
|
|
- if (pp->dstadr)
|
|
- ips->dstadr6 = SOCK_ADDR6(&pp->dstadr->sin);
|
|
- else
|
|
- ZERO(ips->dstadr6);
|
|
- skip = 0;
|
|
- } else {
|
|
- skip = 1;
|
|
- break;
|
|
- }
|
|
+ if (!client_v6_capable)
|
|
+ continue;
|
|
+ ips->srcadr6 = SOCK_ADDR6(&pp->srcadr);
|
|
+ ips->v6_flag = 1;
|
|
+ if (pp->dstadr)
|
|
+ ips->dstadr6 = SOCK_ADDR6(&pp->dstadr->sin);
|
|
+ else
|
|
+ ZERO(ips->dstadr6);
|
|
} else {
|
|
ips->srcadr = NSRCADR(&pp->srcadr);
|
|
if (client_v6_capable)
|
|
@@ -765,39 +752,37 @@ list_peers_sum(
|
|
ips->dstadr = NSRCADR(&pp->dstadr->bcast);
|
|
}
|
|
}
|
|
- } else
|
|
+ } else {
|
|
ips->dstadr = 0;
|
|
-
|
|
- skip = 0;
|
|
+ }
|
|
}
|
|
|
|
- if (!skip) {
|
|
- ips->srcport = NSRCPORT(&pp->srcadr);
|
|
- ips->stratum = pp->stratum;
|
|
- ips->hpoll = pp->hpoll;
|
|
- ips->ppoll = pp->ppoll;
|
|
- ips->reach = pp->reach;
|
|
- ips->flags = 0;
|
|
- if (pp == sys_peer)
|
|
- ips->flags |= INFO_FLAG_SYSPEER;
|
|
- if (pp->flags & FLAG_CONFIG)
|
|
- ips->flags |= INFO_FLAG_CONFIG;
|
|
- if (pp->flags & FLAG_REFCLOCK)
|
|
- ips->flags |= INFO_FLAG_REFCLOCK;
|
|
- if (pp->flags & FLAG_PREFER)
|
|
- ips->flags |= INFO_FLAG_PREFER;
|
|
- if (pp->flags & FLAG_BURST)
|
|
- ips->flags |= INFO_FLAG_BURST;
|
|
- if (pp->status == CTL_PST_SEL_SYNCCAND)
|
|
- ips->flags |= INFO_FLAG_SEL_CANDIDATE;
|
|
- if (pp->status >= CTL_PST_SEL_SYSPEER)
|
|
- ips->flags |= INFO_FLAG_SHORTLIST;
|
|
- ips->hmode = pp->hmode;
|
|
- ips->delay = HTONS_FP(DTOFP(pp->delay));
|
|
- DTOLFP(pp->offset, <mp);
|
|
- HTONL_FP(<mp, &ips->offset);
|
|
- ips->dispersion = HTONS_FP(DTOUFP(SQRT(pp->disp)));
|
|
- }
|
|
+ ips->srcport = NSRCPORT(&pp->srcadr);
|
|
+ ips->stratum = pp->stratum;
|
|
+ ips->hpoll = pp->hpoll;
|
|
+ ips->ppoll = pp->ppoll;
|
|
+ ips->reach = pp->reach;
|
|
+ ips->flags = 0;
|
|
+ if (pp == sys_peer)
|
|
+ ips->flags |= INFO_FLAG_SYSPEER;
|
|
+ if (pp->flags & FLAG_CONFIG)
|
|
+ ips->flags |= INFO_FLAG_CONFIG;
|
|
+ if (pp->flags & FLAG_REFCLOCK)
|
|
+ ips->flags |= INFO_FLAG_REFCLOCK;
|
|
+ if (pp->flags & FLAG_PREFER)
|
|
+ ips->flags |= INFO_FLAG_PREFER;
|
|
+ if (pp->flags & FLAG_BURST)
|
|
+ ips->flags |= INFO_FLAG_BURST;
|
|
+ if (pp->status == CTL_PST_SEL_SYNCCAND)
|
|
+ ips->flags |= INFO_FLAG_SEL_CANDIDATE;
|
|
+ if (pp->status >= CTL_PST_SEL_SYSPEER)
|
|
+ ips->flags |= INFO_FLAG_SHORTLIST;
|
|
+ ips->hmode = pp->hmode;
|
|
+ ips->delay = HTONS_FP(DTOFP(pp->delay));
|
|
+ DTOLFP(pp->offset, <mp);
|
|
+ HTONL_FP(<mp, &ips->offset);
|
|
+ ips->dispersion = HTONS_FP(DTOUFP(SQRT(pp->disp)));
|
|
+
|
|
ips = (struct info_peer_summary *)more_pkt();
|
|
} /* for pp */
|
|
|
|
@@ -1197,7 +1182,7 @@ mem_stats(
|
|
ms->hashcount[i] = (u_char)
|
|
max((u_int)peer_hash_count[i], UCHAR_MAX);
|
|
|
|
- more_pkt();
|
|
+ (void) more_pkt();
|
|
flush_pkt();
|
|
}
|
|
|
|
@@ -1285,7 +1270,7 @@ loop_info(
|
|
li->compliance = htonl((u_int32)(tc_counter));
|
|
li->watchdog_timer = htonl((u_int32)(current_time - sys_epoch));
|
|
|
|
- more_pkt();
|
|
+ (void) more_pkt();
|
|
flush_pkt();
|
|
}
|
|
|
|
@@ -1571,56 +1556,143 @@ setclr_flags(
|
|
req_ack(srcadr, inter, inpkt, INFO_OKAY);
|
|
}
|
|
|
|
+/* There have been some issues with the restrict list processing,
|
|
+ * ranging from problems with deep recursion (resulting in stack
|
|
+ * overflows) and overfull reply buffers.
|
|
+ *
|
|
+ * To avoid this trouble the list reversal is done iteratively using a
|
|
+ * scratch pad.
|
|
+ */
|
|
+typedef struct RestrictStack RestrictStackT;
|
|
+struct RestrictStack {
|
|
+ RestrictStackT *link;
|
|
+ size_t fcnt;
|
|
+ const restrict_u *pres[63];
|
|
+};
|
|
+
|
|
+static size_t
|
|
+getStackSheetSize(
|
|
+ RestrictStackT *sp
|
|
+ )
|
|
+{
|
|
+ if (sp)
|
|
+ return sizeof(sp->pres)/sizeof(sp->pres[0]);
|
|
+ return 0u;
|
|
+}
|
|
+
|
|
+static int/*BOOL*/
|
|
+pushRestriction(
|
|
+ RestrictStackT **spp,
|
|
+ const restrict_u *ptr
|
|
+ )
|
|
+{
|
|
+ RestrictStackT *sp;
|
|
+
|
|
+ if (NULL == (sp = *spp) || 0 == sp->fcnt) {
|
|
+ /* need another sheet in the scratch pad */
|
|
+ sp = emalloc(sizeof(*sp));
|
|
+ sp->link = *spp;
|
|
+ sp->fcnt = getStackSheetSize(sp);
|
|
+ *spp = sp;
|
|
+ }
|
|
+ sp->pres[--sp->fcnt] = ptr;
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+static int/*BOOL*/
|
|
+popRestriction(
|
|
+ RestrictStackT **spp,
|
|
+ const restrict_u **opp
|
|
+ )
|
|
+{
|
|
+ RestrictStackT *sp;
|
|
+
|
|
+ if (NULL == (sp = *spp) || sp->fcnt >= getStackSheetSize(sp))
|
|
+ return FALSE;
|
|
+
|
|
+ *opp = sp->pres[sp->fcnt++];
|
|
+ if (sp->fcnt >= getStackSheetSize(sp)) {
|
|
+ /* discard sheet from scratch pad */
|
|
+ *spp = sp->link;
|
|
+ free(sp);
|
|
+ }
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+static void
|
|
+flushRestrictionStack(
|
|
+ RestrictStackT **spp
|
|
+ )
|
|
+{
|
|
+ RestrictStackT *sp;
|
|
+
|
|
+ while (NULL != (sp = *spp)) {
|
|
+ *spp = sp->link;
|
|
+ free(sp);
|
|
+ }
|
|
+}
|
|
+
|
|
/*
|
|
- * list_restrict4 - recursive helper for list_restrict dumps IPv4
|
|
+ * list_restrict4 - iterative helper for list_restrict dumps IPv4
|
|
* restriction list in reverse order.
|
|
*/
|
|
static void
|
|
list_restrict4(
|
|
- restrict_u * res,
|
|
+ const restrict_u * res,
|
|
struct info_restrict ** ppir
|
|
)
|
|
{
|
|
+ RestrictStackT * rpad;
|
|
struct info_restrict * pir;
|
|
|
|
- if (res->link != NULL)
|
|
- list_restrict4(res->link, ppir);
|
|
-
|
|
pir = *ppir;
|
|
- pir->addr = htonl(res->u.v4.addr);
|
|
- if (client_v6_capable)
|
|
- pir->v6_flag = 0;
|
|
- pir->mask = htonl(res->u.v4.mask);
|
|
- pir->count = htonl(res->count);
|
|
- pir->flags = htons(res->flags);
|
|
- pir->mflags = htons(res->mflags);
|
|
- *ppir = (struct info_restrict *)more_pkt();
|
|
+ for (rpad = NULL; res; res = res->link)
|
|
+ if (!pushRestriction(&rpad, res))
|
|
+ break;
|
|
+
|
|
+ while (pir && popRestriction(&rpad, &res)) {
|
|
+ pir->addr = htonl(res->u.v4.addr);
|
|
+ if (client_v6_capable)
|
|
+ pir->v6_flag = 0;
|
|
+ pir->mask = htonl(res->u.v4.mask);
|
|
+ pir->count = htonl(res->count);
|
|
+ pir->flags = htons(res->flags);
|
|
+ pir->mflags = htons(res->mflags);
|
|
+ pir = (struct info_restrict *)more_pkt();
|
|
+ }
|
|
+ flushRestrictionStack(&rpad);
|
|
+ *ppir = pir;
|
|
}
|
|
|
|
-
|
|
/*
|
|
- * list_restrict6 - recursive helper for list_restrict dumps IPv6
|
|
+ * list_restrict6 - iterative helper for list_restrict dumps IPv6
|
|
* restriction list in reverse order.
|
|
*/
|
|
static void
|
|
list_restrict6(
|
|
- restrict_u * res,
|
|
+ const restrict_u * res,
|
|
struct info_restrict ** ppir
|
|
)
|
|
{
|
|
+ RestrictStackT * rpad;
|
|
struct info_restrict * pir;
|
|
|
|
- if (res->link != NULL)
|
|
- list_restrict6(res->link, ppir);
|
|
+ pir = *ppir;
|
|
+ for (rpad = NULL; res; res = res->link)
|
|
+ if (!pushRestriction(&rpad, res))
|
|
+ break;
|
|
|
|
- pir = *ppir;
|
|
- pir->addr6 = res->u.v6.addr;
|
|
- pir->mask6 = res->u.v6.mask;
|
|
- pir->v6_flag = 1;
|
|
- pir->count = htonl(res->count);
|
|
- pir->flags = htons(res->flags);
|
|
- pir->mflags = htons(res->mflags);
|
|
- *ppir = (struct info_restrict *)more_pkt();
|
|
+ while (pir && popRestriction(&rpad, &res)) {
|
|
+ pir->addr6 = res->u.v6.addr;
|
|
+ pir->mask6 = res->u.v6.mask;
|
|
+ pir->v6_flag = 1;
|
|
+ pir->count = htonl(res->count);
|
|
+ pir->flags = htons(res->flags);
|
|
+ pir->mflags = htons(res->mflags);
|
|
+ pir = (struct info_restrict *)more_pkt();
|
|
+ }
|
|
+ flushRestrictionStack(&rpad);
|
|
+ *ppir = pir;
|
|
}
|
|
|
|
|
|
@@ -1644,8 +1716,7 @@ list_restrict(
|
|
/*
|
|
* The restriction lists are kept sorted in the reverse order
|
|
* than they were originally. To preserve the output semantics,
|
|
- * dump each list in reverse order. A recursive helper function
|
|
- * achieves that.
|
|
+ * dump each list in reverse order. The workers take care of that.
|
|
*/
|
|
list_restrict4(restrictlist4, &ir);
|
|
if (client_v6_capable)
|
|
@@ -2010,7 +2081,7 @@ do_trustkey(
|
|
register int items;
|
|
|
|
items = INFO_NITEMS(inpkt->err_nitems);
|
|
- kp = (uint32_t*)&inpkt->u;
|
|
+ kp = (uint32_t *)&inpkt->u;
|
|
while (items-- > 0) {
|
|
authtrust(*kp, trust);
|
|
kp++;
|
|
@@ -2089,7 +2160,7 @@ req_get_traps(
|
|
it = (struct info_trap *)prepare_pkt(srcadr, inter, inpkt,
|
|
v6sizeof(struct info_trap));
|
|
|
|
- for (i = 0, tr = ctl_traps; i < COUNTOF(ctl_traps); i++, tr++) {
|
|
+ for (i = 0, tr = ctl_traps; it && i < COUNTOF(ctl_traps); i++, tr++) {
|
|
if (tr->tr_flags & TRAP_INUSE) {
|
|
if (IS_IPV4(&tr->tr_addr)) {
|
|
if (tr->tr_localaddr == any_interface)
|
|
@@ -2405,7 +2476,7 @@ get_clock_info(
|
|
ic = (struct info_clock *)prepare_pkt(srcadr, inter, inpkt,
|
|
sizeof(struct info_clock));
|
|
|
|
- while (items-- > 0) {
|
|
+ while (items-- > 0 && ic) {
|
|
NSRCADR(&addr) = *clkaddr++;
|
|
if (!ISREFCLOCKADR(&addr) || NULL ==
|
|
findexistingpeer(&addr, NULL, NULL, -1, 0)) {
|
|
@@ -2544,7 +2615,7 @@ get_clkbug_info(
|
|
ic = (struct info_clkbug *)prepare_pkt(srcadr, inter, inpkt,
|
|
sizeof(struct info_clkbug));
|
|
|
|
- while (items-- > 0) {
|
|
+ while (items-- > 0 && ic) {
|
|
NSRCADR(&addr) = *clkaddr++;
|
|
if (!ISREFCLOCKADR(&addr) || NULL ==
|
|
findexistingpeer(&addr, NULL, NULL, -1, 0)) {
|
|
@@ -2592,13 +2663,15 @@ fill_info_if_stats(void *data, interface_info_t *i
|
|
struct info_if_stats **ifsp = (struct info_if_stats **)data;
|
|
struct info_if_stats *ifs = *ifsp;
|
|
endpt *ep = interface_info->ep;
|
|
+
|
|
+ if (NULL == ifs)
|
|
+ return;
|
|
|
|
ZERO(*ifs);
|
|
|
|
if (IS_IPV6(&ep->sin)) {
|
|
- if (!client_v6_capable) {
|
|
+ if (!client_v6_capable)
|
|
return;
|
|
- }
|
|
ifs->v6_flag = 1;
|
|
ifs->unaddr.addr6 = SOCK_ADDR6(&ep->sin);
|
|
ifs->unbcast.addr6 = SOCK_ADDR6(&ep->bcast);
|
|
Index: contrib/ntp/ntpd/ntp_scanner.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_scanner.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_scanner.c (working copy)
|
|
@@ -669,7 +669,7 @@ int
|
|
yylex(void)
|
|
{
|
|
static follby followedby = FOLLBY_TOKEN;
|
|
- int i;
|
|
+ size_t i;
|
|
int instring;
|
|
int yylval_was_set;
|
|
int converted;
|
|
Index: contrib/ntp/ntpd/ntp_timer.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntp_timer.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntp_timer.c (working copy)
|
|
@@ -549,14 +549,16 @@ check_leapsec(
|
|
#ifdef LEAP_SMEAR
|
|
leap_smear.enabled = leap_smear_intv != 0;
|
|
#endif
|
|
- if (reset) {
|
|
+ if (reset) {
|
|
lsprox = LSPROX_NOWARN;
|
|
leapsec_reset_frame();
|
|
memset(&lsdata, 0, sizeof(lsdata));
|
|
} else {
|
|
- int fired = leapsec_query(&lsdata, now, tpiv);
|
|
+ int fired;
|
|
|
|
- DPRINTF(1, ("*** leapsec_query: fired %i, now %u (0x%08X), tai_diff %i, ddist %u\n",
|
|
+ fired = leapsec_query(&lsdata, now, tpiv);
|
|
+
|
|
+ DPRINTF(3, ("*** leapsec_query: fired %i, now %u (0x%08X), tai_diff %i, ddist %u\n",
|
|
fired, now, now, lsdata.tai_diff, lsdata.ddist));
|
|
|
|
#ifdef LEAP_SMEAR
|
|
@@ -572,8 +574,7 @@ check_leapsec(
|
|
DPRINTF(1, ("*** leapsec_query: setting leap_smear interval %li, begin %.0f, end %.0f\n",
|
|
leap_smear.interval, leap_smear.intv_start, leap_smear.intv_end));
|
|
}
|
|
- }
|
|
- else {
|
|
+ } else {
|
|
if (leap_smear.interval)
|
|
DPRINTF(1, ("*** leapsec_query: clearing leap_smear interval\n"));
|
|
leap_smear.interval = 0;
|
|
@@ -655,10 +656,10 @@ check_leapsec(
|
|
sys_tai = lsdata.tai_offs;
|
|
} else {
|
|
#ifdef AUTOKEY
|
|
- update_autokey = (sys_tai != lsdata.tai_offs);
|
|
+ update_autokey = (sys_tai != (u_int)lsdata.tai_offs);
|
|
#endif
|
|
- lsprox = lsdata.proximity;
|
|
- sys_tai = lsdata.tai_offs;
|
|
+ lsprox = lsdata.proximity;
|
|
+ sys_tai = lsdata.tai_offs;
|
|
}
|
|
}
|
|
|
|
Index: contrib/ntp/ntpd/ntpd-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd-opts.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpd-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:28:29 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:15:45 AM by AutoGen 5.18.5
|
|
* From the definitions ntpd-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpd program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -75,8 +75,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for ntpd options
|
|
*/
|
|
static char const ntpd_opt_strs[3129] =
|
|
-/* 0 */ "ntpd 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "ntpd 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -205,12 +205,12 @@ static char const ntpd_opt_strs[3129] =
|
|
/* 2900 */ "output version information and exit\0"
|
|
/* 2936 */ "version\0"
|
|
/* 2944 */ "NTPD\0"
|
|
-/* 2949 */ "ntpd - NTP daemon program - Ver. 4.2.8p5\n"
|
|
+/* 2949 */ "ntpd - NTP daemon program - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
|
|
"\t\t[ <server1> ... <serverN> ]\n\0"
|
|
/* 3080 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
/* 3114 */ "\n\0"
|
|
-/* 3116 */ "ntpd 4.2.8p5";
|
|
+/* 3116 */ "ntpd 4.2.8p6";
|
|
|
|
/**
|
|
* ipv4 option description with
|
|
@@ -1529,8 +1529,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via ntpdOptions.pzCopyright */
|
|
- puts(_("ntpd 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("ntpd 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\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.8p5\n\
|
|
+ puts(_("ntpd - NTP daemon program - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
|
|
\t\t[ <server1> ... <serverN> ]\n"));
|
|
|
|
@@ -1678,7 +1678,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>
|
|
puts(_("\n"));
|
|
|
|
/* referenced via ntpdOptions.pzFullVersion */
|
|
- puts(_("ntpd 4.2.8p5"));
|
|
+ puts(_("ntpd 4.2.8p6"));
|
|
|
|
/* referenced via ntpdOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/ntpd/ntpd-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd-opts.h (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpd-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:28:28 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:15:43 AM by AutoGen 5.18.5
|
|
* From the definitions ntpd-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpd program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -106,9 +106,9 @@ typedef enum {
|
|
/** count of all options for ntpd */
|
|
#define OPTION_CT 38
|
|
/** ntpd version */
|
|
-#define NTPD_VERSION "4.2.8p5"
|
|
+#define NTPD_VERSION "4.2.8p6"
|
|
/** Full ntpd version text */
|
|
-#define NTPD_FULL_VERSION "ntpd 4.2.8p5"
|
|
+#define NTPD_FULL_VERSION "ntpd 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/ntpd/ntpd.1ntpdman
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.1ntpdman (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.1ntpdman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpd 1ntpdman "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpd 1ntpdman "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-KDaWJq/ag-WDaOIq)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9JaiRS/ag-jKaaQS)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:44 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:54 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpd-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -979,7 +979,7 @@ RFC5908
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The
|
|
Index: contrib/ntp/ntpd/ntpd.1ntpdmdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.1ntpdmdoc (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.1ntpdmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPD 1ntpdmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpd-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -886,7 +886,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: contrib/ntp/ntpd/ntpd.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.c (working copy)
|
|
@@ -209,6 +209,11 @@ extern int syscall (int, ...);
|
|
|
|
|
|
#if !defined(SIM) && defined(SIGDIE1)
|
|
+static volatile int signalled = 0;
|
|
+static volatile int signo = 0;
|
|
+
|
|
+/* In an ideal world, 'finish_safe()' would declared as noreturn... */
|
|
+static void finish_safe (int);
|
|
static RETSIGTYPE finish (int);
|
|
#endif
|
|
|
|
@@ -298,11 +303,28 @@ my_pthread_warmup_worker(
|
|
static void
|
|
my_pthread_warmup(void)
|
|
{
|
|
- pthread_t thread;
|
|
- int rc;
|
|
+ pthread_t thread;
|
|
+ pthread_attr_t thr_attr;
|
|
+ int rc;
|
|
+
|
|
+ pthread_attr_init(&thr_attr);
|
|
+#if defined(HAVE_PTHREAD_ATTR_GETSTACKSIZE) && \
|
|
+ defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && \
|
|
+ defined(PTHREAD_STACK_MIN)
|
|
+ rc = pthread_attr_setstacksize(&thr_attr, PTHREAD_STACK_MIN);
|
|
+ if (0 != rc)
|
|
+ msyslog(LOG_ERR,
|
|
+ "my_pthread_warmup: pthread_attr_setstacksize() -> %s",
|
|
+ strerror(rc));
|
|
+#endif
|
|
rc = pthread_create(
|
|
- &thread, NULL, my_pthread_warmup_worker, NULL);
|
|
- if (0 == rc) {
|
|
+ &thread, &thr_attr, my_pthread_warmup_worker, NULL);
|
|
+ pthread_attr_destroy(&thr_attr);
|
|
+ if (0 != rc) {
|
|
+ msyslog(LOG_ERR,
|
|
+ "my_pthread_warmup: pthread_create() -> %s",
|
|
+ strerror(rc));
|
|
+ } else {
|
|
pthread_cancel(thread);
|
|
pthread_join(thread, NULL);
|
|
}
|
|
@@ -1204,6 +1226,10 @@ int scmp_sc[] = {
|
|
# ifdef HAVE_IO_COMPLETION_PORT
|
|
|
|
for (;;) {
|
|
+#if !defined(SIM) && defined(SIGDIE1)
|
|
+ if (signalled)
|
|
+ finish_safe(signo);
|
|
+#endif
|
|
GetReceivedBuffers();
|
|
# else /* normal I/O */
|
|
|
|
@@ -1211,11 +1237,19 @@ int scmp_sc[] = {
|
|
was_alarmed = FALSE;
|
|
|
|
for (;;) {
|
|
+#if !defined(SIM) && defined(SIGDIE1)
|
|
+ if (signalled)
|
|
+ finish_safe(signo);
|
|
+#endif
|
|
if (alarm_flag) { /* alarmed? */
|
|
was_alarmed = TRUE;
|
|
alarm_flag = FALSE;
|
|
}
|
|
|
|
+ /* collect async name/addr results */
|
|
+ if (!was_alarmed)
|
|
+ harvest_blocking_responses();
|
|
+
|
|
if (!was_alarmed && !has_full_recv_buffer()) {
|
|
/*
|
|
* Nothing to do. Wait for something.
|
|
@@ -1330,9 +1364,9 @@ int scmp_sc[] = {
|
|
/*
|
|
* finish - exit gracefully
|
|
*/
|
|
-static RETSIGTYPE
|
|
-finish(
|
|
- int sig
|
|
+static void
|
|
+finish_safe(
|
|
+ int sig
|
|
)
|
|
{
|
|
const char *sig_desc;
|
|
@@ -1353,6 +1387,16 @@ int scmp_sc[] = {
|
|
peer_cleanup();
|
|
exit(0);
|
|
}
|
|
+
|
|
+static RETSIGTYPE
|
|
+finish(
|
|
+ int sig
|
|
+ )
|
|
+{
|
|
+ signalled = 1;
|
|
+ signo = sig;
|
|
+}
|
|
+
|
|
#endif /* !SIM && SIGDIE1 */
|
|
|
|
|
|
Index: contrib/ntp/ntpd/ntpd.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.html (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.html (working copy)
|
|
@@ -39,7 +39,7 @@ The program can operate in any of several modes, i
|
|
symmetric and broadcast modes, and with both symmetric-key and public-key
|
|
cryptography.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntpd</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntpd</code>.
|
|
|
|
<ul class="menu">
|
|
<li><a accesskey="1" href="#ntpd-Description">ntpd Description</a>: Description
|
|
@@ -220,7 +220,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p4
|
|
+<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p5
|
|
Usage: ntpd [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \
|
|
[ <server1> ... <serverN> ]
|
|
Flg Arg Option-Name Description
|
|
Index: contrib/ntp/ntpd/ntpd.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpd @NTPD_MS@ "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpd @NTPD_MS@ "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-KDaWJq/ag-WDaOIq)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9JaiRS/ag-jKaaQS)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:44 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:17:54 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpd-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -979,7 +979,7 @@ RFC5908
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The
|
|
Index: contrib/ntp/ntpd/ntpd.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/ntpd.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpd/ntpd.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPD @NTPD_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpd-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -886,7 +886,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: contrib/ntp/ntpd/refclock_chu.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/refclock_chu.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/refclock_chu.c (working copy)
|
|
@@ -1264,7 +1264,7 @@ chu_a(
|
|
offset = up->charstamp;
|
|
else if (k > 0)
|
|
i = 1;
|
|
- for (; i < nchar && i < k + 10; i++) {
|
|
+ for (; i < nchar && (i - 10) < k; i++) {
|
|
up->tstamp[up->ntstamp] = up->cstamp[i];
|
|
L_SUB(&up->tstamp[up->ntstamp], &offset);
|
|
L_ADD(&offset, &up->charstamp);
|
|
Index: contrib/ntp/ntpd/refclock_gpsdjson.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/refclock_gpsdjson.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/refclock_gpsdjson.c (working copy)
|
|
@@ -377,17 +377,6 @@ static int16_t clamped_precision(int rawprec);
|
|
* local / static stuff
|
|
*/
|
|
|
|
-/* The logon string is actually the ?WATCH command of GPSD, using JSON
|
|
- * data and selecting the GPS device name we created from our unit
|
|
- * number. We have an old a newer version that request PPS (and TOFF)
|
|
- * transmission.
|
|
- * Note: These are actually format strings!
|
|
- */
|
|
-static const char * const s_req_watch[2] = {
|
|
- "?WATCH={\"device\":\"%s\",\"enable\":true,\"json\":true};\r\n",
|
|
- "?WATCH={\"device\":\"%s\",\"enable\":true,\"json\":true,\"pps\":true};\r\n"
|
|
-};
|
|
-
|
|
static const char * const s_req_version =
|
|
"?VERSION;\r\n";
|
|
|
|
@@ -1147,7 +1136,7 @@ json_token_skip(
|
|
const json_ctx * ctx,
|
|
tok_ref tid)
|
|
{
|
|
- if (tid >= 0 && tid < ctx->ntok) {
|
|
+ if (tid >= 0 && (u_int)tid < ctx->ntok) {
|
|
int len = ctx->tok[tid].size;
|
|
/* For arrays and objects, the size is the number of
|
|
* ITEMS in the compound. Thats the number of objects in
|
|
@@ -1172,7 +1161,10 @@ json_token_skip(
|
|
++tid;
|
|
break;
|
|
}
|
|
- if (tid > ctx->ntok) /* Impossible? Paranoia rulez. */
|
|
+ /* The next condition should never be true, but paranoia
|
|
+ * prevails...
|
|
+ */
|
|
+ if (tid < 0 || (u_int)tid > ctx->ntok)
|
|
tid = ctx->ntok;
|
|
}
|
|
return tid;
|
|
@@ -1200,7 +1192,7 @@ json_object_lookup(
|
|
tid = json_token_skip(ctx, tid); /* skip val */
|
|
} else if (strcmp(key, ctx->buf + ctx->tok[tid].start)) {
|
|
tid = json_token_skip(ctx, tid+1); /* skip key+val */
|
|
- } else if (what < 0 || what == ctx->tok[tid+1].type) {
|
|
+ } else if (what < 0 || (u_int)what == ctx->tok[tid+1].type) {
|
|
return tid + 1;
|
|
} else {
|
|
break;
|
|
@@ -1513,8 +1505,14 @@ process_version(
|
|
if (up->fl_watch)
|
|
return;
|
|
|
|
+ /* The logon string is actually the ?WATCH command of GPSD,
|
|
+ * using JSON data and selecting the GPS device name we created
|
|
+ * from our unit number. We have an old a newer version that
|
|
+ * request PPS (and TOFF) transmission.
|
|
+ */
|
|
snprintf(up->buffer, sizeof(up->buffer),
|
|
- s_req_watch[up->pf_toff != 0], up->device);
|
|
+ "?WATCH={\"device\":\"%s\",\"enable\":true,\"json\":true%s};\r\n",
|
|
+ up->device, (up->pf_toff ? ",\"pps\":true" : ""));
|
|
buf = up->buffer;
|
|
len = strlen(buf);
|
|
log_data(peer, "send", buf, len);
|
|
Index: contrib/ntp/ntpd/refclock_jjy.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/refclock_jjy.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/refclock_jjy.c (working copy)
|
|
@@ -149,8 +149,8 @@
|
|
*/
|
|
|
|
struct jjyRawDataBreak {
|
|
- char *pString ;
|
|
- int iLength ;
|
|
+ const char * pString ;
|
|
+ int iLength ;
|
|
} ;
|
|
|
|
#define MAX_TIMESTAMP 6
|
|
@@ -627,7 +627,7 @@ jjy_receive ( struct recvbuf *rbufp )
|
|
#ifdef DEBUG
|
|
printf( "\nrefclock_jjy.c : %s : Len=%d ", sFunctionName, pp->lencode ) ;
|
|
for ( i = 0 ; i < pp->lencode ; i ++ ) {
|
|
- if ( iscntrl( pp->a_lastcode[i] & 0x7F ) ) {
|
|
+ if ( iscntrl( (u_char)(pp->a_lastcode[i] & 0x7F) ) ) {
|
|
printf( "<x%02X>", pp->a_lastcode[i] & 0xFF ) ;
|
|
} else {
|
|
printf( "%c", pp->a_lastcode[i] ) ;
|
|
@@ -702,7 +702,7 @@ jjy_receive ( struct recvbuf *rbufp )
|
|
up->iLineBufLen ++ ;
|
|
|
|
/* Copy printable characters */
|
|
- if ( ! iscntrl( up->sRawBuf[i] ) ) {
|
|
+ if ( ! iscntrl( (u_char)up->sRawBuf[i] ) ) {
|
|
up->sTextBuf[up->iTextBufLen] = up->sRawBuf[i] ;
|
|
up->iTextBufLen ++ ;
|
|
}
|
|
@@ -1154,12 +1154,13 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp
|
|
struct refclockproc *pp ;
|
|
struct peer *peer;
|
|
|
|
- char *pBuf, sLog [ 100 ] ;
|
|
- int iLen ;
|
|
- int rc ;
|
|
+ char * pBuf ;
|
|
+ char sLog [ 100 ] ;
|
|
+ int iLen ;
|
|
+ int rc ;
|
|
|
|
- const char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
/* Initialize pointers */
|
|
|
|
@@ -1359,8 +1360,8 @@ jjy_poll_tristate_jjy01 ( int unit, struct peer *
|
|
struct refclockproc *pp ;
|
|
struct jjyunit *up ;
|
|
|
|
- const char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
pp = peer->procptr;
|
|
up = pp->unitptr ;
|
|
@@ -2010,12 +2011,13 @@ jjy_receive_tristate_gpsclock01 ( struct recvbuf *
|
|
struct refclockproc *pp ;
|
|
struct peer *peer;
|
|
|
|
- char *pBuf, sLog [ 100 ] ;
|
|
- int iLen ;
|
|
- int rc ;
|
|
+ char * pBuf ;
|
|
+ char sLog [ 100 ] ;
|
|
+ int iLen ;
|
|
+ int rc ;
|
|
|
|
- const char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
/* Initialize pointers */
|
|
|
|
@@ -2239,8 +2241,8 @@ jjy_poll_tristate_gpsclock01 ( int unit, struct pe
|
|
struct refclockproc *pp ;
|
|
struct jjyunit *up ;
|
|
|
|
- const char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
pp = peer->procptr ;
|
|
up = pp->unitptr ;
|
|
@@ -2576,7 +2578,7 @@ static int teljjy_bye_ignore ( struct peer *peer,
|
|
static int teljjy_bye_disc ( struct peer *peer, struct refclockproc *, struct jjyunit * ) ;
|
|
static int teljjy_bye_modem ( struct peer *peer, struct refclockproc *, struct jjyunit * ) ;
|
|
|
|
-static int ( *pTeljjyHandler [ ] [ 5 ] ) ( ) =
|
|
+static int ( *pTeljjyHandler [ ] [ 5 ] ) ( struct peer *, struct refclockproc *, struct jjyunit *) =
|
|
{ /*STATE_IDLE STATE_DAILOUT STATE_LOGIN STATE_CONNECT STATE_BYE */
|
|
/* NULL */ { teljjy_idle_ignore , teljjy_dial_ignore, teljjy_login_ignore, teljjy_conn_ignore, teljjy_bye_ignore },
|
|
/* START */ { teljjy_idle_dialout, teljjy_dial_ignore, teljjy_login_ignore, teljjy_conn_ignore, teljjy_bye_ignore },
|
|
@@ -2715,12 +2717,12 @@ jjy_start_telephone ( int unit, struct peer *peer,
|
|
|
|
iNumberOfDigitsOfPhoneNumber = iCommaCount = iCommaPosition = iFirstThreeDigitsCount = 0 ;
|
|
for ( i = 0 ; i < strlen( sys_phone[0] ) ; i ++ ) {
|
|
- if ( isdigit( *(sys_phone[0]+i) ) ) {
|
|
+ if ( isdigit( (u_char)sys_phone[0][i] ) ) {
|
|
if ( iFirstThreeDigitsCount < sizeof(sFirstThreeDigits)-1 ) {
|
|
- sFirstThreeDigits[iFirstThreeDigitsCount++] = *(sys_phone[0]+i) ;
|
|
+ sFirstThreeDigits[iFirstThreeDigitsCount++] = sys_phone[0][i] ;
|
|
}
|
|
iNumberOfDigitsOfPhoneNumber ++ ;
|
|
- } else if ( *(sys_phone[0]+i) == ',' ) {
|
|
+ } else if ( sys_phone[0][i] == ',' ) {
|
|
iCommaCount ++ ;
|
|
if ( iCommaCount > 1 ) {
|
|
msyslog( LOG_ERR, "refclock_jjy.c : jjy_start_telephone : phone in the ntpd.conf should be zero or one comma." ) ;
|
|
@@ -2729,7 +2731,7 @@ jjy_start_telephone ( int unit, struct peer *peer,
|
|
}
|
|
iFirstThreeDigitsCount = 0 ;
|
|
iCommaPosition = i ;
|
|
- } else if ( *(sys_phone[0]+i) != '-' ) {
|
|
+ } else if ( sys_phone[0][i] != '-' ) {
|
|
msyslog( LOG_ERR, "refclock_jjy.c : jjy_start_telephone : phone in the ntpd.conf should be a number or a hyphen." ) ;
|
|
up->bInitError = TRUE ;
|
|
return 1 ;
|
|
@@ -3213,8 +3215,8 @@ static int
|
|
teljjy_login_login ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
DEBUG_TELJJY_PRINTF( "teljjy_login_login" ) ;
|
|
|
|
@@ -3290,8 +3292,8 @@ static int
|
|
teljjy_conn_send ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- const char *pCmd ;
|
|
- int i, iLen, iNextClockState ;
|
|
+ const char * pCmd ;
|
|
+ int i, iLen, iNextClockState ;
|
|
|
|
DEBUG_TELJJY_PRINTF( "teljjy_conn_send" ) ;
|
|
|
|
@@ -3527,7 +3529,7 @@ static int
|
|
teljjy_conn_silent ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- const char *pCmd ;
|
|
+ const char * pCmd ;
|
|
|
|
DEBUG_TELJJY_PRINTF( "teljjy_conn_silent" ) ;
|
|
|
|
@@ -3665,7 +3667,7 @@ static int modem_esc_data ( struct peer *, stru
|
|
static int modem_esc_silent ( struct peer *, struct refclockproc *, struct jjyunit * ) ;
|
|
static int modem_esc_disc ( struct peer *, struct refclockproc *, struct jjyunit * ) ;
|
|
|
|
-static int ( *pModemHandler [ ] [ 5 ] ) ( ) =
|
|
+static int ( *pModemHandler [ ] [ 5 ] ) ( struct peer *, struct refclockproc *, struct jjyunit * ) =
|
|
{ /*STATE_DISCONNECT STATE_INITIALIZE STATE_DAILING STATE_CONNECT STATE_ESCAPE */
|
|
/* NULL */ { modem_disc_ignore, modem_init_ignore, modem_dial_ignore , modem_conn_ignore, modem_esc_ignore },
|
|
/* INITIALIZE */ { modem_disc_init , modem_init_start , modem_dial_ignore , modem_conn_ignore, modem_esc_ignore },
|
|
@@ -3993,10 +3995,11 @@ static int
|
|
modem_init_resp00 ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- char *pCmd, cBuf [ 46 ] ;
|
|
- int iCmdLen ;
|
|
- int iErrorCorrection, iSpeakerSwitch, iSpeakerVolume ;
|
|
- int iNextModemState = STAY_MODEM_STATE ;
|
|
+ const char * pCmd ;
|
|
+ char cBuf [ 46 ] ;
|
|
+ int iCmdLen ;
|
|
+ int iErrorCorrection, iSpeakerSwitch, iSpeakerVolume ;
|
|
+ int iNextModemState = STAY_MODEM_STATE ;
|
|
|
|
DEBUG_MODEM_PRINTF( "modem_init_resp00" ) ;
|
|
|
|
@@ -4031,7 +4034,7 @@ modem_init_resp00 ( struct peer *peer, struct refc
|
|
}
|
|
|
|
pCmd = cBuf ;
|
|
- snprintf( pCmd, sizeof(cBuf), "ATM%dL%d\r\n", iSpeakerSwitch, iSpeakerVolume ) ;
|
|
+ snprintf( cBuf, sizeof(cBuf), "ATM%dL%d\r\n", iSpeakerSwitch, iSpeakerVolume ) ;
|
|
break ;
|
|
|
|
case 3 :
|
|
@@ -4060,7 +4063,7 @@ modem_init_resp00 ( struct peer *peer, struct refc
|
|
}
|
|
|
|
pCmd = cBuf ;
|
|
- snprintf( pCmd, sizeof(cBuf), "AT\\N%d\r\n", iErrorCorrection ) ;
|
|
+ snprintf( cBuf, sizeof(cBuf), "AT\\N%d\r\n", iErrorCorrection ) ;
|
|
break ;
|
|
|
|
case 7 :
|
|
@@ -4251,8 +4254,8 @@ static int
|
|
modem_esc_escape ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
DEBUG_MODEM_PRINTF( "modem_esc_escape" ) ;
|
|
|
|
@@ -4317,8 +4320,8 @@ static int
|
|
modem_esc_disc ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
|
|
{
|
|
|
|
- char *pCmd ;
|
|
- int iCmdLen ;
|
|
+ const char * pCmd ;
|
|
+ int iCmdLen ;
|
|
|
|
DEBUG_MODEM_PRINTF( "modem_esc_disc" ) ;
|
|
|
|
@@ -4349,9 +4352,9 @@ static void
|
|
jjy_write_clockstats ( struct peer *peer, int iMark, const char *pData )
|
|
{
|
|
|
|
- char sLog [ 100 ] ;
|
|
- char *pMark ;
|
|
- int iMarkLen, iDataLen ;
|
|
+ char sLog [ 100 ] ;
|
|
+ const char * pMark ;
|
|
+ int iMarkLen, iDataLen ;
|
|
|
|
switch ( iMark ) {
|
|
case JJY_CLOCKSTATS_MARK_JJY :
|
|
Index: contrib/ntp/ntpd/refclock_shm.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpd/refclock_shm.c (revision 294707)
|
|
+++ contrib/ntp/ntpd/refclock_shm.c (working copy)
|
|
@@ -600,7 +600,7 @@ shm_timer(
|
|
cd.year, cd.month, cd.monthday,
|
|
cd.hour, cd.minute, cd.second,
|
|
(long)shm_stat.tvt.tv_nsec);
|
|
- pp->lencode = (c < sizeof(pp->a_lastcode)) ? c : 0;
|
|
+ pp->lencode = (c > 0 && (size_t)c < sizeof(pp->a_lastcode)) ? c : 0;
|
|
|
|
/* check 1: age control of local time stamp */
|
|
tt = shm_stat.tvc.tv_sec - shm_stat.tvr.tv_sec;
|
|
Index: contrib/ntp/ntpdc/invoke-ntpdc.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/invoke-ntpdc.texi (revision 294707)
|
|
+++ contrib/ntp/ntpdc/invoke-ntpdc.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:31:26 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:18:37 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.8p5
|
|
+ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p6
|
|
Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
|
|
Flg Arg Option-Name Description
|
|
-4 no ipv4 Force IPv4 DNS name resolution
|
|
Index: contrib/ntp/ntpdc/ntpdc-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc-opts.c (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:31:12 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:18:22 AM by AutoGen 5.18.5
|
|
* From the definitions ntpdc-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpdc program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -69,8 +69,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for ntpdc options
|
|
*/
|
|
static char const ntpdc_opt_strs[1911] =
|
|
-/* 0 */ "ntpdc 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "ntpdc 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -128,7 +128,7 @@ static char const ntpdc_opt_strs[1911] =
|
|
/* 1694 */ "no-load-opts\0"
|
|
/* 1707 */ "no\0"
|
|
/* 1710 */ "NTPDC\0"
|
|
-/* 1716 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p5\n"
|
|
+/* 1716 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
|
|
/* 1846 */ "$HOME\0"
|
|
/* 1852 */ ".\0"
|
|
@@ -135,7 +135,7 @@ static char const ntpdc_opt_strs[1911] =
|
|
/* 1854 */ ".ntprc\0"
|
|
/* 1861 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
/* 1895 */ "\n\0"
|
|
-/* 1897 */ "ntpdc 4.2.8p5";
|
|
+/* 1897 */ "ntpdc 4.2.8p6";
|
|
|
|
/**
|
|
* ipv4 option description with
|
|
@@ -796,8 +796,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via ntpdcOptions.pzCopyright */
|
|
- puts(_("ntpdc 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("ntpdc 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\n"));
|
|
@@ -862,7 +862,7 @@ implied warranty.\n"));
|
|
puts(_("load options from a config file"));
|
|
|
|
/* referenced via ntpdcOptions.pzUsageTitle */
|
|
- puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p5\n\
|
|
+ puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
|
|
|
|
/* referenced via ntpdcOptions.pzExplain */
|
|
@@ -869,7 +869,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>
|
|
puts(_("\n"));
|
|
|
|
/* referenced via ntpdcOptions.pzFullVersion */
|
|
- puts(_("ntpdc 4.2.8p5"));
|
|
+ puts(_("ntpdc 4.2.8p6"));
|
|
|
|
/* referenced via ntpdcOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/ntpdc/ntpdc-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc-opts.h (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:31:11 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:18:21 AM by AutoGen 5.18.5
|
|
* From the definitions ntpdc-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpdc program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -83,9 +83,9 @@ typedef enum {
|
|
/** count of all options for ntpdc */
|
|
#define OPTION_CT 15
|
|
/** ntpdc version */
|
|
-#define NTPDC_VERSION "4.2.8p5"
|
|
+#define NTPDC_VERSION "4.2.8p6"
|
|
/** Full ntpdc version text */
|
|
-#define NTPDC_FULL_VERSION "ntpdc 4.2.8p5"
|
|
+#define NTPDC_FULL_VERSION "ntpdc 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/ntpdc/ntpdc.1ntpdcman
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.1ntpdcman (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.1ntpdcman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpdc 1ntpdcman "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpdc 1ntpdcman "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-EXaGzs/ag-QXayys)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-n4aaHU/ag-A4a4FU)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:22 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:33 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpdc-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -848,7 +848,7 @@ RFC1305
|
|
.SH AUTHORS
|
|
The formatting directives in this document came from FreeBSD.
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The
|
|
Index: contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPDC 1ntpdcmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:29 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:39 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpdc-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -787,7 +787,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh AUTHORS
|
|
The formatting directives in this document came from FreeBSD.
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: contrib/ntp/ntpdc/ntpdc.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.c (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.c (working copy)
|
|
@@ -605,7 +605,11 @@ getresponse(
|
|
int seq;
|
|
fd_set fds;
|
|
ssize_t n;
|
|
- size_t pad;
|
|
+ int pad;
|
|
+ /* absolute timeout checks. Not 'time_t' by intention! */
|
|
+ uint32_t tobase; /* base value for timeout */
|
|
+ uint32_t tospan; /* timeout span (max delay) */
|
|
+ uint32_t todiff; /* current delay */
|
|
|
|
/*
|
|
* This is pretty tricky. We may get between 1 and many packets
|
|
@@ -622,6 +626,7 @@ getresponse(
|
|
lastseq = 999; /* too big to be a sequence number */
|
|
ZERO(haveseq);
|
|
FD_ZERO(&fds);
|
|
+ tobase = (uint32_t)time(NULL);
|
|
|
|
again:
|
|
if (firstpkt)
|
|
@@ -628,6 +633,7 @@ getresponse(
|
|
tvo = tvout;
|
|
else
|
|
tvo = tvsout;
|
|
+ tospan = (uint32_t)tvo.tv_sec + (tvo.tv_usec != 0);
|
|
|
|
FD_SET(sockfd, &fds);
|
|
n = select(sockfd+1, &fds, NULL, NULL, &tvo);
|
|
@@ -635,6 +641,17 @@ getresponse(
|
|
warning("select fails");
|
|
return -1;
|
|
}
|
|
+
|
|
+ /*
|
|
+ * Check if this is already too late. Trash the data and fake a
|
|
+ * timeout if this is so.
|
|
+ */
|
|
+ todiff = (((uint32_t)time(NULL)) - tobase) & 0x7FFFFFFFu;
|
|
+ if ((n > 0) && (todiff > tospan)) {
|
|
+ n = recv(sockfd, (char *)&rpkt, sizeof(rpkt), 0);
|
|
+ n = 0; /* faked timeout return from 'select()'*/
|
|
+ }
|
|
+
|
|
if (n == 0) {
|
|
/*
|
|
* Timed out. Return what we have
|
|
@@ -780,8 +797,10 @@ getresponse(
|
|
}
|
|
|
|
/*
|
|
- * So far, so good. Copy this data into the output array.
|
|
+ * So far, so good. Copy this data into the output array. Bump
|
|
+ * the timeout base, in case we expect more data.
|
|
*/
|
|
+ tobase = (uint32_t)time(NULL);
|
|
if ((datap + datasize + (pad * items)) > (pktdata + pktdatasize)) {
|
|
size_t offset = datap - pktdata;
|
|
growpktdata();
|
|
Index: contrib/ntp/ntpdc/ntpdc.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.html (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.html (working copy)
|
|
@@ -36,7 +36,7 @@ display the time offset of the system clock relati
|
|
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>This document applies to version 4.2.8p5 of <code>ntpdc</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntpdc</code>.
|
|
|
|
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
|
|
IETF specification.
|
|
@@ -152,7 +152,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p5
|
|
+<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p6
|
|
Usage: ntpdc [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]
|
|
Flg Arg Option-Name Description
|
|
-4 no ipv4 Force IPv4 DNS name resolution
|
|
Index: contrib/ntp/ntpdc/ntpdc.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpdc @NTPDC_MS@ "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpdc @NTPDC_MS@ "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-EXaGzs/ag-QXayys)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-n4aaHU/ag-A4a4FU)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:22 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:33 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpdc-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -848,7 +848,7 @@ RFC1305
|
|
.SH AUTHORS
|
|
The formatting directives in this document came from FreeBSD.
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
The
|
|
Index: contrib/ntp/ntpdc/ntpdc.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpdc/ntpdc.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpdc/ntpdc.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPDC @NTPDC_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:29 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:39 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpdc-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -787,7 +787,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh AUTHORS
|
|
The formatting directives in this document came from FreeBSD.
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: contrib/ntp/ntpq/invoke-ntpq.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/invoke-ntpq.texi (revision 294707)
|
|
+++ contrib/ntp/ntpq/invoke-ntpq.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:32:00 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:19:10 AM by AutoGen 5.18.5
|
|
# From the definitions ntpq-opts.def
|
|
# and the template file agtexi-cmd.tpl
|
|
@end ignore
|
|
@@ -847,7 +847,7 @@ with a status code of 0.
|
|
|
|
@exampleindent 0
|
|
@example
|
|
-ntpq - standard NTP query program - Ver. 4.2.8p5
|
|
+ntpq - standard NTP query program - Ver. 4.2.8p6
|
|
Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
|
|
Flg Arg Option-Name Description
|
|
-4 no ipv4 Force IPv4 DNS name resolution
|
|
Index: contrib/ntp/ntpq/ntpq-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq-opts.c (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpq-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:31:32 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:18:42 AM by AutoGen 5.18.5
|
|
* From the definitions ntpq-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpq program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -69,8 +69,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for ntpq options
|
|
*/
|
|
static char const ntpq_opt_strs[1925] =
|
|
-/* 0 */ "ntpq 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "ntpq 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -129,13 +129,13 @@ static char const ntpq_opt_strs[1925] =
|
|
/* 1723 */ "no-load-opts\0"
|
|
/* 1736 */ "no\0"
|
|
/* 1739 */ "NTPQ\0"
|
|
-/* 1744 */ "ntpq - standard NTP query program - Ver. 4.2.8p5\n"
|
|
+/* 1744 */ "ntpq - standard NTP query program - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
|
|
/* 1863 */ "$HOME\0"
|
|
/* 1869 */ ".\0"
|
|
/* 1871 */ ".ntprc\0"
|
|
/* 1878 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
-/* 1912 */ "ntpq 4.2.8p5";
|
|
+/* 1912 */ "ntpq 4.2.8p6";
|
|
|
|
/**
|
|
* ipv4 option description with
|
|
@@ -786,8 +786,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via ntpqOptions.pzCopyright */
|
|
- puts(_("ntpq 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("ntpq 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\n"));
|
|
@@ -852,11 +852,11 @@ implied warranty.\n"));
|
|
puts(_("load options from a config file"));
|
|
|
|
/* referenced via ntpqOptions.pzUsageTitle */
|
|
- puts(_("ntpq - standard NTP query program - Ver. 4.2.8p5\n\
|
|
+ puts(_("ntpq - standard NTP query program - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
|
|
|
|
/* referenced via ntpqOptions.pzFullVersion */
|
|
- puts(_("ntpq 4.2.8p5"));
|
|
+ puts(_("ntpq 4.2.8p6"));
|
|
|
|
/* referenced via ntpqOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/ntpq/ntpq-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq-opts.h (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpq-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:31:32 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:18:42 AM by AutoGen 5.18.5
|
|
* From the definitions ntpq-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpq program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -83,9 +83,9 @@ typedef enum {
|
|
/** count of all options for ntpq */
|
|
#define OPTION_CT 15
|
|
/** ntpq version */
|
|
-#define NTPQ_VERSION "4.2.8p5"
|
|
+#define NTPQ_VERSION "4.2.8p6"
|
|
/** Full ntpq version text */
|
|
-#define NTPQ_FULL_VERSION "ntpq 4.2.8p5"
|
|
+#define NTPQ_FULL_VERSION "ntpq 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/ntpq/ntpq-subs.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq-subs.c (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq-subs.c (working copy)
|
|
@@ -2861,7 +2861,7 @@ collect_mru_list(
|
|
ri, sptoa(&recent->addr), ri,
|
|
recent->last.l_ui, recent->last.l_uf);
|
|
chars = strlen(buf);
|
|
- if (REQ_ROOM <= chars)
|
|
+ if ((size_t)REQ_ROOM <= chars)
|
|
break;
|
|
memcpy(req, buf, chars + 1);
|
|
req += chars;
|
|
@@ -3173,6 +3173,7 @@ mrulist(
|
|
qsort(sorted, mru_count, sizeof(sorted[0]),
|
|
mru_qcmp_table[order]);
|
|
|
|
+ mrulist_interrupted = FALSE;
|
|
printf( "lstint avgint rstr r m v count rport remote address\n"
|
|
"==============================================================================\n");
|
|
/* '=' x 78 */
|
|
@@ -3199,6 +3200,11 @@ mrulist(
|
|
nntohost(&recent->addr));
|
|
if (showhostnames)
|
|
fflush(fp);
|
|
+ if (mrulist_interrupted) {
|
|
+ fputs("\n --interrupted--\n", fp);
|
|
+ fflush(fp);
|
|
+ break;
|
|
+ }
|
|
}
|
|
fflush(fp);
|
|
if (debug) {
|
|
Index: contrib/ntp/ntpq/ntpq.1ntpqman
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.1ntpqman (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.1ntpqman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpq 1ntpqman "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpq 1ntpqman "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4VaaKt/ag-eWa4It)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Z7aWRV/ag-_7aOQV)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:55 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:06 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpq-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -1412,7 +1412,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpq/ntpq.1ntpqmdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.1ntpqmdoc (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.1ntpqmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPQ 1ntpqmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpq-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -955,7 +955,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpq/ntpq.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.c (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.c (working copy)
|
|
@@ -218,7 +218,7 @@ static void outputarr (FILE *, char *, int, l_fp *
|
|
static int assoccmp (const void *, const void *);
|
|
static void on_ctrlc (void);
|
|
u_short varfmt (const char *);
|
|
-
|
|
+static int my_easprintf (char**, const char *, ...) NTP_PRINTF(2, 3);
|
|
void ntpq_custom_opt_handler (tOptions *, tOptDesc *);
|
|
|
|
#ifdef OPENSSL
|
|
@@ -472,7 +472,7 @@ ntpqmain(
|
|
|
|
{
|
|
char *list;
|
|
- char *msg, *fmt;
|
|
+ char *msg;
|
|
|
|
list = list_digest_names();
|
|
for (icmd = 0; icmd < sizeof(builtins)/sizeof(builtins[0]); icmd++) {
|
|
@@ -486,13 +486,15 @@ ntpqmain(
|
|
|
|
#ifdef OPENSSL
|
|
builtins[icmd].desc[0] = "digest-name";
|
|
- fmt = "set key type to use for authenticated requests, one of:%s";
|
|
+ my_easprintf(&msg,
|
|
+ "set key type to use for authenticated requests, one of:%s",
|
|
+ list);
|
|
#else
|
|
builtins[icmd].desc[0] = "md5";
|
|
- fmt = "set key type to use for authenticated requests (%s)";
|
|
+ my_easprintf(&msg,
|
|
+ "set key type to use for authenticated requests (%s)",
|
|
+ list);
|
|
#endif
|
|
- msg = emalloc(strlen(fmt) + strlen(list) - strlen("%s") +1);
|
|
- sprintf(msg, fmt, list);
|
|
builtins[icmd].comment = msg;
|
|
free(list);
|
|
}
|
|
@@ -844,6 +846,10 @@ getresponse(
|
|
fd_set fds;
|
|
int n;
|
|
int errcode;
|
|
+ /* absolute timeout checks. Not 'time_t' by intention! */
|
|
+ uint32_t tobase; /* base value for timeout */
|
|
+ uint32_t tospan; /* timeout span (max delay) */
|
|
+ uint32_t todiff; /* current delay */
|
|
|
|
/*
|
|
* This is pretty tricky. We may get between 1 and MAXFRAG packets
|
|
@@ -860,6 +866,8 @@ getresponse(
|
|
numfrags = 0;
|
|
seenlastfrag = 0;
|
|
|
|
+ tobase = (uint32_t)time(NULL);
|
|
+
|
|
FD_ZERO(&fds);
|
|
|
|
/*
|
|
@@ -872,13 +880,40 @@ getresponse(
|
|
tvo = tvout;
|
|
else
|
|
tvo = tvsout;
|
|
+ tospan = (uint32_t)tvo.tv_sec + (tvo.tv_usec != 0);
|
|
|
|
FD_SET(sockfd, &fds);
|
|
n = select(sockfd+1, &fds, NULL, NULL, &tvo);
|
|
if (n == -1) {
|
|
+#if !defined(SYS_WINNT) && defined(EINTR)
|
|
+ /* Windows does not know about EINTR (until very
|
|
+ * recently) and the handling of console events
|
|
+ * is *very* different from POSIX/UNIX signal
|
|
+ * handling anyway.
|
|
+ *
|
|
+ * Under non-windows targets we map EINTR as
|
|
+ * 'last packet was received' and try to exit
|
|
+ * the receive sequence.
|
|
+ */
|
|
+ if (errno == EINTR) {
|
|
+ seenlastfrag = 1;
|
|
+ goto maybe_final;
|
|
+ }
|
|
+#endif
|
|
warning("select fails");
|
|
return -1;
|
|
}
|
|
+
|
|
+ /*
|
|
+ * Check if this is already too late. Trash the data and
|
|
+ * fake a timeout if this is so.
|
|
+ */
|
|
+ todiff = (((uint32_t)time(NULL)) - tobase) & 0x7FFFFFFFu;
|
|
+ if ((n > 0) && (todiff > tospan)) {
|
|
+ n = recv(sockfd, (char *)&rpkt, sizeof(rpkt), 0);
|
|
+ n = 0; /* faked timeout return from 'select()'*/
|
|
+ }
|
|
+
|
|
if (n == 0) {
|
|
/*
|
|
* Timed out. Return what we have
|
|
@@ -1141,14 +1176,17 @@ getresponse(
|
|
}
|
|
|
|
/*
|
|
- * Copy the data into the data buffer.
|
|
+ * Copy the data into the data buffer, and bump the
|
|
+ * timout base in case we need more.
|
|
*/
|
|
memcpy((char *)pktdata + offset, &rpkt.u, count);
|
|
-
|
|
+ tobase = (uint32_t)time(NULL);
|
|
+
|
|
/*
|
|
* If we've seen the last fragment, look for holes in the sequence.
|
|
* If there aren't any, we're done.
|
|
*/
|
|
+ maybe_final:
|
|
if (seenlastfrag && offsets[0] == 0) {
|
|
for (f = 1; f < numfrags; f++)
|
|
if (offsets[f-1] + counts[f-1] !=
|
|
@@ -2954,6 +2992,8 @@ nextvar(
|
|
len = srclen;
|
|
while (len > 0 && isspace((unsigned char)cp[len - 1]))
|
|
len--;
|
|
+ if (len >= sizeof(name))
|
|
+ return 0;
|
|
if (len > 0)
|
|
memcpy(name, cp, len);
|
|
name[len] = '\0';
|
|
@@ -3615,3 +3655,41 @@ on_ctrlc(void)
|
|
if ((*ctrlc_stack[--size])())
|
|
break;
|
|
}
|
|
+
|
|
+static int
|
|
+my_easprintf(
|
|
+ char ** ppinto,
|
|
+ const char * fmt ,
|
|
+ ...
|
|
+ )
|
|
+{
|
|
+ va_list va;
|
|
+ int prc;
|
|
+ size_t len = 128;
|
|
+ char * buf = emalloc(len);
|
|
+
|
|
+ again:
|
|
+ /* Note: we expect the memory allocation to fail long before the
|
|
+ * increment in buffer size actually overflows.
|
|
+ */
|
|
+ buf = (buf) ? erealloc(buf, len) : emalloc(len);
|
|
+
|
|
+ va_start(va, fmt);
|
|
+ prc = vsnprintf(buf, len, fmt, va);
|
|
+ va_end(va);
|
|
+
|
|
+ if (prc < 0) {
|
|
+ /* might be very old vsnprintf. Or actually MSVC... */
|
|
+ len += len >> 1;
|
|
+ goto again;
|
|
+ }
|
|
+ if ((size_t)prc >= len) {
|
|
+ /* at least we have the proper size now... */
|
|
+ len = (size_t)prc + 1;
|
|
+ goto again;
|
|
+ }
|
|
+ if ((size_t)prc < (len - 32))
|
|
+ buf = erealloc(buf, (size_t)prc + 1);
|
|
+ *ppinto = buf;
|
|
+ return prc;
|
|
+}
|
|
Index: contrib/ntp/ntpq/ntpq.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.html (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.html (working copy)
|
|
@@ -44,7 +44,7 @@ monitor the operational status
|
|
and determine the performance of
|
|
<code>ntpd</code>, the NTP daemon.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntpq</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntpq</code>.
|
|
|
|
<ul class="menu">
|
|
<li><a accesskey="1" href="#ntpq-Description">ntpq Description</a>
|
|
@@ -769,7 +769,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p4
|
|
+<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p5
|
|
Usage: ntpq [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]
|
|
Flg Arg Option-Name Description
|
|
-4 no ipv4 Force IPv4 DNS name resolution
|
|
Index: contrib/ntp/ntpq/ntpq.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpq @NTPQ_MS@ "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpq @NTPQ_MS@ "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4VaaKt/ag-eWa4It)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Z7aWRV/ag-_7aOQV)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:55 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:06 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpq-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -1412,7 +1412,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpq/ntpq.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpq/ntpq.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpq/ntpq.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPQ @NTPQ_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpq-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -955,7 +955,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntpsnmpd.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:32:15 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:19:26 AM by AutoGen 5.18.5
|
|
# From the definitions ntpsnmpd-opts.def
|
|
# and the template file agtexi-cmd.tpl
|
|
@end ignore
|
|
@@ -47,7 +47,7 @@ with a status code of 0.
|
|
|
|
@exampleindent 0
|
|
@example
|
|
-ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p5
|
|
+ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p6
|
|
Usage: ntpsnmpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
|
|
Flg Arg Option-Name Description
|
|
-n no nofork Do not fork
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:32:05 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:19:15 AM by AutoGen 5.18.5
|
|
* From the definitions ntpsnmpd-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpsnmpd program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -61,8 +61,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for ntpsnmpd options
|
|
*/
|
|
static char const ntpsnmpd_opt_strs[1610] =
|
|
-/* 0 */ "ntpsnmpd 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "ntpsnmpd 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -101,7 +101,7 @@ static char const ntpsnmpd_opt_strs[1610] =
|
|
/* 1414 */ "no-load-opts\0"
|
|
/* 1427 */ "no\0"
|
|
/* 1430 */ "NTPSNMPD\0"
|
|
-/* 1439 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p5\n"
|
|
+/* 1439 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
|
|
/* 1542 */ "$HOME\0"
|
|
/* 1548 */ ".\0"
|
|
@@ -108,7 +108,7 @@ static char const ntpsnmpd_opt_strs[1610] =
|
|
/* 1550 */ ".ntprc\0"
|
|
/* 1557 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
/* 1591 */ "\n\0"
|
|
-/* 1593 */ "ntpsnmpd 4.2.8p5";
|
|
+/* 1593 */ "ntpsnmpd 4.2.8p6";
|
|
|
|
/**
|
|
* nofork option description:
|
|
@@ -554,8 +554,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via ntpsnmpdOptions.pzCopyright */
|
|
- puts(_("ntpsnmpd 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("ntpsnmpd 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\n"));
|
|
@@ -599,7 +599,7 @@ implied warranty.\n"));
|
|
puts(_("load options from a config file"));
|
|
|
|
/* referenced via ntpsnmpdOptions.pzUsageTitle */
|
|
- puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p5\n\
|
|
+ puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
|
|
|
|
/* referenced via ntpsnmpdOptions.pzExplain */
|
|
@@ -606,7 +606,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>
|
|
puts(_("\n"));
|
|
|
|
/* referenced via ntpsnmpdOptions.pzFullVersion */
|
|
- puts(_("ntpsnmpd 4.2.8p5"));
|
|
+ puts(_("ntpsnmpd 4.2.8p6"));
|
|
|
|
/* referenced via ntpsnmpdOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:32:04 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:19:14 AM by AutoGen 5.18.5
|
|
* From the definitions ntpsnmpd-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntpsnmpd program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -76,9 +76,9 @@ typedef enum {
|
|
/** count of all options for ntpsnmpd */
|
|
#define OPTION_CT 8
|
|
/** ntpsnmpd version */
|
|
-#define NTPSNMPD_VERSION "4.2.8p5"
|
|
+#define NTPSNMPD_VERSION "4.2.8p6"
|
|
/** Full ntpsnmpd version text */
|
|
-#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p5"
|
|
+#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpsnmpd 1ntpsnmpdman "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpsnmpd 1ntpsnmpdman "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-dZaaSu/ag-qZa4Qu)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FaaWZW/ag-SaaOYW)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:12 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:22 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsnmpd-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -138,7 +138,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.NOP "Heiko Gerstung"
|
|
.br
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPSNMPD 1ntpsnmpdmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:18 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:28 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsnmpd-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -110,7 +110,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh AUTHORS
|
|
.An "Heiko Gerstung"
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd.html
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd.html (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd.html (working copy)
|
|
@@ -42,7 +42,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<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>This document applies to version 4.2.8p5 of <code>ntpsnmpd</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntpsnmpd</code>.
|
|
|
|
<ul class="menu">
|
|
<li><a accesskey="1" href="#ntpsnmpd-Description">ntpsnmpd Description</a>: Description
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd.man.in (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpsnmpd @NTPSNMPD_MS@ "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH ntpsnmpd @NTPSNMPD_MS@ "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-dZaaSu/ag-qZa4Qu)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FaaWZW/ag-SaaOYW)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:12 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:22 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsnmpd-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -138,7 +138,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.NOP "Heiko Gerstung"
|
|
.br
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPSNMPD @NTPSNMPD_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:18 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:28 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsnmpd-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -110,7 +110,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh AUTHORS
|
|
.An "Heiko Gerstung"
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/packageinfo.sh
|
|
===================================================================
|
|
--- contrib/ntp/packageinfo.sh (revision 294707)
|
|
+++ contrib/ntp/packageinfo.sh (working copy)
|
|
@@ -83,7 +83,7 @@ CLTAG=NTP_4_2_0
|
|
# - Numeric values increment
|
|
# - empty 'increments' to 1
|
|
# - NEW 'increments' to empty
|
|
-point=5
|
|
+point=6
|
|
|
|
### betapoint is normally modified by script.
|
|
# ntp-stable Beta number (betapoint)
|
|
Index: contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH calc_tickadj 1calc_tickadjman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH calc_tickadj 1calc_tickadjman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nyaOMf/ag-AyaWLf)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-lWayEG/ag-yWaGDG)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:26 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions calc_tickadj-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:28 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:46 AM by AutoGen 5.18.5
|
|
.\" From the definitions calc_tickadj-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/calc_tickadj.html (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/calc_tickadj.html (working copy)
|
|
@@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<h2 class="unnumbered">calc_tickadj User's Manual</h2>
|
|
|
|
<p>This document describes the use of the NTP Project's <code>calc_tickadj</code> program.
|
|
-This document applies to version 4.2.8p5 of <code>calc_tickadj</code>.
|
|
+This document applies to version 4.2.8p6 of <code>calc_tickadj</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
Index: contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH calc_tickadj 1calc_tickadjman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH calc_tickadj 1calc_tickadjman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nyaOMf/ag-AyaWLf)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-lWayEG/ag-yWaGDG)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:26 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions calc_tickadj-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:28 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:46 AM by AutoGen 5.18.5
|
|
.\" From the definitions calc_tickadj-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:30 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:09:47 AM by AutoGen 5.18.5
|
|
# From the definitions calc_tickadj-opts.def
|
|
# and the template file agtexi-cmd.tpl
|
|
@end ignore
|
|
Index: contrib/ntp/scripts/invoke-plot_summary.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/invoke-plot_summary.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/invoke-plot_summary.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:16 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:34 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.8p5
|
|
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p6
|
|
USAGE: plot_summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
|
|
|
|
--directory=str Where the summary files are
|
|
Index: contrib/ntp/scripts/invoke-summary.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/invoke-summary.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/invoke-summary.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-summary.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:22 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:40 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.8p5
|
|
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p6
|
|
USAGE: summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
|
|
|
|
--directory=str Directory containing stat files
|
|
Index: contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:39 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:09:57 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.8p5
|
|
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p6
|
|
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
|
|
|
|
-n, --tries=num Number of times to check ntpd
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (ntp-wait-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:33 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:09:51 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.8p5
|
|
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p6
|
|
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
-n, --tries=num Number of times to check ntpd
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp-wait 1ntp-waitman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntp-wait 1ntp-waitman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-7OaOah/ag-iPaW_g)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4fay4H/ag-fgaG3H)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:35 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:53 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-wait-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_WAIT 1ntp-waitmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:41 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:59 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-wait-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait.html (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait.html (working copy)
|
|
@@ -39,7 +39,7 @@ until the system's time has stabilized and synchro
|
|
and only then start any applicaitons (like database servers) that require
|
|
accurate and stable time.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntp-wait</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntp-wait</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -114,7 +114,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p5
|
|
+<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p6
|
|
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
-n, --tries=num Number of times to check ntpd
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp-wait @NTP_WAIT_MS@ "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntp-wait @NTP_WAIT_MS@ "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-7OaOah/ag-iPaW_g)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4fay4H/ag-fgaG3H)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:35 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:53 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-wait-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_WAIT @NTP_WAIT_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:41 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:09:59 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-wait-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntpsweep.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:45 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:03 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.8p5
|
|
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p6
|
|
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostfile]
|
|
|
|
-l, --host-list=str Host to execute actions on
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (ntpsweep-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:43 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:01 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.8p5
|
|
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p6
|
|
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
|
|
|
|
-l, --host-list=str Host to execute actions on
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpsweep 1ntpsweepman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntpsweep 1ntpsweepman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-eHaGCi/ag-rHaOBi)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-3aaGuJ/ag-ebaOtJ)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:47 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:05 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsweep-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:50 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:09 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsweep-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep.html (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep.html (working copy)
|
|
@@ -30,7 +30,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
|
|
<p>This document describes the use of the NTP Project's <code>ntpsweep</code> program.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>ntpsweep</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntpsweep</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -90,7 +90,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p5
|
|
+<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p6
|
|
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
|
|
|
|
-l, --host-list=str Host to execute actions on
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntpsweep 1ntpsweepman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntpsweep 1ntpsweepman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-eHaGCi/ag-rHaOBi)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-3aaGuJ/ag-ebaOtJ)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:47 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:05 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsweep-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:50 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:09 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpsweep-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntptrace.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:58 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:16 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.8p5
|
|
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p6
|
|
USAGE: ntptrace [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [host]
|
|
|
|
-n, --numeric Print IP addresses instead of hostnames
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (ntptrace-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:26:52 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:10 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.8p5
|
|
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p6
|
|
USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
|
|
|
|
-n, --numeric Print IP addresses instead of hostnames
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntptrace 1ntptraceman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntptrace 1ntptraceman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-tqaWUj/ag-Gqa4Tj)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-s0aOMK/ag-G0aWLK)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:54 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:13 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntptrace-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPTRACE 1ntptracemdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:00 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:18 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntptrace-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace.html (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace.html (working copy)
|
|
@@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<h2 class="unnumbered">Simple Network Time Protocol User Manual</h2>
|
|
|
|
<p>This document describes the use of the NTP Project's <code>ntptrace</code> program.
|
|
-This document applies to version 4.2.8p5 of <code>ntptrace</code>.
|
|
+This document applies to version 4.2.8p6 of <code>ntptrace</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -107,7 +107,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p5
|
|
+<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p6
|
|
USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
|
|
|
|
-n, --numeric Print IP addresses instead of hostnames
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntptrace @NTPTRACE_MS@ "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntptrace @NTPTRACE_MS@ "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-tqaWUj/ag-Gqa4Tj)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-s0aOMK/ag-G0aWLK)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:26:54 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:13 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntptrace-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPTRACE @NTPTRACE_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:00 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:18 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntptrace-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/plot_summary-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (plot_summary-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:12 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:30 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.8p5
|
|
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p6
|
|
USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
--directory=str Where the summary files are
|
|
Index: contrib/ntp/scripts/plot_summary.1plot_summaryman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary.1plot_summaryman (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary.1plot_summaryman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH plot_summary 1plot_summaryman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH plot_summary 1plot_summaryman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-xiaqKm/ag-KiayJm)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-CNaiCN/ag-PNaqBN)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:18 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:36 AM by AutoGen 5.18.5
|
|
.\" From the definitions plot_summary-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/plot_summary.1plot_summarymdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary.1plot_summarymdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary.1plot_summarymdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:20 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:38 AM by AutoGen 5.18.5
|
|
.\" From the definitions plot_summary-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/plot_summary.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary.html (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary.html (working copy)
|
|
@@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<h2 class="unnumbered">Plot_summary User Manual</h2>
|
|
|
|
<p>This document describes the use of the NTP Project's <code>plot_summary</code> program.
|
|
-This document applies to version 4.2.8p5 of <code>plot_summary</code>.
|
|
+This document applies to version 4.2.8p6 of <code>plot_summary</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -89,7 +89,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p5
|
|
+<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p6
|
|
USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
--directory=str Where the summary files are
|
|
Index: contrib/ntp/scripts/plot_summary.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH plot_summary 1plot_summaryman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH plot_summary 1plot_summaryman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-xiaqKm/ag-KiayJm)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-CNaiCN/ag-PNaqBN)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:18 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:36 AM by AutoGen 5.18.5
|
|
.\" From the definitions plot_summary-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/plot_summary.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/plot_summary.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/plot_summary.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:20 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:38 AM by AutoGen 5.18.5
|
|
.\" From the definitions plot_summary-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/summary-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/summary-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (summary-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:14 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:32 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.8p5
|
|
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p6
|
|
USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
--directory=str Directory containing stat files
|
|
Index: contrib/ntp/scripts/summary.1summaryman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary.1summaryman (revision 294707)
|
|
+++ contrib/ntp/scripts/summary.1summaryman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH summary 1summaryman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH summary 1summaryman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-.Ca4Xm/ag-lDaaXm)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-z8aWPN/ag-M8a4ON)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:24 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:42 AM by AutoGen 5.18.5
|
|
.\" From the definitions summary-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/summary.1summarymdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary.1summarymdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/summary.1summarymdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt SUMMARY 1summarymdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:25 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions summary-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/summary.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary.html (revision 294707)
|
|
+++ contrib/ntp/scripts/summary.html (working copy)
|
|
@@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
<h2 class="unnumbered">Summary User Manual</h2>
|
|
|
|
<p>This document describes the use of the NTP Project's <code>summary</code> program.
|
|
-This document applies to version 4.2.8p5 of <code>summary</code>.
|
|
+This document applies to version 4.2.8p6 of <code>summary</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
@@ -88,7 +88,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p5
|
|
+<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p6
|
|
USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
--directory=str Directory containing stat files
|
|
Index: contrib/ntp/scripts/summary.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/summary.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH summary 1summaryman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH summary 1summaryman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-.Ca4Xm/ag-lDaaXm)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-z8aWPN/ag-M8a4ON)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:24 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:42 AM by AutoGen 5.18.5
|
|
.\" From the definitions summary-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/summary.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/summary.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/summary.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt SUMMARY 1summarymdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:25 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions summary-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/update-leap/invoke-update-leap.texi
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/invoke-update-leap.texi (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/invoke-update-leap.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-update-leap.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:05 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:24 AM by AutoGen 5.18.5
|
|
# From the definitions update-leap-opts.def
|
|
# and the template file agtexi-cmd.tpl
|
|
@end ignore
|
|
Index: contrib/ntp/scripts/update-leap/update-leap-opts
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap-opts (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap-opts (working copy)
|
|
@@ -1,6 +1,6 @@
|
|
# EDIT THIS FILE WITH CAUTION (update-leap-opts)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:27:11 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:10:30 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.8p5
|
|
+update-leap - leap-seconds file manager/updater - Ver. 4.2.8p6
|
|
USAGE: update-leap [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
|
|
-s, --source-url=str The URL of the master copy of the leapseconds file
|
|
Index: contrib/ntp/scripts/update-leap/update-leap.1update-leapman
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap.1update-leapman (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap.1update-leapman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH update-leap 1update-leapman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH update-leap 1update-leapman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9hayKk/ag-kiaGJk)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-iOaqCL/ag-uOayBL)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:20 AM by AutoGen 5.18.5
|
|
.\" From the definitions update-leap-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:10 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:28 AM by AutoGen 5.18.5
|
|
.\" From the definitions update-leap-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/scripts/update-leap/update-leap.html
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap.html (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap.html (working copy)
|
|
@@ -30,7 +30,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(di
|
|
|
|
<p>This document describes the use of the NTP Project's <code>update-leap</code> program.
|
|
|
|
- <p>This document applies to version 4.2.8p5 of <code>update-leap</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>update-leap</code>.
|
|
|
|
<div class="shortcontents">
|
|
<h2>Short Contents</h2>
|
|
Index: contrib/ntp/scripts/update-leap/update-leap.man.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap.man.in (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH update-leap 1update-leapman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH update-leap 1update-leapman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9hayKk/ag-kiaGJk)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-iOaqCL/ag-uOayBL)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:20 AM by AutoGen 5.18.5
|
|
.\" From the definitions update-leap-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
Index: contrib/ntp/scripts/update-leap/update-leap.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/scripts/update-leap/update-leap.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/scripts/update-leap/update-leap.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:27:10 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:10:28 AM by AutoGen 5.18.5
|
|
.\" From the definitions update-leap-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
Index: contrib/ntp/sntp/configure
|
|
===================================================================
|
|
--- contrib/ntp/sntp/configure (revision 294707)
|
|
+++ contrib/ntp/sntp/configure (working copy)
|
|
@@ -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.8p5.
|
|
+# Generated by GNU Autoconf 2.69 for sntp 4.2.8p6.
|
|
#
|
|
# 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.8p5'
|
|
-PACKAGE_STRING='sntp 4.2.8p5'
|
|
+PACKAGE_VERSION='4.2.8p6'
|
|
+PACKAGE_STRING='sntp 4.2.8p6'
|
|
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
|
|
PACKAGE_URL='http://www.ntp.org./'
|
|
|
|
@@ -1491,7 +1491,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.8p5 to adapt to many kinds of systems.
|
|
+\`configure' configures sntp 4.2.8p6 to adapt to many kinds of systems.
|
|
|
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
|
|
@@ -1561,7 +1561,7 @@ fi
|
|
|
|
if test -n "$ac_init_help"; then
|
|
case $ac_init_help in
|
|
- short | recursive ) echo "Configuration of sntp 4.2.8p5:";;
|
|
+ short | recursive ) echo "Configuration of sntp 4.2.8p6:";;
|
|
esac
|
|
cat <<\_ACEOF
|
|
|
|
@@ -1706,7 +1706,7 @@ fi
|
|
test -n "$ac_init_help" && exit $ac_status
|
|
if $ac_init_version; then
|
|
cat <<\_ACEOF
|
|
-sntp configure 4.2.8p5
|
|
+sntp configure 4.2.8p6
|
|
generated by GNU Autoconf 2.69
|
|
|
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
|
@@ -2536,7 +2536,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.8p5, which was
|
|
+It was created by sntp $as_me 4.2.8p6, which was
|
|
generated by GNU Autoconf 2.69. Invocation command line was
|
|
|
|
$ $0 $@
|
|
@@ -3533,7 +3533,7 @@ fi
|
|
|
|
# Define the identity of the package.
|
|
PACKAGE='sntp'
|
|
- VERSION='4.2.8p5'
|
|
+ VERSION='4.2.8p6'
|
|
|
|
|
|
cat >>confdefs.h <<_ACEOF
|
|
@@ -31110,7 +31110,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.8p5, which was
|
|
+This file was extended by sntp $as_me 4.2.8p6, which was
|
|
generated by GNU Autoconf 2.69. Invocation command line was
|
|
|
|
CONFIG_FILES = $CONFIG_FILES
|
|
@@ -31177,7 +31177,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.8p5
|
|
+sntp config.status 4.2.8p6
|
|
configured by $0, generated by GNU Autoconf 2.69,
|
|
with options \\"\$ac_cs_config\\"
|
|
|
|
Index: contrib/ntp/sntp/crypto.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/crypto.c (revision 294707)
|
|
+++ contrib/ntp/sntp/crypto.c (working copy)
|
|
@@ -7,11 +7,11 @@ size_t key_cnt = 0;
|
|
|
|
int
|
|
make_mac(
|
|
- char *pkt_data,
|
|
+ const void *pkt_data,
|
|
int pkt_size,
|
|
int mac_size,
|
|
- struct key *cmp_key,
|
|
- char * digest
|
|
+ const struct key *cmp_key,
|
|
+ void * digest
|
|
)
|
|
{
|
|
u_int len = mac_size;
|
|
@@ -26,15 +26,15 @@ make_mac(
|
|
INIT_SSL();
|
|
key_type = keytype_from_text(cmp_key->type, NULL);
|
|
EVP_DigestInit(&ctx, EVP_get_digestbynid(key_type));
|
|
- EVP_DigestUpdate(&ctx, (u_char *)cmp_key->key_seq, (u_int)cmp_key->key_len);
|
|
- EVP_DigestUpdate(&ctx, (u_char *)pkt_data, (u_int)pkt_size);
|
|
- EVP_DigestFinal(&ctx, (u_char *)digest, &len);
|
|
+ EVP_DigestUpdate(&ctx, (const u_char *)cmp_key->key_seq, (u_int)cmp_key->key_len);
|
|
+ EVP_DigestUpdate(&ctx, pkt_data, (u_int)pkt_size);
|
|
+ EVP_DigestFinal(&ctx, digest, &len);
|
|
|
|
return (int)len;
|
|
}
|
|
|
|
|
|
-/* Generates a md5 digest of the key specified in keyid concatinated with the
|
|
+/* Generates a md5 digest of the key specified in keyid concatenated with the
|
|
* ntp packet (exluding the MAC) and compares this digest to the digest in
|
|
* the packet's MAC. If they're equal this function returns 1 (packet is
|
|
* authentic) or else 0 (not authentic).
|
|
@@ -41,24 +41,25 @@ make_mac(
|
|
*/
|
|
int
|
|
auth_md5(
|
|
- char *pkt_data,
|
|
+ const void *pkt_data,
|
|
int pkt_size,
|
|
int mac_size,
|
|
- struct key *cmp_key
|
|
+ const struct key *cmp_key
|
|
)
|
|
{
|
|
int hash_len;
|
|
int authentic;
|
|
char digest[20];
|
|
-
|
|
+ const u_char *pkt_ptr;
|
|
if (mac_size > (int)sizeof(digest))
|
|
return 0;
|
|
- hash_len = make_mac(pkt_data, pkt_size, sizeof(digest), cmp_key,
|
|
+ pkt_ptr = pkt_data;
|
|
+ hash_len = make_mac(pkt_ptr, pkt_size, sizeof(digest), cmp_key,
|
|
digest);
|
|
if (!hash_len)
|
|
authentic = FALSE;
|
|
else
|
|
- authentic = !memcmp(digest, pkt_data + pkt_size + 4,
|
|
+ authentic = !memcmp(digest, pkt_ptr + pkt_size + 4,
|
|
hash_len);
|
|
return authentic;
|
|
}
|
|
Index: contrib/ntp/sntp/crypto.h
|
|
===================================================================
|
|
--- contrib/ntp/sntp/crypto.h (revision 294707)
|
|
+++ contrib/ntp/sntp/crypto.h (working copy)
|
|
@@ -17,16 +17,18 @@
|
|
/* #include "sntp-opts.h" */
|
|
|
|
struct key {
|
|
- struct key *next;
|
|
- int key_id;
|
|
- int key_len;
|
|
- char type[10];
|
|
- char key_seq[64];
|
|
+ struct key * next;
|
|
+ int key_id;
|
|
+ int key_len;
|
|
+ char type[10];
|
|
+ char key_seq[64];
|
|
};
|
|
|
|
-int auth_init(const char *keyfile, struct key **keys);
|
|
-void get_key(int key_id, struct key **d_key);
|
|
-int make_mac(char *pkt_data, int pkt_size, int mac_size, struct key *cmp_key, char *digest);
|
|
-int auth_md5(char *pkt_data, int pkt_size, int mac_size, struct key *cmp_key);
|
|
+extern int auth_init(const char *keyfile, struct key **keys);
|
|
+extern void get_key(int key_id, struct key **d_key);
|
|
+extern int make_mac(const void *pkt_data, int pkt_size, int mac_size,
|
|
+ const struct key *cmp_key, void *digest);
|
|
+extern int auth_md5(const void *pkt_data, int pkt_size, int mac_size,
|
|
+ const struct key *cmp_key);
|
|
|
|
#endif
|
|
Index: contrib/ntp/sntp/include/copyright.def
|
|
===================================================================
|
|
--- contrib/ntp/sntp/include/copyright.def (revision 294707)
|
|
+++ contrib/ntp/sntp/include/copyright.def (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/* -*- Mode: Text -*- */
|
|
|
|
copyright = {
|
|
- date = "1992-2015";
|
|
+ date = "1992-2016";
|
|
owner = "The University of Delaware and Network Time Foundation";
|
|
eaddr = "http://bugs.ntp.org, bugs@ntp.org";
|
|
type = ntp;
|
|
Index: contrib/ntp/sntp/include/version.def
|
|
===================================================================
|
|
--- contrib/ntp/sntp/include/version.def (revision 294707)
|
|
+++ contrib/ntp/sntp/include/version.def (working copy)
|
|
@@ -1 +1 @@
|
|
-version = '4.2.8p5';
|
|
+version = '4.2.8p6';
|
|
Index: contrib/ntp/sntp/include/version.texi
|
|
===================================================================
|
|
--- contrib/ntp/sntp/include/version.texi (revision 294707)
|
|
+++ contrib/ntp/sntp/include/version.texi (working copy)
|
|
@@ -1,3 +1,3 @@
|
|
-@set UPDATED 07 January 2016
|
|
-@set EDITION 4.2.8p5
|
|
-@set VERSION 4.2.8p5
|
|
+@set UPDATED 20 January 2016
|
|
+@set EDITION 4.2.8p6
|
|
+@set VERSION 4.2.8p6
|
|
Index: contrib/ntp/sntp/invoke-sntp.texi
|
|
===================================================================
|
|
--- contrib/ntp/sntp/invoke-sntp.texi (revision 294707)
|
|
+++ contrib/ntp/sntp/invoke-sntp.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-sntp.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:23:24 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:06:42 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.8p5
|
|
+sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p6
|
|
Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
|
|
[ hostname-or-IP ...]
|
|
Flg Arg Option-Name Description
|
|
Index: contrib/ntp/sntp/libopts/configfile.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/configfile.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/configfile.c (working copy)
|
|
@@ -182,9 +182,9 @@ optionFindValue(const tOptDesc * odesc, char const
|
|
}
|
|
|
|
else do {
|
|
- tArgList * argl = odesc->optCookie;
|
|
- int argct = argl->useCt;
|
|
- void ** poptv = (void **)(argl->apzArgs);
|
|
+ tArgList * argl = odesc->optCookie;
|
|
+ int argct = argl->useCt;
|
|
+ const void ** poptv = VOIDP(argl->apzArgs);
|
|
|
|
if (argct == 0) {
|
|
errno = ENOENT;
|
|
@@ -192,7 +192,7 @@ optionFindValue(const tOptDesc * odesc, char const
|
|
}
|
|
|
|
if (name == NULL) {
|
|
- res = (tOptionValue *)*poptv;
|
|
+ res = (const tOptionValue *)*poptv;
|
|
break;
|
|
}
|
|
|
|
@@ -249,7 +249,7 @@ optionFindNextValue(const tOptDesc * odesc, const
|
|
char const * pzName, char const * pzVal)
|
|
{
|
|
bool old_found = false;
|
|
- tOptionValue * res = NULL;
|
|
+ const tOptionValue * res = NULL;
|
|
|
|
(void)pzName;
|
|
(void)pzVal;
|
|
@@ -264,12 +264,12 @@ optionFindNextValue(const tOptDesc * odesc, const
|
|
}
|
|
|
|
else do {
|
|
- tArgList * argl = odesc->optCookie;
|
|
- int ct = argl->useCt;
|
|
- void ** poptv = (void **)argl->apzArgs;
|
|
+ tArgList * argl = odesc->optCookie;
|
|
+ int ct = argl->useCt;
|
|
+ const void ** poptv = VOIDP(argl->apzArgs);
|
|
|
|
while (--ct >= 0) {
|
|
- tOptionValue * pOV = *(poptv++);
|
|
+ const tOptionValue * pOV = *(poptv++);
|
|
if (old_found) {
|
|
res = pOV;
|
|
break;
|
|
@@ -315,8 +315,8 @@ optionFindNextValue(const tOptDesc * odesc, const
|
|
tOptionValue const *
|
|
optionGetValue(tOptionValue const * oov, char const * vname)
|
|
{
|
|
- tArgList * arg_list;
|
|
- tOptionValue * res = NULL;
|
|
+ tArgList * arg_list;
|
|
+ const tOptionValue * res = NULL;
|
|
|
|
if ((oov == NULL) || (oov->valType != OPARG_TYPE_HIERARCHY)) {
|
|
errno = EINVAL;
|
|
@@ -325,14 +325,14 @@ optionGetValue(tOptionValue const * oov, char cons
|
|
arg_list = oov->v.nestVal;
|
|
|
|
if (arg_list->useCt > 0) {
|
|
- int ct = arg_list->useCt;
|
|
- void ** ovlist = (void **)(arg_list->apzArgs);
|
|
+ int ct = arg_list->useCt;
|
|
+ const void ** ovlist = VOIDP(arg_list->apzArgs);
|
|
|
|
if (vname == NULL) {
|
|
- res = (tOptionValue *)*ovlist;
|
|
+ res = (const tOptionValue *)*ovlist;
|
|
|
|
} else do {
|
|
- tOptionValue * opt_val = *(ovlist++);
|
|
+ const tOptionValue * opt_val = *(ovlist++);
|
|
if (strcmp(opt_val->pzName, vname) == 0) {
|
|
res = opt_val;
|
|
break;
|
|
@@ -374,9 +374,9 @@ optionGetValue(tOptionValue const * oov, char cons
|
|
tOptionValue const *
|
|
optionNextValue(tOptionValue const * ov_list,tOptionValue const * oov )
|
|
{
|
|
- tArgList * arg_list;
|
|
- tOptionValue * res = NULL;
|
|
- int err = EINVAL;
|
|
+ tArgList * arg_list;
|
|
+ const tOptionValue * res = NULL;
|
|
+ int err = EINVAL;
|
|
|
|
if ((ov_list == NULL) || (ov_list->valType != OPARG_TYPE_HIERARCHY)) {
|
|
errno = EINVAL;
|
|
@@ -384,11 +384,11 @@ optionNextValue(tOptionValue const * ov_list,tOpti
|
|
}
|
|
arg_list = ov_list->v.nestVal;
|
|
{
|
|
- int ct = arg_list->useCt;
|
|
- void ** o_list = (void **)(arg_list->apzArgs);
|
|
+ int ct = arg_list->useCt;
|
|
+ const void ** o_list = VOIDP(arg_list->apzArgs);
|
|
|
|
while (ct-- > 0) {
|
|
- tOptionValue * nov = *(o_list++);
|
|
+ const tOptionValue * nov = *(o_list++);
|
|
if (nov == oov) {
|
|
if (ct == 0) {
|
|
err = ENOENT;
|
|
@@ -395,7 +395,7 @@ optionNextValue(tOptionValue const * ov_list,tOpti
|
|
|
|
} else {
|
|
err = 0;
|
|
- res = (tOptionValue *)*o_list;
|
|
+ res = (const tOptionValue *)*o_list;
|
|
}
|
|
break;
|
|
}
|
|
Index: contrib/ntp/sntp/libopts/enum.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/enum.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/enum.c (working copy)
|
|
@@ -189,12 +189,12 @@ find_name(char const * name, tOptions * pOpts, tOp
|
|
* The result gets stashed in a char * pointer.
|
|
*/
|
|
uintptr_t res = name_ct;
|
|
- size_t len = strlen((char *)name);
|
|
+ size_t len = strlen(name);
|
|
uintptr_t idx;
|
|
|
|
if (IS_DEC_DIGIT_CHAR(*name)) {
|
|
- char * pz = VOIDP(name);
|
|
- unsigned long val = strtoul(pz, &pz, 0);
|
|
+ char * pz;
|
|
+ unsigned long val = strtoul(name, &pz, 0);
|
|
if ((*pz == NUL) && (val < name_ct))
|
|
return (uintptr_t)val;
|
|
pz_enum_err_fmt = znum_too_large;
|
|
@@ -215,7 +215,7 @@ find_name(char const * name, tOptions * pOpts, tOp
|
|
* Multiple partial matches means we have an ambiguous match.
|
|
*/
|
|
for (idx = 0; idx < name_ct; idx++) {
|
|
- if (strncmp((char *)paz_names[idx], (char *)name, len) == 0) {
|
|
+ if (strncmp(paz_names[idx], name, len) == 0) {
|
|
if (paz_names[idx][len] == NUL)
|
|
return idx; /* full match */
|
|
|
|
@@ -500,7 +500,7 @@ find_member_bit(tOptions * opts, tOptDesc * od, ch
|
|
if (shift_ct >= nm_ct)
|
|
return 0UL;
|
|
|
|
- return 1UL << shift_ct;
|
|
+ return (uintptr_t)1U << shift_ct;
|
|
}
|
|
}
|
|
|
|
Index: contrib/ntp/sntp/libopts/find.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/find.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/find.c (working copy)
|
|
@@ -80,7 +80,7 @@ parse_opt(char const ** nm_pp, char ** arg_pp, cha
|
|
|
|
buf[res] = NUL;
|
|
*nm_pp = buf;
|
|
- *arg_pp = (char *)p;
|
|
+ *arg_pp = VOIDP(p);
|
|
return res;
|
|
|
|
default:
|
|
Index: contrib/ntp/sntp/libopts/init.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/init.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/init.c (working copy)
|
|
@@ -97,8 +97,7 @@ validate_struct(tOptions * opts, char const * pnam
|
|
*/
|
|
if (opts->pzProgName == NULL) {
|
|
char const * pz = strrchr(pname, DIRCH);
|
|
- char const ** pp =
|
|
- (char const **)(void **)&(opts->pzProgName);
|
|
+ char const ** pp = VOIDP(&(opts->pzProgName));
|
|
|
|
if (pz != NULL)
|
|
*pp = pz+1;
|
|
@@ -105,7 +104,7 @@ validate_struct(tOptions * opts, char const * pnam
|
|
else
|
|
*pp = pname;
|
|
|
|
- pz = pathfind(getenv("PATH"), (char *)pname, "rx");
|
|
+ pz = pathfind(getenv("PATH"), pname, "rx");
|
|
if (pz != NULL)
|
|
pname = VOIDP(pz);
|
|
|
|
Index: contrib/ntp/sntp/libopts/load.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/load.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/load.c (working copy)
|
|
@@ -225,7 +225,7 @@ add_prog_path(char * buf, int b_sz, char const * f
|
|
if (strchr(prg_path, DIRCH) != NULL)
|
|
path = prg_path;
|
|
else {
|
|
- path = pathfind(getenv("PATH"), (char *)prg_path, "rx");
|
|
+ path = pathfind(getenv("PATH"), prg_path, "rx");
|
|
|
|
if (path == NULL)
|
|
return false;
|
|
Index: contrib/ntp/sntp/libopts/makeshell.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/makeshell.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/makeshell.c (working copy)
|
|
@@ -401,7 +401,7 @@ emit_usage(tOptions * opts)
|
|
|
|
/* Copy the program name into the time/name buffer */
|
|
for (;;) {
|
|
- if ((*pzPN++ = (char)tolower(*pz++)) == NUL)
|
|
+ if ((*pzPN++ = (char)tolower((unsigned char)*pz++)) == NUL)
|
|
break;
|
|
}
|
|
|
|
@@ -671,8 +671,8 @@ emit_match_expr(char const * name, tOptDesc * cod,
|
|
continue;
|
|
|
|
match_ct = 0;
|
|
- while ( toupper(od->pz_DisableName[match_ct])
|
|
- == toupper(name[match_ct]))
|
|
+ while ( toupper((unsigned char)od->pz_DisableName[match_ct])
|
|
+ == toupper((unsigned char)name[match_ct]))
|
|
match_ct++;
|
|
if (match_ct > min_match_ct)
|
|
min_match_ct = match_ct;
|
|
Index: contrib/ntp/sntp/libopts/nested.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/nested.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/nested.c (working copy)
|
|
@@ -859,6 +859,7 @@ LOCAL int
|
|
get_special_char(char const ** ppz, int * ct)
|
|
{
|
|
char const * pz = *ppz;
|
|
+ char * rz;
|
|
|
|
if (*ct < 3)
|
|
return '&';
|
|
@@ -872,7 +873,8 @@ get_special_char(char const ** ppz, int * ct)
|
|
base = 16;
|
|
pz++;
|
|
}
|
|
- retch = (int)strtoul(pz, (char **)&pz, base);
|
|
+ retch = (int)strtoul(pz, &rz, base);
|
|
+ pz = rz;
|
|
if (*pz != ';')
|
|
return '&';
|
|
base = (int)(++pz - *ppz);
|
|
Index: contrib/ntp/sntp/libopts/parse-duration.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/parse-duration.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/parse-duration.c (working copy)
|
|
@@ -60,7 +60,10 @@ typedef enum {
|
|
static unsigned long
|
|
str_const_to_ul (cch_t * str, cch_t ** ppz, int base)
|
|
{
|
|
- return strtoul (str, (char **)ppz, base);
|
|
+ char * pz;
|
|
+ int rv = strtoul (str, &pz, base);
|
|
+ *ppz = pz;
|
|
+ return rv;
|
|
}
|
|
|
|
/* Wrapper around strtol that does not require a cast. */
|
|
@@ -67,7 +70,10 @@ str_const_to_ul (cch_t * str, cch_t ** ppz, int ba
|
|
static long
|
|
str_const_to_l (cch_t * str, cch_t ** ppz, int base)
|
|
{
|
|
- return strtol (str, (char **)ppz, base);
|
|
+ char * pz;
|
|
+ int rv = strtol (str, &pz, base);
|
|
+ *ppz = pz;
|
|
+ return rv;
|
|
}
|
|
|
|
/* Returns BASE + VAL * SCALE, interpreting BASE = BAD_TIME
|
|
Index: contrib/ntp/sntp/libopts/reset.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/reset.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/reset.c (working copy)
|
|
@@ -113,7 +113,7 @@ optionResetOpt(tOptions * pOpts, tOptDesc * pOD)
|
|
assert(0 == 1);
|
|
}
|
|
} else {
|
|
- succ = opt_find_long(pOpts, (char *)pzArg, &opt_state);
|
|
+ succ = opt_find_long(pOpts, pzArg, &opt_state);
|
|
if (! SUCCESSFUL(succ)) {
|
|
fprintf(stderr, zIllOptStr, pOpts->pzProgPath, pzArg);
|
|
pOpts->pUsageProc(pOpts, EXIT_FAILURE);
|
|
Index: contrib/ntp/sntp/libopts/save.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/save.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/save.c (working copy)
|
|
@@ -453,7 +453,7 @@ prt_val_list(FILE * fp, char const * name, tArgLis
|
|
if (al == NULL)
|
|
return;
|
|
opt_ct = al->useCt;
|
|
- opt_list = (void **)al->apzArgs;
|
|
+ opt_list = VOIDP(al->apzArgs);
|
|
|
|
if (opt_ct <= 0) {
|
|
fprintf(fp, OPEN_CLOSE_FMT, name);
|
|
@@ -488,7 +488,7 @@ prt_nested(FILE * fp, tOptDesc * p)
|
|
return;
|
|
|
|
opt_ct = al->useCt;
|
|
- opt_list = (void **)al->apzArgs;
|
|
+ opt_list = VOIDP(al->apzArgs);
|
|
|
|
if (opt_ct <= 0)
|
|
return;
|
|
Index: contrib/ntp/sntp/libopts/tokenize.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/libopts/tokenize.c (revision 294707)
|
|
+++ contrib/ntp/sntp/libopts/tokenize.c (working copy)
|
|
@@ -57,7 +57,7 @@ copy_cooked(ch_t ** ppDest, char const ** ppSrc)
|
|
case NUL: *ppSrc = NULL; return;
|
|
case '"': goto done;
|
|
case '\\':
|
|
- pSrc += ao_string_cook_escape_char((char *)pSrc, (char *)&ch, 0x7F);
|
|
+ pSrc += ao_string_cook_escape_char((const char *)pSrc, (char *)&ch, 0x7F);
|
|
if (ch == 0x7F)
|
|
break;
|
|
/* FALLTHROUGH */
|
|
Index: contrib/ntp/sntp/m4/version.m4
|
|
===================================================================
|
|
--- contrib/ntp/sntp/m4/version.m4 (revision 294707)
|
|
+++ contrib/ntp/sntp/m4/version.m4 (working copy)
|
|
@@ -1 +1 @@
|
|
-m4_define([VERSION_NUMBER],[4.2.8p5])
|
|
+m4_define([VERSION_NUMBER],[4.2.8p6])
|
|
Index: contrib/ntp/sntp/main.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/main.c (revision 294707)
|
|
+++ contrib/ntp/sntp/main.c (working copy)
|
|
@@ -1135,7 +1135,7 @@ generate_pkt (
|
|
if (pkt_key != NULL) {
|
|
x_pkt->exten[0] = htonl(key_id);
|
|
mac_size = 20; /* max room for MAC */
|
|
- mac_size = make_mac((char *)x_pkt, pkt_len, mac_size,
|
|
+ mac_size = make_mac(x_pkt, pkt_len, mac_size,
|
|
pkt_key, (char *)&x_pkt->exten[1]);
|
|
if (mac_size > 0)
|
|
pkt_len += mac_size + 4;
|
|
Index: contrib/ntp/sntp/networking.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/networking.c (revision 294707)
|
|
+++ contrib/ntp/sntp/networking.c (working copy)
|
|
@@ -184,7 +184,7 @@ process_pkt (
|
|
** keyfile and compare those md5sums.
|
|
*/
|
|
mac_size = exten_len << 2;
|
|
- if (!auth_md5((char *)rpkt, pkt_len - mac_size,
|
|
+ if (!auth_md5(rpkt, pkt_len - mac_size,
|
|
mac_size - 4, pkt_key)) {
|
|
is_authentic = FALSE;
|
|
break;
|
|
Index: contrib/ntp/sntp/sntp-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp-opts.c (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (sntp-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:22:49 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:06:07 AM by AutoGen 5.18.5
|
|
* From the definitions sntp-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The sntp program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -70,8 +70,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for sntp options
|
|
*/
|
|
static char const sntp_opt_strs[2549] =
|
|
-/* 0 */ "sntp 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "sntp 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -155,7 +155,7 @@ static char const sntp_opt_strs[2549] =
|
|
/* 2298 */ "LOAD_OPTS\0"
|
|
/* 2308 */ "no-load-opts\0"
|
|
/* 2321 */ "SNTP\0"
|
|
-/* 2326 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p5\n"
|
|
+/* 2326 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
|
|
"\t\t[ hostname-or-IP ...]\n\0"
|
|
/* 2485 */ "$HOME\0"
|
|
@@ -163,7 +163,7 @@ static char const sntp_opt_strs[2549] =
|
|
/* 2493 */ ".ntprc\0"
|
|
/* 2500 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
/* 2534 */ "\n\0"
|
|
-/* 2536 */ "sntp 4.2.8p5";
|
|
+/* 2536 */ "sntp 4.2.8p6";
|
|
|
|
/**
|
|
* ipv4 option description with
|
|
@@ -1173,8 +1173,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via sntpOptions.pzCopyright */
|
|
- puts(_("sntp 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("sntp 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\n"));
|
|
@@ -1263,7 +1263,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.8p5\n\
|
|
+ puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
|
|
\t\t[ hostname-or-IP ...]\n"));
|
|
|
|
@@ -1271,7 +1271,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>
|
|
puts(_("\n"));
|
|
|
|
/* referenced via sntpOptions.pzFullVersion */
|
|
- puts(_("sntp 4.2.8p5"));
|
|
+ puts(_("sntp 4.2.8p6"));
|
|
|
|
/* referenced via sntpOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/sntp/sntp-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp-opts.h (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (sntp-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:22:48 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:06:06 AM by AutoGen 5.18.5
|
|
* From the definitions sntp-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The sntp program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -91,9 +91,9 @@ typedef enum {
|
|
/** count of all options for sntp */
|
|
#define OPTION_CT 23
|
|
/** sntp version */
|
|
-#define SNTP_VERSION "4.2.8p5"
|
|
+#define SNTP_VERSION "4.2.8p6"
|
|
/** Full sntp version text */
|
|
-#define SNTP_FULL_VERSION "sntp 4.2.8p5"
|
|
+#define SNTP_FULL_VERSION "sntp 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/sntp/sntp.1sntpman
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp.1sntpman (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp.1sntpman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH sntp 1sntpman "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH sntp 1sntpman "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-e.aO3S/ag-r.aG2S)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-vxaitn/ag-Ixaasn)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:23:20 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:06:38 AM by AutoGen 5.18.5
|
|
.\" From the definitions sntp-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -348,7 +348,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.NOP "Dave Hart"
|
|
.br
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/sntp/sntp.1sntpmdoc
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp.1sntpmdoc (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp.1sntpmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt SNTP 1sntpmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:23:27 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:06:45 AM by AutoGen 5.18.5
|
|
.\" From the definitions sntp-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -303,7 +303,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.An "Harlan Stenn"
|
|
.An "Dave Hart"
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/sntp/sntp.html
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp.html (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp.html (working copy)
|
|
@@ -36,7 +36,7 @@ display the time offset of the system clock relati
|
|
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>This document applies to version 4.2.8p5 of <code>sntp</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>sntp</code>.
|
|
|
|
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
|
|
IETF specification.
|
|
@@ -176,7 +176,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p5
|
|
+<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p6
|
|
Usage: sntp [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \
|
|
[ hostname-or-IP ...]
|
|
Flg Arg Option-Name Description
|
|
Index: contrib/ntp/sntp/sntp.man.in
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp.man.in (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH sntp @SNTP_MS@ "07 Jan 2016" "4.2.8p5" "User Commands"
|
|
+.TH sntp @SNTP_MS@ "20 Jan 2016" "4.2.8p6" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-e.aO3S/ag-r.aG2S)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-vxaitn/ag-Ixaasn)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:23:20 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:06:38 AM by AutoGen 5.18.5
|
|
.\" From the definitions sntp-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -348,7 +348,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.NOP "Dave Hart"
|
|
.br
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/sntp/sntp.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/sntp/sntp.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/sntp/sntp.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt SNTP @SNTP_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:23:27 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:06:45 AM by AutoGen 5.18.5
|
|
.\" From the definitions sntp-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -303,7 +303,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.An "Harlan Stenn"
|
|
.An "Dave Hart"
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: contrib/ntp/sntp/tests/crypto.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/crypto.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/crypto.c (working copy)
|
|
@@ -18,8 +18,8 @@ void test_PacketSizeNotMultipleOfFourBytes(void);
|
|
|
|
|
|
void
|
|
-test_MakeMd5Mac(void) {
|
|
-
|
|
+test_MakeMd5Mac(void)
|
|
+{
|
|
const char* PKT_DATA = "abcdefgh0123";
|
|
const int PKT_LEN = strlen(PKT_DATA);
|
|
const char* EXPECTED_DIGEST =
|
|
@@ -34,7 +34,7 @@ void
|
|
memcpy(&md5.type, "MD5", 4);
|
|
|
|
TEST_ASSERT_EQUAL(MD5_LENGTH,
|
|
- make_mac((char*)PKT_DATA, PKT_LEN, MD5_LENGTH, &md5, actual));
|
|
+ make_mac(PKT_DATA, PKT_LEN, MD5_LENGTH, &md5, actual));
|
|
|
|
TEST_ASSERT_TRUE(memcmp(EXPECTED_DIGEST, actual, MD5_LENGTH) == 0);
|
|
}
|
|
@@ -41,8 +41,10 @@ void
|
|
|
|
|
|
void
|
|
-test_MakeSHA1Mac(void) {
|
|
+test_MakeSHA1Mac(void)
|
|
+{
|
|
#ifdef OPENSSL
|
|
+
|
|
const char* PKT_DATA = "abcdefgh0123";
|
|
const int PKT_LEN = strlen(PKT_DATA);
|
|
const char* EXPECTED_DIGEST =
|
|
@@ -58,22 +60,26 @@ void
|
|
memcpy(&sha1.type, "SHA1", 5);
|
|
|
|
TEST_ASSERT_EQUAL(SHA1_LENGTH,
|
|
- make_mac((char*)PKT_DATA, PKT_LEN, SHA1_LENGTH, &sha1, actual));
|
|
+ make_mac(PKT_DATA, PKT_LEN, SHA1_LENGTH, &sha1, actual));
|
|
|
|
TEST_ASSERT_EQUAL_MEMORY(EXPECTED_DIGEST, actual, SHA1_LENGTH);
|
|
+
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("OpenSSL not found, skipping...");
|
|
+
|
|
#endif /* OPENSSL */
|
|
}
|
|
|
|
|
|
void
|
|
-test_VerifyCorrectMD5(void) {
|
|
+test_VerifyCorrectMD5(void)
|
|
+{
|
|
const char* PKT_DATA =
|
|
- "sometestdata" // Data
|
|
- "\0\0\0\0" // Key-ID (unused)
|
|
- "\xc7\x58\x99\xdd\x99\x32\x0f\x71" // MAC
|
|
- "\x2b\x7b\xfe\x4f\xa2\x32\xcf\xac";
|
|
+ "sometestdata" /* Data */
|
|
+ "\0\0\0\0" /* Key-ID (unused) */
|
|
+ "\xc7\x58\x99\xdd\x99\x32\x0f\x71" /* MAC */
|
|
+ "\x2b\x7b\xfe\x4f\xa2\x32\xcf\xac";
|
|
const int PKT_LEN = 12;
|
|
|
|
struct key md5;
|
|
@@ -83,18 +89,20 @@ void
|
|
memcpy(&md5.key_seq, "md5key", md5.key_len);
|
|
memcpy(&md5.type, "MD5", 4);
|
|
|
|
- TEST_ASSERT_TRUE(auth_md5((char*)PKT_DATA, PKT_LEN, MD5_LENGTH, &md5));
|
|
+ TEST_ASSERT_TRUE(auth_md5(PKT_DATA, PKT_LEN, MD5_LENGTH, &md5));
|
|
}
|
|
|
|
|
|
void
|
|
-test_VerifySHA1(void) {
|
|
+test_VerifySHA1(void)
|
|
+{
|
|
#ifdef OPENSSL
|
|
+
|
|
const char* PKT_DATA =
|
|
- "sometestdata" // Data
|
|
- "\0\0\0\0" // Key-ID (unused)
|
|
- "\xad\x07\xde\x36\x39\xa6\x77\xfa\x5b\xce" // MAC
|
|
- "\x2d\x8a\x7d\x06\x96\xe6\x0c\xbc\xed\xe1";
|
|
+ "sometestdata" /* Data */
|
|
+ "\0\0\0\0" /* Key-ID (unused) */
|
|
+ "\xad\x07\xde\x36\x39\xa6\x77\xfa\x5b\xce" /* MAC */
|
|
+ "\x2d\x8a\x7d\x06\x96\xe6\x0c\xbc\xed\xe1";
|
|
const int PKT_LEN = 12;
|
|
|
|
struct key sha1;
|
|
@@ -104,21 +112,26 @@ void
|
|
memcpy(&sha1.key_seq, "sha1key", sha1.key_len);
|
|
memcpy(&sha1.type, "SHA1", 5);
|
|
|
|
- TEST_ASSERT_TRUE(auth_md5((char*)PKT_DATA, PKT_LEN, SHA1_LENGTH, &sha1));
|
|
+ TEST_ASSERT_TRUE(auth_md5(PKT_DATA, PKT_LEN, SHA1_LENGTH, &sha1));
|
|
+
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("OpenSSL not found, skipping...");
|
|
+
|
|
#endif /* OPENSSL */
|
|
}
|
|
|
|
void
|
|
-test_VerifyFailure(void) {
|
|
- /* We use a copy of the MD5 verification code, but modify
|
|
- * the last bit to make sure verification fails. */
|
|
+test_VerifyFailure(void)
|
|
+{
|
|
+ /* We use a copy of the MD5 verification code, but modify the
|
|
+ * last bit to make sure verification fails.
|
|
+ */
|
|
const char* PKT_DATA =
|
|
- "sometestdata" // Data
|
|
- "\0\0\0\0" // Key-ID (unused)
|
|
- "\xc7\x58\x99\xdd\x99\x32\x0f\x71" // MAC
|
|
- "\x2b\x7b\xfe\x4f\xa2\x32\xcf\x00"; // Last byte is wrong!
|
|
+ "sometestdata" /* Data */
|
|
+ "\0\0\0\0" /* Key-ID (unused) */
|
|
+ "\xc7\x58\x99\xdd\x99\x32\x0f\x71" /* MAC */
|
|
+ "\x2b\x7b\xfe\x4f\xa2\x32\xcf\x00"; /* Last byte is wrong! */
|
|
const int PKT_LEN = 12;
|
|
|
|
struct key md5;
|
|
@@ -128,12 +141,13 @@ void
|
|
memcpy(&md5.key_seq, "md5key", md5.key_len);
|
|
memcpy(&md5.type, "MD5", 4);
|
|
|
|
- TEST_ASSERT_FALSE(auth_md5((char*)PKT_DATA, PKT_LEN, MD5_LENGTH, &md5));
|
|
+ TEST_ASSERT_FALSE(auth_md5(PKT_DATA, PKT_LEN, MD5_LENGTH, &md5));
|
|
}
|
|
|
|
|
|
void
|
|
-test_PacketSizeNotMultipleOfFourBytes(void) {
|
|
+test_PacketSizeNotMultipleOfFourBytes(void)
|
|
+{
|
|
const char* PKT_DATA = "123456";
|
|
const int PKT_LEN = 6;
|
|
char actual[MD5_LENGTH];
|
|
@@ -145,5 +159,5 @@ void
|
|
memcpy(&md5.key_seq, "md5seq", md5.key_len);
|
|
memcpy(&md5.type, "MD5", 4);
|
|
|
|
- TEST_ASSERT_EQUAL(0, make_mac((char*)PKT_DATA, PKT_LEN, MD5_LENGTH, &md5, actual));
|
|
+ TEST_ASSERT_EQUAL(0, make_mac(PKT_DATA, PKT_LEN, MD5_LENGTH, &md5, actual));
|
|
}
|
|
Index: contrib/ntp/sntp/tests/fileHandlingTest.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/fileHandlingTest.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/fileHandlingTest.c (working copy)
|
|
@@ -3,35 +3,52 @@
|
|
#include "stdlib.h"
|
|
#include "sntptest.h"
|
|
|
|
-#include "fileHandlingTest.h" //required because of the h.in thingy
|
|
+#include "fileHandlingTest.h" /* required because of the h.in thingy */
|
|
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
-/*
|
|
-enum DirectoryType {
|
|
- INPUT_DIR = 0,
|
|
- OUTPUT_DIR = 1
|
|
-};
|
|
-*/
|
|
-//extern const char srcdir[];
|
|
-
|
|
const char *
|
|
-CreatePath(const char* filename, enum DirectoryType argument) {
|
|
- const char srcdir[] = SRCDIR_DEF;//"@abs_srcdir@/data/";
|
|
- char * path = emalloc (sizeof (char) * (strlen(srcdir) + 256));
|
|
+CreatePath(
|
|
+ const char * filename,
|
|
+ enum DirectoryType argument
|
|
+ )
|
|
+{
|
|
+ const char srcdir[] = SRCDIR_DEF;//"@abs_srcdir@/data/";
|
|
+ size_t plen = sizeof(srcdir) + strlen(filename) + 1;
|
|
+ char * path = emalloc(plen);
|
|
+ ssize_t retc;
|
|
|
|
- //char cwd[1024];
|
|
+ UNUSED_ARG(argument);
|
|
|
|
- strcpy(path, srcdir);
|
|
- strcat(path, filename);
|
|
-
|
|
+ retc = snprintf(path, plen, "%s%s", srcdir, filename);
|
|
+ if (retc <= 0 || (size_t)retc >= plen)
|
|
+ exit(1);
|
|
return path;
|
|
}
|
|
|
|
|
|
+void
|
|
+DestroyPath(
|
|
+ const char * pathname
|
|
+ )
|
|
+{
|
|
+ /* use a union to get terminally rid of the 'const' attribute */
|
|
+ union {
|
|
+ const char *ccp;
|
|
+ void *vp;
|
|
+ } any;
|
|
+
|
|
+ any.ccp = pathname;
|
|
+ free(any.vp);
|
|
+}
|
|
+
|
|
+
|
|
int
|
|
-GetFileSize(FILE *file) {
|
|
+GetFileSize(
|
|
+ FILE * file
|
|
+ )
|
|
+{
|
|
fseek(file, 0L, SEEK_END);
|
|
int length = ftell(file);
|
|
fseek(file, 0L, SEEK_SET);
|
|
@@ -41,7 +58,11 @@ int
|
|
|
|
|
|
bool
|
|
-CompareFileContent(FILE* expected, FILE* actual) {
|
|
+CompareFileContent(
|
|
+ FILE * expected,
|
|
+ FILE * actual
|
|
+ )
|
|
+{
|
|
int currentLine = 1;
|
|
|
|
char actualLine[1024];
|
|
@@ -67,8 +88,10 @@ bool
|
|
|
|
|
|
void
|
|
-ClearFile(const char * filename) {
|
|
+ClearFile(
|
|
+ const char * filename
|
|
+ )
|
|
+{
|
|
if (!truncate(filename, 0))
|
|
exit(1);
|
|
}
|
|
-
|
|
Index: contrib/ntp/sntp/tests/fileHandlingTest.h.in
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/fileHandlingTest.h.in (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/fileHandlingTest.h.in (working copy)
|
|
@@ -15,21 +15,12 @@ enum DirectoryType {
|
|
};
|
|
|
|
#define SRCDIR_DEF "@abs_srcdir@/data/";
|
|
-//const char srcdir[] = "@abs_srcdir@/data/";
|
|
|
|
-const char *
|
|
-CreatePath(const char* filename, enum DirectoryType argument);
|
|
+extern const char * CreatePath(const char* filename,
|
|
+ enum DirectoryType argument);
|
|
+extern void DestroyPath(const char* pathname);
|
|
+extern int GetFileSize(FILE *file);
|
|
+extern bool CompareFileContent(FILE* expected, FILE* actual);
|
|
+extern void ClearFile(const char * filename) ;
|
|
|
|
-
|
|
-int
|
|
-GetFileSize(FILE *file);
|
|
-
|
|
-
|
|
-bool
|
|
-CompareFileContent(FILE* expected, FILE* actual);
|
|
-
|
|
-void
|
|
-ClearFile(const char * filename) ;
|
|
-
|
|
-
|
|
#endif // FILE_HANDLING_TEST_H
|
|
Index: contrib/ntp/sntp/tests/keyFile.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/keyFile.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/keyFile.c (working copy)
|
|
@@ -17,24 +17,28 @@ void test_ReadKeyFileWithInvalidHex(void);
|
|
|
|
|
|
bool
|
|
-CompareKeys(struct key expected, struct key actual) {
|
|
- if (expected.key_id != actual.key_id){
|
|
- printf("Expected key_id: %d", expected.key_id);
|
|
- printf(" but was: %d\n", actual.key_id);
|
|
+CompareKeys(
|
|
+ struct key expected,
|
|
+ struct key actual
|
|
+ )
|
|
+{
|
|
+ if (expected.key_id != actual.key_id) {
|
|
+ printf("Expected key_id: %d but was: %d\n",
|
|
+ expected.key_id, actual.key_id);
|
|
return FALSE;
|
|
}
|
|
- if (expected.key_len != actual.key_len){
|
|
- printf("Expected key_len: %d", expected.key_len);
|
|
- printf(" but was: %d\n", actual.key_len);
|
|
+ if (expected.key_len != actual.key_len) {
|
|
+ printf("Expected key_len: %d but was: %d\n",
|
|
+ expected.key_len, actual.key_len);
|
|
return FALSE;
|
|
}
|
|
- if (strcmp(expected.type, actual.type) != 0){
|
|
- printf("Expected key_type: %s", expected.type);
|
|
- printf(" but was: %s\n", actual.type);
|
|
+ if (strcmp(expected.type, actual.type) != 0) {
|
|
+ printf("Expected key_type: %s but was: %s\n",
|
|
+ expected.type, actual.type);
|
|
return FALSE;
|
|
|
|
}
|
|
- if (memcmp(expected.key_seq, actual.key_seq, expected.key_len) != 0){
|
|
+ if (memcmp(expected.key_seq, actual.key_seq, expected.key_len) != 0) {
|
|
printf("Key mismatch!\n");
|
|
return FALSE;
|
|
}
|
|
@@ -43,12 +47,15 @@ bool
|
|
|
|
|
|
bool
|
|
-CompareKeysAlternative(int key_id,
|
|
- int key_len,
|
|
- const char* type,
|
|
- const char* key_seq,
|
|
- struct key actual) {
|
|
- struct key temp;
|
|
+CompareKeysAlternative(
|
|
+ int key_id,
|
|
+ int key_len,
|
|
+ const char * type,
|
|
+ const char * key_seq,
|
|
+ struct key actual
|
|
+ )
|
|
+{
|
|
+ struct key temp;
|
|
|
|
temp.key_id = key_id;
|
|
temp.key_len = key_len;
|
|
@@ -60,30 +67,32 @@ bool
|
|
|
|
|
|
void
|
|
-test_ReadEmptyKeyFile(void) {
|
|
- struct key* keys = NULL;
|
|
- const char *path = CreatePath("key-test-empty", INPUT_DIR);
|
|
+test_ReadEmptyKeyFile(void)
|
|
+{
|
|
+ struct key * keys = NULL;
|
|
+ const char * path = CreatePath("key-test-empty", INPUT_DIR);
|
|
|
|
TEST_ASSERT_NOT_NULL(path);
|
|
TEST_ASSERT_EQUAL(0, auth_init(path, &keys));
|
|
TEST_ASSERT_NULL(keys);
|
|
|
|
- free((void *)path);
|
|
+ DestroyPath(path);
|
|
}
|
|
|
|
|
|
void
|
|
-test_ReadASCIIKeys(void) {
|
|
- struct key* keys = NULL;
|
|
- const char *path = CreatePath("key-test-ascii", INPUT_DIR);
|
|
+test_ReadASCIIKeys(void)
|
|
+{
|
|
+ struct key * keys = NULL;
|
|
+ struct key * result = NULL;
|
|
+ const char * path = CreatePath("key-test-ascii", INPUT_DIR);
|
|
|
|
TEST_ASSERT_NOT_NULL(path);
|
|
TEST_ASSERT_EQUAL(2, auth_init(path, &keys));
|
|
TEST_ASSERT_NOT_NULL(keys);
|
|
|
|
- free((void *)path);
|
|
+ DestroyPath(path);
|
|
|
|
- struct key* result = NULL;
|
|
get_key(40, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(40, 11, "MD5", "asciikeyTwo", *result));
|
|
@@ -96,16 +105,19 @@ void
|
|
|
|
|
|
void
|
|
-test_ReadHexKeys(void) {
|
|
- struct key* keys = NULL;
|
|
- const char *path = CreatePath("key-test-hex", INPUT_DIR);
|
|
+test_ReadHexKeys(void)
|
|
+{
|
|
+ struct key * keys = NULL;
|
|
+ struct key * result = NULL;
|
|
+ const char * path = CreatePath("key-test-hex", INPUT_DIR);
|
|
+ char data1[15];
|
|
+ char data2[13];
|
|
|
|
TEST_ASSERT_NOT_NULL(path);
|
|
TEST_ASSERT_EQUAL(3, auth_init(path, &keys));
|
|
TEST_ASSERT_NOT_NULL(keys);
|
|
- free((void *)path);
|
|
+ DestroyPath(path);
|
|
|
|
- struct key* result = NULL;
|
|
get_key(10, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(10, 13, "MD5",
|
|
@@ -114,31 +126,36 @@ void
|
|
result = NULL;
|
|
get_key(20, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
- char data1[15]; memset(data1, 0x11, 15);
|
|
+
|
|
+ memset(data1, 0x11, 15);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(20, 15, "MD5", data1, *result));
|
|
|
|
result = NULL;
|
|
get_key(30, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
- char data2[13]; memset(data2, 0x01, 13);
|
|
+
|
|
+ memset(data2, 0x01, 13);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(30, 13, "MD5", data2, *result));
|
|
}
|
|
|
|
|
|
void
|
|
-test_ReadKeyFileWithComments(void) {
|
|
- struct key* keys = NULL;
|
|
- const char *path = CreatePath("key-test-comments", INPUT_DIR);
|
|
+test_ReadKeyFileWithComments(void)
|
|
+{
|
|
+ struct key * keys = NULL;
|
|
+ struct key * result = NULL;
|
|
+ const char * path = CreatePath("key-test-comments", INPUT_DIR);
|
|
+ char data[15];
|
|
|
|
TEST_ASSERT_NOT_NULL(path);
|
|
TEST_ASSERT_EQUAL(2, auth_init(path, &keys));
|
|
TEST_ASSERT_NOT_NULL(keys);
|
|
- free((void *)path);
|
|
+ DestroyPath(path);
|
|
|
|
- struct key* result = NULL;
|
|
get_key(10, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
- char data[15]; memset(data, 0x01, 15);
|
|
+
|
|
+ memset(data, 0x01, 15);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(10, 15, "MD5", data, *result));
|
|
|
|
result = NULL;
|
|
@@ -149,22 +166,25 @@ void
|
|
|
|
|
|
void
|
|
-test_ReadKeyFileWithInvalidHex(void) {
|
|
- struct key* keys = NULL;
|
|
- const char *path = CreatePath("key-test-invalid-hex", INPUT_DIR);
|
|
+test_ReadKeyFileWithInvalidHex(void)
|
|
+{
|
|
+ struct key * keys = NULL;
|
|
+ struct key * result = NULL;
|
|
+ const char * path = CreatePath("key-test-invalid-hex", INPUT_DIR);
|
|
+ char data[15];
|
|
|
|
TEST_ASSERT_NOT_NULL(path);
|
|
TEST_ASSERT_EQUAL(1, auth_init(path, &keys));
|
|
TEST_ASSERT_NOT_NULL(keys);
|
|
- free((void *)path);
|
|
+ DestroyPath(path);
|
|
|
|
- struct key* result = NULL;
|
|
get_key(10, &result);
|
|
TEST_ASSERT_NOT_NULL(result);
|
|
- char data[15]; memset(data, 0x01, 15);
|
|
+
|
|
+ memset(data, 0x01, 15);
|
|
TEST_ASSERT_TRUE(CompareKeysAlternative(10, 15, "MD5", data, *result));
|
|
|
|
result = NULL;
|
|
- get_key(30, &result); // Should not exist, and result should remain NULL.
|
|
+ get_key(30, &result); /* Should not exist, and result should remain NULL. */
|
|
TEST_ASSERT_NULL(result);
|
|
}
|
|
Index: contrib/ntp/sntp/tests/packetHandling.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/packetHandling.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/packetHandling.c (working copy)
|
|
@@ -27,25 +27,29 @@ void test_HandleCorrectPacket(void);
|
|
|
|
|
|
void
|
|
-setUp(void) {
|
|
+setUp(void)
|
|
+{
|
|
init_lib();
|
|
}
|
|
|
|
|
|
int
|
|
-LfpEquality(const l_fp expected, const l_fp actual) {
|
|
- if (L_ISEQU(&expected, &actual))
|
|
- return TRUE;
|
|
- else
|
|
- return FALSE;
|
|
+LfpEquality(
|
|
+ const l_fp expected,
|
|
+ const l_fp actual
|
|
+ )
|
|
+{
|
|
+ return !!(L_ISEQU(&expected, &actual));
|
|
}
|
|
|
|
|
|
void
|
|
-test_GenerateUnauthenticatedPacket(void) {
|
|
- struct pkt testpkt;
|
|
+test_GenerateUnauthenticatedPacket(void)
|
|
+{
|
|
+ struct pkt testpkt;
|
|
+ struct timeval xmt;
|
|
+ l_fp expected_xmt, actual_xmt;
|
|
|
|
- struct timeval xmt;
|
|
GETTIMEOFDAY(&xmt, NULL);
|
|
xmt.tv_sec += JAN_1970;
|
|
|
|
@@ -59,7 +63,6 @@ void
|
|
TEST_ASSERT_EQUAL(STRATUM_UNSPEC, PKT_TO_STRATUM(testpkt.stratum));
|
|
TEST_ASSERT_EQUAL(8, testpkt.ppoll);
|
|
|
|
- l_fp expected_xmt, actual_xmt;
|
|
TVTOTS(&xmt, &expected_xmt);
|
|
NTOHL_FP(&testpkt.xmt, &actual_xmt);
|
|
TEST_ASSERT_TRUE(LfpEquality(expected_xmt, actual_xmt));
|
|
@@ -67,8 +70,16 @@ void
|
|
|
|
|
|
void
|
|
-test_GenerateAuthenticatedPacket(void) {
|
|
- struct key testkey;
|
|
+test_GenerateAuthenticatedPacket(void)
|
|
+{
|
|
+ static const int EXPECTED_PKTLEN = LEN_PKT_NOMAC + MAX_MD5_LEN;
|
|
+
|
|
+ struct key testkey;
|
|
+ struct pkt testpkt;
|
|
+ struct timeval xmt;
|
|
+ l_fp expected_xmt, actual_xmt;
|
|
+ char expected_mac[MAX_MD5_LEN];
|
|
+
|
|
testkey.next = NULL;
|
|
testkey.key_id = 30;
|
|
testkey.key_len = 9;
|
|
@@ -75,14 +86,9 @@ void
|
|
memcpy(testkey.key_seq, "123456789", testkey.key_len);
|
|
memcpy(testkey.type, "MD5", 3);
|
|
|
|
- struct pkt testpkt;
|
|
-
|
|
- struct timeval xmt;
|
|
GETTIMEOFDAY(&xmt, NULL);
|
|
xmt.tv_sec += JAN_1970;
|
|
|
|
- const int EXPECTED_PKTLEN = LEN_PKT_NOMAC + MAX_MD5_LEN;
|
|
-
|
|
TEST_ASSERT_EQUAL(EXPECTED_PKTLEN,
|
|
generate_pkt(&testpkt, &xmt, testkey.key_id, &testkey));
|
|
|
|
@@ -93,7 +99,6 @@ void
|
|
TEST_ASSERT_EQUAL(STRATUM_UNSPEC, PKT_TO_STRATUM(testpkt.stratum));
|
|
TEST_ASSERT_EQUAL(8, testpkt.ppoll);
|
|
|
|
- l_fp expected_xmt, actual_xmt;
|
|
TVTOTS(&xmt, &expected_xmt);
|
|
NTOHL_FP(&testpkt.xmt, &actual_xmt);
|
|
TEST_ASSERT_TRUE(LfpEquality(expected_xmt, actual_xmt));
|
|
@@ -100,96 +105,96 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(testkey.key_id, ntohl(testpkt.exten[0]));
|
|
|
|
- char expected_mac[MAX_MD5_LEN];
|
|
- TEST_ASSERT_EQUAL(MAX_MD5_LEN - 4, // Remove the key_id, only keep the mac.
|
|
- make_mac((char*)&testpkt, LEN_PKT_NOMAC, MAX_MD5_LEN, &testkey, expected_mac));
|
|
+ TEST_ASSERT_EQUAL(MAX_MD5_LEN - 4, /* Remove the key_id, only keep the mac. */
|
|
+ make_mac(&testpkt, LEN_PKT_NOMAC, MAX_MD5_LEN, &testkey, expected_mac));
|
|
TEST_ASSERT_EQUAL_MEMORY(expected_mac, (char*)&testpkt.exten[1], MAX_MD5_LEN -4);
|
|
}
|
|
|
|
|
|
void
|
|
-test_OffsetCalculationPositiveOffset(void) {
|
|
- struct pkt rpkt;
|
|
+test_OffsetCalculationPositiveOffset(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
+ l_fp reftime, tmp;
|
|
+ struct timeval dst;
|
|
+ double offset, precision, synch_distance;
|
|
|
|
- rpkt.precision = -16; // 0,000015259
|
|
+ rpkt.precision = -16; /* 0,000015259 */
|
|
rpkt.rootdelay = HTONS_FP(DTOUFP(0.125));
|
|
rpkt.rootdisp = HTONS_FP(DTOUFP(0.25));
|
|
- // Synch Distance: (0.125+0.25)/2.0 == 0.1875
|
|
- l_fp reftime;
|
|
+
|
|
+ /* Synch Distance: (0.125+0.25)/2.0 == 0.1875 */
|
|
get_systime(&reftime);
|
|
HTONL_FP(&reftime, &rpkt.reftime);
|
|
|
|
- l_fp tmp;
|
|
-
|
|
- // T1 - Originate timestamp
|
|
+ /* T1 - Originate timestamp */
|
|
tmp.l_ui = 1000000000UL;
|
|
tmp.l_uf = 0UL;
|
|
HTONL_FP(&tmp, &rpkt.org);
|
|
|
|
- // T2 - Receive timestamp
|
|
+ /* T2 - Receive timestamp */
|
|
tmp.l_ui = 1000000001UL;
|
|
tmp.l_uf = 2147483648UL;
|
|
HTONL_FP(&tmp, &rpkt.rec);
|
|
|
|
- // T3 - Transmit timestamp
|
|
+ /* T3 - Transmit timestamp */
|
|
tmp.l_ui = 1000000002UL;
|
|
tmp.l_uf = 0UL;
|
|
HTONL_FP(&tmp, &rpkt.xmt);
|
|
|
|
- // T4 - Destination timestamp as standard timeval
|
|
+ /* T4 - Destination timestamp as standard timeval */
|
|
tmp.l_ui = 1000000001UL;
|
|
tmp.l_uf = 0UL;
|
|
- struct timeval dst;
|
|
TSTOTV(&tmp, &dst);
|
|
dst.tv_sec -= JAN_1970;
|
|
|
|
- double offset, precision, synch_distance;
|
|
offset_calculation(&rpkt, LEN_PKT_NOMAC, &dst, &offset, &precision, &synch_distance);
|
|
|
|
TEST_ASSERT_EQUAL_DOUBLE(1.25, offset);
|
|
TEST_ASSERT_EQUAL_DOUBLE(1. / ULOGTOD(16), precision);
|
|
- // 1.1250150000000001 ?
|
|
+ /* 1.1250150000000001 ? */
|
|
TEST_ASSERT_EQUAL_DOUBLE(1.125015, synch_distance);
|
|
}
|
|
|
|
|
|
void
|
|
-test_OffsetCalculationNegativeOffset(void) {
|
|
- struct pkt rpkt;
|
|
+test_OffsetCalculationNegativeOffset(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
+ l_fp reftime, tmp;
|
|
+ struct timeval dst;
|
|
+ double offset, precision, synch_distance;
|
|
|
|
rpkt.precision = -1;
|
|
rpkt.rootdelay = HTONS_FP(DTOUFP(0.5));
|
|
rpkt.rootdisp = HTONS_FP(DTOUFP(0.5));
|
|
- // Synch Distance is (0.5+0.5)/2.0, or 0.5
|
|
- l_fp reftime;
|
|
+
|
|
+ /* Synch Distance is (0.5+0.5)/2.0, or 0.5 */
|
|
get_systime(&reftime);
|
|
HTONL_FP(&reftime, &rpkt.reftime);
|
|
|
|
- l_fp tmp;
|
|
-
|
|
- // T1 - Originate timestamp
|
|
+ /* T1 - Originate timestamp */
|
|
tmp.l_ui = 1000000001UL;
|
|
tmp.l_uf = 0UL;
|
|
HTONL_FP(&tmp, &rpkt.org);
|
|
|
|
- // T2 - Receive timestamp
|
|
+ /* T2 - Receive timestamp */
|
|
tmp.l_ui = 1000000000UL;
|
|
tmp.l_uf = 2147483648UL;
|
|
HTONL_FP(&tmp, &rpkt.rec);
|
|
|
|
- // T3 - Transmit timestamp
|
|
+ /*/ T3 - Transmit timestamp */
|
|
tmp.l_ui = 1000000001UL;
|
|
tmp.l_uf = 2147483648UL;
|
|
HTONL_FP(&tmp, &rpkt.xmt);
|
|
|
|
- // T4 - Destination timestamp as standard timeval
|
|
+ /* T4 - Destination timestamp as standard timeval */
|
|
tmp.l_ui = 1000000003UL;
|
|
tmp.l_uf = 0UL;
|
|
- struct timeval dst;
|
|
+
|
|
TSTOTV(&tmp, &dst);
|
|
dst.tv_sec -= JAN_1970;
|
|
|
|
- double offset, precision, synch_distance;
|
|
offset_calculation(&rpkt, LEN_PKT_NOMAC, &dst, &offset, &precision, &synch_distance);
|
|
|
|
TEST_ASSERT_EQUAL_DOUBLE(-1, offset);
|
|
@@ -199,8 +204,9 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleUnusableServer(void) {
|
|
- struct pkt rpkt;
|
|
+test_HandleUnusableServer(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
sockaddr_u host;
|
|
int rpktl;
|
|
|
|
@@ -212,8 +218,9 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleUnusablePacket(void) {
|
|
- struct pkt rpkt;
|
|
+test_HandleUnusablePacket(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
sockaddr_u host;
|
|
int rpktl;
|
|
|
|
@@ -225,8 +232,9 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleServerAuthenticationFailure(void) {
|
|
- struct pkt rpkt;
|
|
+test_HandleServerAuthenticationFailure(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
sockaddr_u host;
|
|
int rpktl;
|
|
|
|
@@ -238,12 +246,13 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleKodDemobilize(void) {
|
|
- const char * HOSTNAME = "192.0.2.1";
|
|
- const char * REASON = "DENY";
|
|
+test_HandleKodDemobilize(void)
|
|
+{
|
|
+ static const char * HOSTNAME = "192.0.2.1";
|
|
+ static const char * REASON = "DENY";
|
|
struct pkt rpkt;
|
|
- sockaddr_u host;
|
|
- int rpktl;
|
|
+ sockaddr_u host;
|
|
+ int rpktl;
|
|
struct kod_entry * entry;
|
|
|
|
rpktl = KOD_DEMOBILIZE;
|
|
@@ -253,7 +262,7 @@ void
|
|
host.sa4.sin_family = AF_INET;
|
|
host.sa4.sin_addr.s_addr = inet_addr(HOSTNAME);
|
|
|
|
- // Test that the KOD-entry is added to the database.
|
|
+ /* Test that the KOD-entry is added to the database. */
|
|
kod_init_kod_db("/dev/null", TRUE);
|
|
|
|
TEST_ASSERT_EQUAL(1, handle_pkt(rpktl, &rpkt, &host, HOSTNAME));
|
|
@@ -264,8 +273,9 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleKodRate(void) {
|
|
- struct pkt rpkt;
|
|
+test_HandleKodRate(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
sockaddr_u host;
|
|
int rpktl;
|
|
|
|
@@ -277,13 +287,14 @@ void
|
|
|
|
|
|
void
|
|
-test_HandleCorrectPacket(void) {
|
|
- struct pkt rpkt;
|
|
+test_HandleCorrectPacket(void)
|
|
+{
|
|
+ struct pkt rpkt;
|
|
sockaddr_u host;
|
|
int rpktl;
|
|
l_fp now;
|
|
|
|
- // We don't want our testing code to actually change the system clock.
|
|
+ /* We don't want our testing code to actually change the system clock. */
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(STEP));
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(SLEW));
|
|
|
|
Index: contrib/ntp/sntp/tests/packetProcessing.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/packetProcessing.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/packetProcessing.c (working copy)
|
|
@@ -1,4 +1,10 @@
|
|
#include "config.h"
|
|
+
|
|
+/* need autokey for some of the tests, or the will create buffer overruns. */
|
|
+#ifndef AUTOKEY
|
|
+# define AUTOKEY 1
|
|
+#endif
|
|
+
|
|
#include "sntptest.h"
|
|
#include "networking.h"
|
|
#include "ntp_stdlib.h"
|
|
@@ -43,10 +49,13 @@ bool restoreKeyDb;
|
|
|
|
|
|
void
|
|
-PrepareAuthenticationTest(int key_id,
|
|
- int key_len,
|
|
- const char* type,
|
|
- const void* key_seq) {
|
|
+PrepareAuthenticationTest(
|
|
+ int key_id,
|
|
+ int key_len,
|
|
+ const char * type,
|
|
+ const void * key_seq
|
|
+ )
|
|
+{
|
|
char str[25];
|
|
snprintf(str, 25, "%d", key_id);
|
|
ActivateOption("-a", str);
|
|
@@ -66,21 +75,26 @@ void
|
|
|
|
|
|
void
|
|
-PrepareAuthenticationTestMD5(int key_id,
|
|
- int key_len,
|
|
- const void* key_seq) {
|
|
+PrepareAuthenticationTestMD5(
|
|
+ int key_id,
|
|
+ int key_len,
|
|
+ const void * key_seq
|
|
+ )
|
|
+{
|
|
PrepareAuthenticationTest(key_id, key_len, "MD5", key_seq);
|
|
}
|
|
|
|
|
|
void
|
|
-setUp(void) {
|
|
+setUp(void)
|
|
+{
|
|
|
|
sntptest();
|
|
restoreKeyDb = false;
|
|
|
|
/* Initialize the test packet and socket,
|
|
- * so they contain at least some valid data. */
|
|
+ * so they contain at least some valid data.
|
|
+ */
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOWARNING, NTP_VERSION,
|
|
MODE_SERVER);
|
|
testpkt.stratum = STRATUM_REFCLOCK;
|
|
@@ -87,7 +101,8 @@ void
|
|
memcpy(&testpkt.refid, "GPS\0", 4);
|
|
|
|
/* Set the origin timestamp of the received packet to the
|
|
- * same value as the transmit timestamp of the sent packet. */
|
|
+ * same value as the transmit timestamp of the sent packet.
|
|
+ */
|
|
l_fp tmp;
|
|
tmp.l_ui = 1000UL;
|
|
tmp.l_uf = 0UL;
|
|
@@ -98,8 +113,8 @@ void
|
|
|
|
|
|
void
|
|
-tearDown(void) {
|
|
-
|
|
+tearDown(void)
|
|
+{
|
|
if (restoreKeyDb) {
|
|
key_cnt = 0;
|
|
free(key_ptr);
|
|
@@ -106,135 +121,144 @@ void
|
|
key_ptr = NULL;
|
|
}
|
|
|
|
- sntptest_destroy(); //only on the final test!! if counter == 0 etc...
|
|
+ sntptest_destroy(); /* only on the final test!! if counter == 0 etc... */
|
|
}
|
|
|
|
|
|
-
|
|
void
|
|
-test_TooShortLength(void) {
|
|
+test_TooShortLength(void)
|
|
+{
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC - 1,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC - 1,
|
|
- MODE_BROADCAST, &testspkt, "UnitTest"));
|
|
+ MODE_BROADCAST, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_LengthNotMultipleOfFour(void) {
|
|
+test_LengthNotMultipleOfFour(void)
|
|
+{
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC + 6,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC + 3,
|
|
- MODE_BROADCAST, &testspkt, "UnitTest"));
|
|
+ MODE_BROADCAST, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_TooShortExtensionFieldLength(void) {
|
|
+test_TooShortExtensionFieldLength(void)
|
|
+{
|
|
/* The lower 16-bits are the length of the extension field.
|
|
* This lengths must be multiples of 4 bytes, which gives
|
|
- * a minimum of 4 byte extension field length. */
|
|
- testpkt.exten[7] = htonl(3); // 3 bytes is too short.
|
|
+ * a minimum of 4 byte extension field length.
|
|
+ */
|
|
+ testpkt.exten[7] = htonl(3); /* 3 bytes is too short. */
|
|
|
|
/* We send in a pkt_len of header size + 4 byte extension
|
|
* header + 24 byte MAC, this prevents the length error to
|
|
- * be caught at an earlier stage */
|
|
+ * be caught at an earlier stage
|
|
+ */
|
|
int pkt_len = LEN_PKT_NOMAC + 4 + 24;
|
|
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_UnauthenticatedPacketReject(void) {
|
|
- //sntptest();
|
|
- // Activate authentication option
|
|
+test_UnauthenticatedPacketReject(void)
|
|
+{
|
|
+ /* Activate authentication option */
|
|
ActivateOption("-a", "123");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
|
|
- // We demand authentication, but no MAC header is present.
|
|
+ /* We demand authentication, but no MAC header is present. */
|
|
TEST_ASSERT_EQUAL(SERVER_AUTH_FAIL,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_CryptoNAKPacketReject(void) {
|
|
- // Activate authentication option
|
|
+test_CryptoNAKPacketReject(void)
|
|
+{
|
|
+ /* Activate authentication option */
|
|
ActivateOption("-a", "123");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
- int pkt_len = LEN_PKT_NOMAC + 4; // + 4 byte MAC = Crypto-NAK
|
|
+ int pkt_len = LEN_PKT_NOMAC + 4; /* + 4 byte MAC = Crypto-NAK */
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_AUTH_FAIL,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_AuthenticatedPacketInvalid(void) {
|
|
- // Activate authentication option
|
|
+test_AuthenticatedPacketInvalid(void)
|
|
+{
|
|
+ /* Activate authentication option */
|
|
PrepareAuthenticationTestMD5(50, 9, "123456789");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
- // Prepare the packet.
|
|
+ /* Prepare the packet. */
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
|
|
testpkt.exten[0] = htonl(50);
|
|
- int mac_len = make_mac((char*)&testpkt, pkt_len,
|
|
- MAX_MD5_LEN, key_ptr,
|
|
- (char*)&testpkt.exten[1]);
|
|
+ int mac_len = make_mac(&testpkt, pkt_len,
|
|
+ MAX_MD5_LEN, key_ptr,
|
|
+ &testpkt.exten[1]);
|
|
|
|
pkt_len += 4 + mac_len;
|
|
|
|
- // Now, alter the MAC so it becomes invalid.
|
|
+ /* Now, alter the MAC so it becomes invalid. */
|
|
testpkt.exten[1] += 1;
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_AUTH_FAIL,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_AuthenticatedPacketUnknownKey(void) {
|
|
- // Activate authentication option
|
|
+test_AuthenticatedPacketUnknownKey(void)
|
|
+{
|
|
+ /* Activate authentication option */
|
|
PrepareAuthenticationTestMD5(30, 9, "123456789");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
- // Prepare the packet. Observe that the Key-ID expected is 30,
|
|
- // but the packet has a key id of 50.
|
|
+ /* Prepare the packet. Note that the Key-ID expected is 30, but
|
|
+ * the packet has a key id of 50.
|
|
+ */
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
|
|
testpkt.exten[0] = htonl(50);
|
|
- int mac_len = make_mac((char*)&testpkt, pkt_len,
|
|
- MAX_MD5_LEN, key_ptr,
|
|
- (char*)&testpkt.exten[1]);
|
|
+ int mac_len = make_mac(&testpkt, pkt_len,
|
|
+ MAX_MD5_LEN, key_ptr,
|
|
+ &testpkt.exten[1]);
|
|
pkt_len += 4 + mac_len;
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_AUTH_FAIL,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_ServerVersionTooOld(void) {
|
|
+test_ServerVersionTooOld(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOWARNING,
|
|
- NTP_OLDVERSION - 1,
|
|
- MODE_CLIENT);
|
|
+ NTP_OLDVERSION - 1,
|
|
+ MODE_CLIENT);
|
|
TEST_ASSERT_TRUE(PKT_VERSION(testpkt.li_vn_mode) < NTP_OLDVERSION);
|
|
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
@@ -241,17 +265,18 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_ServerVersionTooNew(void) {
|
|
+test_ServerVersionTooNew(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOWARNING,
|
|
- NTP_VERSION + 1,
|
|
- MODE_CLIENT);
|
|
+ NTP_VERSION + 1,
|
|
+ MODE_CLIENT);
|
|
TEST_ASSERT_TRUE(PKT_VERSION(testpkt.li_vn_mode) > NTP_VERSION);
|
|
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
@@ -258,29 +283,32 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_NonWantedMode(void) {
|
|
+test_NonWantedMode(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOWARNING,
|
|
- NTP_VERSION,
|
|
- MODE_CLIENT);
|
|
+ NTP_VERSION,
|
|
+ MODE_CLIENT);
|
|
|
|
- // The packet has a mode of MODE_CLIENT, but process_pkt expects MODE_SERVER
|
|
-
|
|
+ /* The packet has a mode of MODE_CLIENT, but process_pkt expects
|
|
+ * MODE_SERVER
|
|
+ */
|
|
TEST_ASSERT_EQUAL(SERVER_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
/* Tests bug 1597 */
|
|
void
|
|
-test_KoDRate(void) {
|
|
+test_KoDRate(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.stratum = STRATUM_PKT_UNSPEC;
|
|
@@ -288,12 +316,13 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(KOD_RATE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_KoDDeny(void) {
|
|
+test_KoDDeny(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.stratum = STRATUM_PKT_UNSPEC;
|
|
@@ -301,26 +330,28 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(KOD_DEMOBILIZE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_RejectUnsyncedServer(void) {
|
|
+test_RejectUnsyncedServer(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOTINSYNC,
|
|
- NTP_VERSION,
|
|
- MODE_SERVER);
|
|
+ NTP_VERSION,
|
|
+ MODE_SERVER);
|
|
|
|
TEST_ASSERT_EQUAL(SERVER_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_RejectWrongResponseServerMode(void) {
|
|
+test_RejectWrongResponseServerMode(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
l_fp tmp;
|
|
@@ -334,12 +365,13 @@ void
|
|
|
|
TEST_ASSERT_EQUAL(PACKET_UNUSEABLE,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_AcceptNoSentPacketBroadcastMode(void) {
|
|
+test_AcceptNoSentPacketBroadcastMode(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
testpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOWARNING,
|
|
@@ -353,53 +385,55 @@ void
|
|
|
|
|
|
void
|
|
-test_CorrectUnauthenticatedPacket(void) {
|
|
+test_CorrectUnauthenticatedPacket(void)
|
|
+{
|
|
TEST_ASSERT_FALSE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
TEST_ASSERT_EQUAL(LEN_PKT_NOMAC,
|
|
process_pkt(&testpkt, &testsock, LEN_PKT_NOMAC,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_CorrectAuthenticatedPacketMD5(void) {
|
|
+test_CorrectAuthenticatedPacketMD5(void)
|
|
+{
|
|
PrepareAuthenticationTestMD5(10, 15, "123456789abcdef");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
|
|
- // Prepare the packet.
|
|
+ /* Prepare the packet. */
|
|
testpkt.exten[0] = htonl(10);
|
|
- int mac_len = make_mac((char*)&testpkt, pkt_len,
|
|
- MAX_MD5_LEN, key_ptr,
|
|
- (char*)&testpkt.exten[1]);
|
|
+ int mac_len = make_mac(&testpkt, pkt_len,
|
|
+ MAX_MD5_LEN, key_ptr,
|
|
+ &testpkt.exten[1]);
|
|
|
|
pkt_len += 4 + mac_len;
|
|
|
|
TEST_ASSERT_EQUAL(pkt_len,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
-
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
|
|
|
|
void
|
|
-test_CorrectAuthenticatedPacketSHA1(void) {
|
|
+test_CorrectAuthenticatedPacketSHA1(void)
|
|
+{
|
|
PrepareAuthenticationTest(20, 15, "SHA1", "abcdefghijklmno");
|
|
TEST_ASSERT_TRUE(ENABLED_OPT(AUTHENTICATION));
|
|
|
|
int pkt_len = LEN_PKT_NOMAC;
|
|
|
|
- // Prepare the packet.
|
|
+ /* Prepare the packet. */
|
|
testpkt.exten[0] = htonl(20);
|
|
- int mac_len = make_mac((char*)&testpkt, pkt_len,
|
|
- MAX_MAC_LEN, key_ptr,
|
|
- (char*)&testpkt.exten[1]);
|
|
+ int mac_len = make_mac(&testpkt, pkt_len,
|
|
+ MAX_MAC_LEN, key_ptr,
|
|
+ &testpkt.exten[1]);
|
|
|
|
pkt_len += 4 + mac_len;
|
|
|
|
TEST_ASSERT_EQUAL(pkt_len,
|
|
process_pkt(&testpkt, &testsock, pkt_len,
|
|
- MODE_SERVER, &testspkt, "UnitTest"));
|
|
+ MODE_SERVER, &testspkt, "UnitTest"));
|
|
}
|
|
Index: contrib/ntp/sntp/tests/run-packetProcessing.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/tests/run-packetProcessing.c (revision 294707)
|
|
+++ contrib/ntp/sntp/tests/run-packetProcessing.c (working copy)
|
|
@@ -66,24 +66,24 @@ int main(int argc, char *argv[])
|
|
{
|
|
progname = argv[0];
|
|
UnityBegin("packetProcessing.c");
|
|
- RUN_TEST(test_TooShortLength, 19);
|
|
- RUN_TEST(test_LengthNotMultipleOfFour, 20);
|
|
- RUN_TEST(test_TooShortExtensionFieldLength, 21);
|
|
- RUN_TEST(test_UnauthenticatedPacketReject, 22);
|
|
- RUN_TEST(test_CryptoNAKPacketReject, 23);
|
|
- RUN_TEST(test_AuthenticatedPacketInvalid, 24);
|
|
- RUN_TEST(test_AuthenticatedPacketUnknownKey, 25);
|
|
- RUN_TEST(test_ServerVersionTooOld, 26);
|
|
- RUN_TEST(test_ServerVersionTooNew, 27);
|
|
- RUN_TEST(test_NonWantedMode, 28);
|
|
- RUN_TEST(test_KoDRate, 29);
|
|
- RUN_TEST(test_KoDDeny, 30);
|
|
- RUN_TEST(test_RejectUnsyncedServer, 31);
|
|
- RUN_TEST(test_RejectWrongResponseServerMode, 32);
|
|
- RUN_TEST(test_AcceptNoSentPacketBroadcastMode, 33);
|
|
- RUN_TEST(test_CorrectUnauthenticatedPacket, 34);
|
|
- RUN_TEST(test_CorrectAuthenticatedPacketMD5, 35);
|
|
- RUN_TEST(test_CorrectAuthenticatedPacketSHA1, 36);
|
|
+ RUN_TEST(test_TooShortLength, 25);
|
|
+ RUN_TEST(test_LengthNotMultipleOfFour, 26);
|
|
+ RUN_TEST(test_TooShortExtensionFieldLength, 27);
|
|
+ RUN_TEST(test_UnauthenticatedPacketReject, 28);
|
|
+ RUN_TEST(test_CryptoNAKPacketReject, 29);
|
|
+ RUN_TEST(test_AuthenticatedPacketInvalid, 30);
|
|
+ RUN_TEST(test_AuthenticatedPacketUnknownKey, 31);
|
|
+ RUN_TEST(test_ServerVersionTooOld, 32);
|
|
+ RUN_TEST(test_ServerVersionTooNew, 33);
|
|
+ RUN_TEST(test_NonWantedMode, 34);
|
|
+ RUN_TEST(test_KoDRate, 35);
|
|
+ RUN_TEST(test_KoDDeny, 36);
|
|
+ RUN_TEST(test_RejectUnsyncedServer, 37);
|
|
+ RUN_TEST(test_RejectWrongResponseServerMode, 38);
|
|
+ RUN_TEST(test_AcceptNoSentPacketBroadcastMode, 39);
|
|
+ RUN_TEST(test_CorrectUnauthenticatedPacket, 40);
|
|
+ RUN_TEST(test_CorrectAuthenticatedPacketMD5, 41);
|
|
+ RUN_TEST(test_CorrectAuthenticatedPacketSHA1, 42);
|
|
|
|
return (UnityEnd());
|
|
}
|
|
Index: contrib/ntp/sntp/unity/unity_internals.h
|
|
===================================================================
|
|
--- contrib/ntp/sntp/unity/unity_internals.h (revision 294707)
|
|
+++ contrib/ntp/sntp/unity/unity_internals.h (working copy)
|
|
@@ -614,7 +614,7 @@ extern const char UnityStrErr64[];
|
|
|
|
#define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UP)(expected), (_U_SINT)(_UP)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_POINTER)
|
|
#define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)line)
|
|
-#define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) UnityAssertEqualMemory((UNITY_PTR_ATTRIBUTE void*)(expected), (UNITY_PTR_ATTRIBUTE void*)(actual), (_UU32)(len), 1, (message), (UNITY_LINE_TYPE)line)
|
|
+#define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) UnityAssertEqualMemory((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(len), 1, (message), (UNITY_LINE_TYPE)line)
|
|
|
|
#define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
|
|
#define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT8)
|
|
Index: contrib/ntp/sntp/version.c
|
|
===================================================================
|
|
--- contrib/ntp/sntp/version.c (revision 294707)
|
|
+++ contrib/ntp/sntp/version.c (working copy)
|
|
@@ -2,4 +2,4 @@
|
|
* version file for sntp
|
|
*/
|
|
#include <config.h>
|
|
-const char * Version = "sntp 4.2.8p4@1.3265-o Thu Jan 7 23:23:18 UTC 2016 (26)";
|
|
+const char * Version = "sntp 4.2.8p5@1.3265-o Wed Jan 20 09:06:36 UTC 2016 (27)";
|
|
Index: contrib/ntp/tests/libntp/authkeys.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/authkeys.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/authkeys.c (working copy)
|
|
@@ -13,6 +13,7 @@
|
|
# include "openssl/rand.h"
|
|
# include "openssl/evp.h"
|
|
#endif
|
|
+#include <limits.h>
|
|
|
|
u_long current_time = 4;
|
|
int counter = 0;
|
|
@@ -27,6 +28,7 @@ void test_HaveKeyCorrect(void);
|
|
void test_HaveKeyIncorrect(void);
|
|
void test_AddWithAuthUseKey(void);
|
|
void test_EmptyKey(void);
|
|
+void test_auth_log2(void);
|
|
|
|
|
|
void
|
|
@@ -70,7 +72,7 @@ AddTrustedKey(keyid_t keyno)
|
|
* We need to add a MD5-key in addition to setting the
|
|
* trust, because authhavekey() requires type != 0.
|
|
*/
|
|
- MD5auth_setkey(keyno, KEYTYPE, NULL, 0);
|
|
+ MD5auth_setkey(keyno, KEYTYPE, NULL, 0, NULL);
|
|
|
|
authtrust(keyno, TRUE);
|
|
|
|
@@ -158,3 +160,39 @@ test_EmptyKey(void)
|
|
|
|
return;
|
|
}
|
|
+
|
|
+/* test the implementation of 'auth_log2' -- use a local copy of the code */
|
|
+
|
|
+static u_short
|
|
+auth_log2(
|
|
+ size_t x)
|
|
+{
|
|
+ int s;
|
|
+ int r = 0;
|
|
+ size_t m = ~(size_t)0;
|
|
+
|
|
+ for (s = sizeof(size_t) / 2 * CHAR_BIT; s != 0; s >>= 1) {
|
|
+ m <<= s;
|
|
+ if (x & m)
|
|
+ r += s;
|
|
+ else
|
|
+ x <<= s;
|
|
+ }
|
|
+ return (u_short)r;
|
|
+}
|
|
+
|
|
+void
|
|
+test_auth_log2(void)
|
|
+{
|
|
+ int l2;
|
|
+ size_t tv;
|
|
+
|
|
+ TEST_ASSERT_EQUAL_INT(0, auth_log2(0));
|
|
+ TEST_ASSERT_EQUAL_INT(0, auth_log2(1));
|
|
+ for (l2 = 1; l2 < sizeof(size_t)*CHAR_BIT; ++l2) {
|
|
+ tv = (size_t)1 << l2;
|
|
+ TEST_ASSERT_EQUAL_INT(l2, auth_log2( tv ));
|
|
+ TEST_ASSERT_EQUAL_INT(l2, auth_log2( tv + 1 ));
|
|
+ TEST_ASSERT_EQUAL_INT(l2, auth_log2(2*tv - 1));
|
|
+ }
|
|
+}
|
|
Index: contrib/ntp/tests/libntp/decodenetnum.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/decodenetnum.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/decodenetnum.c (working copy)
|
|
@@ -7,25 +7,30 @@
|
|
void setUp(void);
|
|
extern void test_IPv4AddressOnly(void);
|
|
extern void test_IPv4AddressWithPort(void);
|
|
-//#ifdef ISC_PLATFORM_HAVEIPV6
|
|
extern void test_IPv6AddressOnly(void);
|
|
extern void test_IPv6AddressWithPort(void);
|
|
-//#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
extern void test_IllegalAddress(void);
|
|
extern void test_IllegalCharInPort(void);
|
|
|
|
-
|
|
+/*
|
|
+ * NOTE: The IPv6 specific tests are reduced to stubs when IPv6 is
|
|
+ * disabled.
|
|
+ *
|
|
+ * ISC_PLATFORM_HAVEIPV6 checks if system has IPV6 capabilies. WANTIPV6
|
|
+ * ISC_PLATFORM_WANTIPV6 can be changed with build --disable-ipv6.
|
|
+ *
|
|
+ * If we want IPv6 but don't have it, the tests should fail, I think.
|
|
+ */
|
|
void
|
|
setUp(void)
|
|
{
|
|
init_lib();
|
|
-
|
|
- return;
|
|
}
|
|
|
|
|
|
void
|
|
-test_IPv4AddressOnly(void) {
|
|
+test_IPv4AddressOnly(void)
|
|
+{
|
|
const char *str = "192.0.2.1";
|
|
sockaddr_u actual;
|
|
|
|
@@ -39,7 +44,8 @@ void
|
|
}
|
|
|
|
void
|
|
-test_IPv4AddressWithPort(void) {
|
|
+test_IPv4AddressWithPort(void)
|
|
+{
|
|
const char *str = "192.0.2.2:2000";
|
|
sockaddr_u actual;
|
|
|
|
@@ -54,15 +60,15 @@ void
|
|
|
|
|
|
void
|
|
-test_IPv6AddressOnly(void) {
|
|
+test_IPv6AddressOnly(void)
|
|
+{
|
|
+#ifdef ISC_PLATFORM_WANTIPV6
|
|
|
|
-//#ifdef ISC_PLATFORM_HAVEIPV6 //looks like HAVEIPV6 checks if system has IPV6 capabilies. WANTIPV6 can be changed with build --disable-ipv6
|
|
-#ifdef ISC_PLATFORM_WANTIPV6
|
|
const struct in6_addr address = {
|
|
0x20, 0x01, 0x0d, 0xb8,
|
|
- 0x85, 0xa3, 0x08, 0xd3,
|
|
- 0x13, 0x19, 0x8a, 0x2e,
|
|
- 0x03, 0x70, 0x73, 0x34
|
|
+ 0x85, 0xa3, 0x08, 0xd3,
|
|
+ 0x13, 0x19, 0x8a, 0x2e,
|
|
+ 0x03, 0x70, 0x73, 0x34
|
|
};
|
|
|
|
const char *str = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
|
|
@@ -77,24 +83,23 @@ void
|
|
TEST_ASSERT_TRUE(IsEqual(expected, actual));
|
|
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("IPV6 disabled in build, skipping.");
|
|
+
|
|
#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
-
|
|
-
|
|
}
|
|
|
|
|
|
-
|
|
void
|
|
-test_IPv6AddressWithPort(void) {
|
|
-
|
|
+test_IPv6AddressWithPort(void)
|
|
+{
|
|
#ifdef ISC_PLATFORM_WANTIPV6
|
|
|
|
const struct in6_addr address = {
|
|
0x20, 0x01, 0x0d, 0xb8,
|
|
- 0x85, 0xa3, 0x08, 0xd3,
|
|
- 0x13, 0x19, 0x8a, 0x2e,
|
|
- 0x03, 0x70, 0x73, 0x34
|
|
+ 0x85, 0xa3, 0x08, 0xd3,
|
|
+ 0x13, 0x19, 0x8a, 0x2e,
|
|
+ 0x03, 0x70, 0x73, 0x34
|
|
};
|
|
|
|
const char *str = "[2001:0db8:85a3:08d3:1319:8a2e:0370:7334]:3000";
|
|
@@ -109,13 +114,16 @@ void
|
|
TEST_ASSERT_TRUE(IsEqual(expected, actual));
|
|
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("IPV6 disabled in build, skipping.");
|
|
+
|
|
#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
}
|
|
|
|
|
|
void
|
|
-test_IllegalAddress(void) {
|
|
+test_IllegalAddress(void)
|
|
+{
|
|
const char *str = "192.0.2.270:2000";
|
|
sockaddr_u actual;
|
|
|
|
@@ -122,8 +130,10 @@ void
|
|
TEST_ASSERT_FALSE(decodenetnum(str, &actual));
|
|
}
|
|
|
|
+
|
|
void
|
|
-test_IllegalCharInPort(void) {
|
|
+test_IllegalCharInPort(void)
|
|
+{
|
|
/* An illegal port does not make the decodenetnum fail, but instead
|
|
* makes it use the standard port.
|
|
*/
|
|
Index: contrib/ntp/tests/libntp/run-authkeys.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/run-authkeys.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/run-authkeys.c (working copy)
|
|
@@ -26,6 +26,7 @@
|
|
#include "ntp.h"
|
|
#include "ntp_stdlib.h"
|
|
#include "ntp_calendar.h"
|
|
+#include <limits.h>
|
|
|
|
//=======External Functions This Runner Calls=====
|
|
extern void setUp(void);
|
|
@@ -36,6 +37,7 @@ extern void test_HaveKeyCorrect(void);
|
|
extern void test_HaveKeyIncorrect(void);
|
|
extern void test_AddWithAuthUseKey(void);
|
|
extern void test_EmptyKey(void);
|
|
+extern void test_auth_log2(void);
|
|
|
|
|
|
//=======Test Reset Option=====
|
|
@@ -54,12 +56,13 @@ int main(int argc, char *argv[])
|
|
{
|
|
progname = argv[0];
|
|
UnityBegin("authkeys.c");
|
|
- RUN_TEST(test_AddTrustedKeys, 24);
|
|
- RUN_TEST(test_AddUntrustedKey, 25);
|
|
- RUN_TEST(test_HaveKeyCorrect, 26);
|
|
- RUN_TEST(test_HaveKeyIncorrect, 27);
|
|
- RUN_TEST(test_AddWithAuthUseKey, 28);
|
|
- RUN_TEST(test_EmptyKey, 29);
|
|
+ RUN_TEST(test_AddTrustedKeys, 25);
|
|
+ RUN_TEST(test_AddUntrustedKey, 26);
|
|
+ RUN_TEST(test_HaveKeyCorrect, 27);
|
|
+ RUN_TEST(test_HaveKeyIncorrect, 28);
|
|
+ RUN_TEST(test_AddWithAuthUseKey, 29);
|
|
+ RUN_TEST(test_EmptyKey, 30);
|
|
+ RUN_TEST(test_auth_log2, 31);
|
|
|
|
return (UnityEnd());
|
|
}
|
|
Index: contrib/ntp/tests/libntp/run-decodenetnum.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/run-decodenetnum.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/run-decodenetnum.c (working copy)
|
|
@@ -55,10 +55,10 @@ int main(int argc, char *argv[])
|
|
UnityBegin("decodenetnum.c");
|
|
RUN_TEST(test_IPv4AddressOnly, 8);
|
|
RUN_TEST(test_IPv4AddressWithPort, 9);
|
|
- RUN_TEST(test_IPv6AddressOnly, 11);
|
|
- RUN_TEST(test_IPv6AddressWithPort, 12);
|
|
- RUN_TEST(test_IllegalAddress, 14);
|
|
- RUN_TEST(test_IllegalCharInPort, 15);
|
|
+ RUN_TEST(test_IPv6AddressOnly, 10);
|
|
+ RUN_TEST(test_IPv6AddressWithPort, 11);
|
|
+ RUN_TEST(test_IllegalAddress, 12);
|
|
+ RUN_TEST(test_IllegalCharInPort, 13);
|
|
|
|
return (UnityEnd());
|
|
}
|
|
Index: contrib/ntp/tests/libntp/run-socktoa.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/run-socktoa.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/run-socktoa.c (working copy)
|
|
@@ -55,11 +55,11 @@ int main(int argc, char *argv[])
|
|
progname = argv[0];
|
|
UnityBegin("socktoa.c");
|
|
RUN_TEST(test_IPv4AddressWithPort, 11);
|
|
- RUN_TEST(test_IPv6AddressWithPort, 13);
|
|
- RUN_TEST(test_IgnoreIPv6Fields, 14);
|
|
- RUN_TEST(test_ScopedIPv6AddressWithPort, 16);
|
|
- RUN_TEST(test_HashEqual, 17);
|
|
- RUN_TEST(test_HashNotEqual, 18);
|
|
+ RUN_TEST(test_IPv6AddressWithPort, 12);
|
|
+ RUN_TEST(test_IgnoreIPv6Fields, 13);
|
|
+ RUN_TEST(test_ScopedIPv6AddressWithPort, 14);
|
|
+ RUN_TEST(test_HashEqual, 15);
|
|
+ RUN_TEST(test_HashNotEqual, 16);
|
|
|
|
return (UnityEnd());
|
|
}
|
|
Index: contrib/ntp/tests/libntp/socktoa.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/libntp/socktoa.c (revision 294707)
|
|
+++ contrib/ntp/tests/libntp/socktoa.c (working copy)
|
|
@@ -9,10 +9,8 @@
|
|
|
|
void setUp(void);
|
|
void test_IPv4AddressWithPort(void);
|
|
-//#ifdef ISC_PLATFORM_HAVEIPV6
|
|
void test_IPv6AddressWithPort(void);
|
|
void test_IgnoreIPv6Fields(void);
|
|
-//#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
void test_ScopedIPv6AddressWithPort(void);
|
|
void test_HashEqual(void);
|
|
void test_HashNotEqual(void);
|
|
@@ -22,13 +20,12 @@ void
|
|
setUp(void)
|
|
{
|
|
init_lib();
|
|
-
|
|
- return;
|
|
}
|
|
|
|
|
|
void
|
|
-test_IPv4AddressWithPort(void) {
|
|
+test_IPv4AddressWithPort(void)
|
|
+{
|
|
sockaddr_u input = CreateSockaddr4("192.0.2.10", 123);
|
|
|
|
TEST_ASSERT_EQUAL_STRING("192.0.2.10", socktoa(&input));
|
|
@@ -37,8 +34,8 @@ void
|
|
|
|
|
|
void
|
|
-test_IPv6AddressWithPort(void) {
|
|
-
|
|
+test_IPv6AddressWithPort(void)
|
|
+{
|
|
#ifdef ISC_PLATFORM_WANTIPV6
|
|
|
|
const struct in6_addr address = {
|
|
@@ -63,16 +60,18 @@ void
|
|
TEST_ASSERT_EQUAL_STRING(expected_port, sockporttoa(&input));
|
|
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("IPV6 disabled in build, skipping.");
|
|
|
|
#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
-
|
|
}
|
|
|
|
|
|
void
|
|
-test_ScopedIPv6AddressWithPort(void) {
|
|
+test_ScopedIPv6AddressWithPort(void)
|
|
+{
|
|
#ifdef ISC_PLATFORM_HAVESCOPEID
|
|
+
|
|
const struct in6_addr address = { { {
|
|
0xfe, 0x80, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
@@ -95,12 +94,16 @@ void
|
|
TEST_ASSERT_EQUAL_STRING(expected, socktoa(&input));
|
|
TEST_ASSERT_EQUAL_STRING(expected_port, sockporttoa(&input));
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("Skipping because ISC_PLATFORM does not have Scope ID");
|
|
+
|
|
#endif
|
|
}
|
|
|
|
+
|
|
void
|
|
-test_HashEqual(void) {
|
|
+test_HashEqual(void)
|
|
+{
|
|
sockaddr_u input1 = CreateSockaddr4("192.00.2.2", 123);
|
|
sockaddr_u input2 = CreateSockaddr4("192.0.2.2", 123);
|
|
|
|
@@ -108,8 +111,10 @@ void
|
|
TEST_ASSERT_EQUAL(sock_hash(&input1), sock_hash(&input2));
|
|
}
|
|
|
|
+
|
|
void
|
|
-test_HashNotEqual(void) {
|
|
+test_HashNotEqual(void)
|
|
+{
|
|
/* These two addresses should not generate the same hash. */
|
|
sockaddr_u input1 = CreateSockaddr4("192.0.2.1", 123);
|
|
sockaddr_u input2 = CreateSockaddr4("192.0.2.2", 123);
|
|
@@ -120,15 +125,15 @@ void
|
|
|
|
|
|
void
|
|
-test_IgnoreIPv6Fields(void) {
|
|
-
|
|
+test_IgnoreIPv6Fields(void)
|
|
+{
|
|
#ifdef ISC_PLATFORM_WANTIPV6
|
|
|
|
const struct in6_addr address = {
|
|
0x20, 0x01, 0x0d, 0xb8,
|
|
- 0x85, 0xa3, 0x08, 0xd3,
|
|
- 0x13, 0x19, 0x8a, 0x2e,
|
|
- 0x03, 0x70, 0x73, 0x34
|
|
+ 0x85, 0xa3, 0x08, 0xd3,
|
|
+ 0x13, 0x19, 0x8a, 0x2e,
|
|
+ 0x03, 0x70, 0x73, 0x34
|
|
};
|
|
|
|
sockaddr_u input1, input2;
|
|
@@ -146,7 +151,8 @@ void
|
|
TEST_ASSERT_EQUAL(sock_hash(&input1), sock_hash(&input2));
|
|
|
|
#else
|
|
+
|
|
TEST_IGNORE_MESSAGE("IPV6 disabled in build, skipping.");
|
|
+
|
|
#endif /* ISC_PLATFORM_HAVEIPV6 */
|
|
}
|
|
-
|
|
Index: contrib/ntp/tests/ntpd/t-ntp_signd.c
|
|
===================================================================
|
|
--- contrib/ntp/tests/ntpd/t-ntp_signd.c (revision 294707)
|
|
+++ contrib/ntp/tests/ntpd/t-ntp_signd.c (working copy)
|
|
@@ -139,6 +139,7 @@ test_send_packet(void)
|
|
void
|
|
test_recv_packet(void)
|
|
{
|
|
+#if 0
|
|
int fd = ux_socket_connect("/socket");
|
|
|
|
TEST_ASSERT_TRUE(isGE(fd, 0));
|
|
@@ -152,6 +153,9 @@ test_recv_packet(void)
|
|
TEST_ASSERT_EQUAL(0,temp); //0 because nobody sent us anything (yet!)
|
|
|
|
(void)close(fd);
|
|
+#else
|
|
+ TEST_IGNORE_MESSAGE("test_recv_packet() needs work");
|
|
+#endif
|
|
return;
|
|
}
|
|
|
|
Index: contrib/ntp/util/invoke-ntp-keygen.texi
|
|
===================================================================
|
|
--- contrib/ntp/util/invoke-ntp-keygen.texi (revision 294707)
|
|
+++ contrib/ntp/util/invoke-ntp-keygen.texi (working copy)
|
|
@@ -6,7 +6,7 @@
|
|
#
|
|
# EDIT THIS FILE WITH CAUTION (invoke-ntp-keygen.texi)
|
|
#
|
|
-# It has been AutoGen-ed January 7, 2016 at 11:32:40 PM by AutoGen 5.18.5
|
|
+# It has been AutoGen-ed January 20, 2016 at 04:19:48 AM by AutoGen 5.18.5
|
|
# From the definitions ntp-keygen-opts.def
|
|
# and the template file agtexi-cmd.tpl
|
|
@end ignore
|
|
@@ -886,7 +886,7 @@ with a status code of 0.
|
|
|
|
@exampleindent 0
|
|
@example
|
|
-ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p5
|
|
+ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p6
|
|
Usage: ntp-keygen [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
|
|
Flg Arg Option-Name Description
|
|
-b Num imbits identity modulus bits
|
|
Index: contrib/ntp/util/ntp-keygen-opts.c
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen-opts.c (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen-opts.c (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:32:25 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:19:33 AM by AutoGen 5.18.5
|
|
* From the definitions ntp-keygen-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntp-keygen program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -72,8 +72,8 @@ extern FILE * option_usage_fp;
|
|
* static const strings for ntp-keygen options
|
|
*/
|
|
static char const ntp_keygen_opt_strs[2419] =
|
|
-/* 0 */ "ntp-keygen (ntp) 4.2.8p5\n"
|
|
- "Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
|
+/* 0 */ "ntp-keygen (ntp) 4.2.8p6\n"
|
|
+ "Copyright (C) 1992-2016 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"
|
|
"can be seen at:\n"
|
|
@@ -164,7 +164,7 @@ static char const ntp_keygen_opt_strs[2419] =
|
|
/* 2202 */ "no-load-opts\0"
|
|
/* 2215 */ "no\0"
|
|
/* 2218 */ "NTP_KEYGEN\0"
|
|
-/* 2229 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p5\n"
|
|
+/* 2229 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p6\n"
|
|
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
|
|
/* 2343 */ "$HOME\0"
|
|
/* 2349 */ ".\0"
|
|
@@ -171,7 +171,7 @@ static char const ntp_keygen_opt_strs[2419] =
|
|
/* 2351 */ ".ntprc\0"
|
|
/* 2358 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
|
/* 2392 */ "\n\0"
|
|
-/* 2394 */ "ntp-keygen (ntp) 4.2.8p5";
|
|
+/* 2394 */ "ntp-keygen (ntp) 4.2.8p6";
|
|
|
|
/**
|
|
* imbits option description:
|
|
@@ -1309,8 +1309,8 @@ static void bogus_function(void) {
|
|
translate option names.
|
|
*/
|
|
/* referenced via ntp_keygenOptions.pzCopyright */
|
|
- puts(_("ntp-keygen (ntp) 4.2.8p5\n\
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
|
+ puts(_("ntp-keygen (ntp) 4.2.8p6\n\
|
|
+Copyright (C) 1992-2016 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\
|
|
can be seen at:\n"));
|
|
@@ -1408,7 +1408,7 @@ 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.8p5\n\
|
|
+ puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p6\n\
|
|
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
|
|
|
|
/* referenced via ntp_keygenOptions.pzExplain */
|
|
@@ -1415,7 +1415,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>
|
|
puts(_("\n"));
|
|
|
|
/* referenced via ntp_keygenOptions.pzFullVersion */
|
|
- puts(_("ntp-keygen (ntp) 4.2.8p5"));
|
|
+ puts(_("ntp-keygen (ntp) 4.2.8p6"));
|
|
|
|
/* referenced via ntp_keygenOptions.pzFullUsage */
|
|
puts(_("<<<NOT-FOUND>>>"));
|
|
Index: contrib/ntp/util/ntp-keygen-opts.h
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen-opts.h (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen-opts.h (working copy)
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.h)
|
|
*
|
|
- * It has been AutoGen-ed January 7, 2016 at 11:32:24 PM by AutoGen 5.18.5
|
|
+ * It has been AutoGen-ed January 20, 2016 at 04:19:32 AM by AutoGen 5.18.5
|
|
* From the definitions ntp-keygen-opts.def
|
|
* and the template file options
|
|
*
|
|
@@ -18,7 +18,7 @@
|
|
* The ntp-keygen program is copyrighted and licensed
|
|
* under the following terms:
|
|
*
|
|
- * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
+ * Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.
|
|
* This is free software. It is licensed for use, modification and
|
|
* redistribution under the terms of the NTP License, copies of which
|
|
* can be seen at:
|
|
@@ -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.8p5"
|
|
+#define NTP_KEYGEN_VERSION "4.2.8p6"
|
|
/** Full ntp-keygen version text */
|
|
-#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p5"
|
|
+#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p6"
|
|
|
|
/**
|
|
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
|
Index: contrib/ntp/util/ntp-keygen.1ntp-keygenman
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen.1ntp-keygenman (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen.1ntp-keygenman (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp-keygen 1ntp-keygenman "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntp-keygen 1ntp-keygenman "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-LNaiiw/ag-XNaahw)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Dua4pY/ag-PuaWoY)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:36 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-keygen-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -1197,7 +1197,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
It can take quite a while to generate some cryptographic values,
|
|
Index: contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYGEN 1ntp-keygenmdoc User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:43 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:51 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-keygen-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -1053,7 +1053,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
It can take quite a while to generate some cryptographic values,
|
|
Index: contrib/ntp/util/ntp-keygen.html
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen.html (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen.html (working copy)
|
|
@@ -70,7 +70,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>This document applies to version 4.2.8p5 of <code>ntp-keygen</code>.
|
|
+ <p>This document applies to version 4.2.8p6 of <code>ntp-keygen</code>.
|
|
|
|
<div class="node">
|
|
<p><hr>
|
|
@@ -1085,7 +1085,7 @@ the usage text by passing it through a pager progr
|
|
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
|
with a status code of 0.
|
|
|
|
-<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p4
|
|
+<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p5
|
|
Usage: ntp-keygen [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
|
|
Flg Arg Option-Name Description
|
|
-b Num imbits identity modulus bits
|
|
Index: contrib/ntp/util/ntp-keygen.man.in
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen.man.in (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen.man.in (working copy)
|
|
@@ -10,11 +10,11 @@
|
|
.ds B-Font B
|
|
.ds I-Font I
|
|
.ds R-Font R
|
|
-.TH ntp-keygen @NTP_KEYGEN_MS@ "07 Jan 2016" "ntp (4.2.8p5)" "User Commands"
|
|
+.TH ntp-keygen @NTP_KEYGEN_MS@ "20 Jan 2016" "ntp (4.2.8p6)" "User Commands"
|
|
.\"
|
|
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-LNaiiw/ag-XNaahw)
|
|
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Dua4pY/ag-PuaWoY)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:36 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:44 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-keygen-opts.def
|
|
.\" and the template file agman-cmd.tpl
|
|
.SH NAME
|
|
@@ -1197,7 +1197,7 @@ it to autogen-users@lists.sourceforge.net. Thank
|
|
.SH "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.SH "COPYRIGHT"
|
|
-Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.SH BUGS
|
|
It can take quite a while to generate some cryptographic values,
|
|
Index: contrib/ntp/util/ntp-keygen.mdoc.in
|
|
===================================================================
|
|
--- contrib/ntp/util/ntp-keygen.mdoc.in (revision 294707)
|
|
+++ contrib/ntp/util/ntp-keygen.mdoc.in (working copy)
|
|
@@ -1,9 +1,9 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYGEN @NTP_KEYGEN_MS@ User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:43 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:51 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-keygen-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -1053,7 +1053,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
It can take quite a while to generate some cryptographic values,
|
|
Index: usr.sbin/ntp/config.h
|
|
===================================================================
|
|
--- usr.sbin/ntp/config.h (revision 294707)
|
|
+++ usr.sbin/ntp/config.h (working copy)
|
|
@@ -182,7 +182,7 @@
|
|
/* #undef C_ALLOCA */
|
|
|
|
/* Enable debugging code? */
|
|
-#define DEBUG 1
|
|
+/* #undef DEBUG */
|
|
|
|
/* Enable processing time debugging? */
|
|
/* #undef DEBUG_TIMING */
|
|
@@ -1434,7 +1434,7 @@
|
|
#define PACKAGE_NAME "ntp"
|
|
|
|
/* Define to the full name and version of this package. */
|
|
-#define PACKAGE_STRING "ntp 4.2.8p5"
|
|
+#define PACKAGE_STRING "ntp 4.2.8p6"
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#define PACKAGE_TARNAME "ntp"
|
|
@@ -1443,7 +1443,7 @@
|
|
#define PACKAGE_URL "http://www.ntp.org./"
|
|
|
|
/* Define to the version of this package. */
|
|
-#define PACKAGE_VERSION "4.2.8p5"
|
|
+#define PACKAGE_VERSION "4.2.8p6"
|
|
|
|
/* data dir */
|
|
#define PERLLIBDIR "/usr/local/share/ntp/lib"
|
|
@@ -1624,7 +1624,7 @@ typedef unsigned int uintptr_t;
|
|
/* #undef USE_UDP_SIGPOLL */
|
|
|
|
/* Version number of package */
|
|
-#define VERSION "4.2.8p5"
|
|
+#define VERSION "4.2.8p6"
|
|
|
|
/* vsnprintf expands "%m" to strerror(errno) */
|
|
/* #undef VSNPRINTF_PERCENT_M */
|
|
@@ -1801,5 +1801,5 @@ typedef union mpinfou {
|
|
/*
|
|
* FreeBSD specific: Explicitly specify date/time for reproducible build.
|
|
*/
|
|
-#define MKREPRO_DATE "Jan 8 2016"
|
|
-#define MKREPRO_TIME "12:37:48"
|
|
+#define MKREPRO_DATE "Jan 21 2016"
|
|
+#define MKREPRO_TIME "01:03:28"
|
|
Index: usr.sbin/ntp/doc/ntp-keygen.8
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntp-keygen.8 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntp-keygen.8 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYGEN 8 User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:43 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:51 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp-keygen-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -1055,7 +1055,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
It can take quite a while to generate some cryptographic values,
|
|
Index: usr.sbin/ntp/doc/ntp.conf.5
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntp.conf.5 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntp.conf.5 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_CONF 5 File Formats
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:30:57 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:07 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.conf.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -2395,8 +2395,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
.It Xo Ic disable
|
|
@@ -2403,8 +2404,9 @@ a 6\-bit code. The default value is 46, signifyin
|
|
.Oo
|
|
.Cm auth | Cm bclient |
|
|
.Cm calibrate | Cm kernel |
|
|
-.Cm mode7 | monitor |
|
|
-.Cm ntp | Cm stats
|
|
+.Cm mode7 | Cm monitor |
|
|
+.Cm ntp | Cm stats |
|
|
+.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
|
|
.Oc
|
|
.Xc
|
|
Provides a way to enable or disable various server options.
|
|
@@ -2478,6 +2480,67 @@ See the
|
|
section for further information.
|
|
The default for this flag is
|
|
.Ic disable .
|
|
+.It Cm unpeer_crypto_early
|
|
+By default, if
|
|
+.Xr ntpd 8
|
|
+receives an autokey packet that fails TEST9,
|
|
+a crypto failure,
|
|
+the association is immediately cleared.
|
|
+This is almost certainly a feature,
|
|
+but if, in spite of the current recommendation of not using autokey,
|
|
+you are
|
|
+.B still
|
|
+using autokey
|
|
+.B and
|
|
+you are seeing this sort of DoS attack
|
|
+disabling this flag will delay
|
|
+tearing down the association until the reachability counter
|
|
+becomes zero.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_crypto_nak_early
|
|
+By default, if
|
|
+.Xr ntpd 8
|
|
+receives a crypto\-NAK packet that
|
|
+passes the duplicate packet and origin timestamp checks
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery if a server key has changed,
|
|
+a properly forged and appropriately delivered crypto\-NAK packet
|
|
+can be used in a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
+.It Cm unpeer_digest_early
|
|
+By default, if
|
|
+.Xr ntpd 8
|
|
+receives what should be an authenticated packet
|
|
+that passes other packet sanity checks but
|
|
+contains an invalid digest
|
|
+the association is immediately cleared.
|
|
+While this is generally a feature
|
|
+as it allows for quick recovery,
|
|
+if this type of packet is carefully forged and sent
|
|
+during an appropriate window it can be used for a DoS attack.
|
|
+If you have active noticable problems with this type of DoS attack
|
|
+then you should consider
|
|
+disabling this option.
|
|
+You can check your
|
|
+.Cm peerstats
|
|
+file for evidence of any of these attacks.
|
|
+The
|
|
+default for this flag is
|
|
+.Ic enable .
|
|
.El
|
|
.It Ic includefile Ar includefile
|
|
This command allows additional configuration commands
|
|
@@ -2836,7 +2899,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The syntax checking is not picky; some combinations of
|
|
Index: usr.sbin/ntp/doc/ntp.keys.5
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntp.keys.5 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntp.keys.5 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTP_KEYS 5 File Formats
|
|
.Os SunOS 5.10
|
|
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:00 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:10 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntp.keys.def
|
|
.\" and the template file agmdoc-file.tpl
|
|
.Sh NAME
|
|
@@ -46,7 +46,7 @@ The key file uses the same comment conventions
|
|
as the configuration file.
|
|
Key entries use a fixed format of the form
|
|
.Pp
|
|
-.D1 Ar keyno type key
|
|
+.D1 Ar keyno type key opt_IP_list
|
|
.Pp
|
|
where
|
|
.Ar keyno
|
|
@@ -55,7 +55,15 @@ is a positive integer (between 1 and 65534),
|
|
is the message digest algorithm,
|
|
and
|
|
.Ar key
|
|
-is the key itself.
|
|
+is the key itself, and
|
|
+.Ar opt_IP_list
|
|
+is an optional comma\-separated list of IPs
|
|
+that are allowed to serve time.
|
|
+If
|
|
+.Ar opt_IP_list
|
|
+is empty,
|
|
+any properly\-authenticated server message will be
|
|
+accepted.
|
|
.Pp
|
|
The
|
|
.Ar key
|
|
@@ -149,7 +157,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: usr.sbin/ntp/doc/ntpd.8
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntpd.8 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntpd.8 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPD 8 User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpd-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -888,7 +888,7 @@ A snapshot of this documentation is available in H
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: usr.sbin/ntp/doc/ntpdc.8
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntpdc.8 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntpdc.8 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPDC 8 User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:31:29 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:18:39 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpdc-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -789,7 +789,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh AUTHORS
|
|
The formatting directives in this document came from FreeBSD.
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh BUGS
|
|
The
|
|
Index: usr.sbin/ntp/doc/ntpq.8
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/ntpq.8 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/ntpq.8 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt NTPQ 8 User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:32:02 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:19:12 AM by AutoGen 5.18.5
|
|
.\" From the definitions ntpq-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -957,7 +957,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.Sh "AUTHORS"
|
|
The University of Delaware and Network Time Foundation
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: usr.sbin/ntp/doc/sntp.8
|
|
===================================================================
|
|
--- usr.sbin/ntp/doc/sntp.8 (revision 294707)
|
|
+++ usr.sbin/ntp/doc/sntp.8 (working copy)
|
|
@@ -1,4 +1,4 @@
|
|
-.Dd January 7 2016
|
|
+.Dd January 20 2016
|
|
.Dt SNTP 8 User Commands
|
|
.Os
|
|
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
|
|
@@ -5,7 +5,7 @@
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
-.\" It has been AutoGen-ed January 7, 2016 at 11:23:27 PM by AutoGen 5.18.5
|
|
+.\" It has been AutoGen-ed January 20, 2016 at 04:06:45 AM by AutoGen 5.18.5
|
|
.\" From the definitions sntp-opts.def
|
|
.\" and the template file agmdoc-cmd.tpl
|
|
.Sh NAME
|
|
@@ -305,7 +305,7 @@ it to autogen\-users@lists.sourceforge.net. Thank
|
|
.An "Harlan Stenn"
|
|
.An "Dave Hart"
|
|
.Sh "COPYRIGHT"
|
|
-Copyright (C) 1992\-2015 The University of Delaware and Network Time Foundation all rights reserved.
|
|
+Copyright (C) 1992\-2016 The University of Delaware and Network Time Foundation all rights reserved.
|
|
This program is released under the terms of the NTP license, <http://ntp.org/license>.
|
|
.Sh "BUGS"
|
|
Please send bug reports to: http://bugs.ntp.org, bugs@ntp.org
|
|
Index: usr.sbin/ntp/libntp/Makefile
|
|
===================================================================
|
|
--- usr.sbin/ntp/libntp/Makefile (revision 294707)
|
|
+++ usr.sbin/ntp/libntp/Makefile (working copy)
|
|
@@ -16,6 +16,7 @@ NTP_SRCS= systime.c a_md5encrypt.c adjtime.c atoin
|
|
clocktypes.c decodenetnum.c dofptoa.c dolfptoa.c \
|
|
emalloc.c findconfig.c getopt.c hextoint.c \
|
|
hextolfp.c humandate.c icom.c iosignal.c \
|
|
+ is_ip_address.c \
|
|
lib_strbuf.c machines.c mktime.c modetoa.c \
|
|
mstolfp.c msyslog.c netof.c ntp_calendar.c \
|
|
ntp_crypto_rnd.c ntp_intres.c ntp_libopts.c \
|
|
Index: usr.sbin/ntp/scripts/mkver
|
|
===================================================================
|
|
--- usr.sbin/ntp/scripts/mkver (revision 294707)
|
|
+++ usr.sbin/ntp/scripts/mkver (working copy)
|
|
@@ -6,7 +6,7 @@ PROG=${1-UNKNOWN}
|
|
|
|
ConfStr="$PROG"
|
|
|
|
-ConfStr="$ConfStr 4.2.8p5"
|
|
+ConfStr="$ConfStr 4.2.8p6"
|
|
|
|
case "$CSET" in
|
|
'') ;;
|