diff --git a/Makefile.inc1 b/Makefile.inc1 index f21d779228af..213e1c68c9ba 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -1263,7 +1263,8 @@ _gperf= gnu/usr.bin/gperf .endif .if ${MK_GROFF} != "no" -_groff= gnu/usr.bin/groff +_groff= gnu/usr.bin/groff \ + usr.bin/soelim .endif .if ${MK_VT} != "no" diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 5a61f278809e..3897b2a89f3c 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -38,6 +38,32 @@ # xargs -n1 | sort | uniq -d; # done +# 20150504 +OLD_LIBS+=usr/lib32/private/libatf-c++.so.2 +OLD_LIBS+=usr/lib32/private/libbsdstat.so.1 +OLD_LIBS+=usr/lib32/private/libheimipcs.so.11 +OLD_LIBS+=usr/lib32/private/libsqlite3.so.0 +OLD_LIBS+=usr/lib32/private/libunbound.so.5 +OLD_LIBS+=usr/lib32/private/libatf-c.so.1 +OLD_LIBS+=usr/lib32/private/libheimipcc.so.11 +OLD_LIBS+=usr/lib32/private/libldns.so.5 +OLD_LIBS+=usr/lib32/private/libssh.so.5 +OLD_LIBS+=usr/lib32/private/libucl.so.1 +OLD_DIRS+=usr/lib32/private +OLD_LIBS+=usr/lib/private/libatf-c++.so.2 +OLD_LIBS+=usr/lib/private/libbsdstat.so.1 +OLD_LIBS+=usr/lib/private/libheimipcs.so.11 +OLD_LIBS+=usr/lib/private/libsqlite3.so.0 +OLD_LIBS+=usr/lib/private/libunbound.so.5 +OLD_LIBS+=usr/lib/private/libatf-c.so.1 +OLD_LIBS+=usr/lib/private/libheimipcc.so.11 +OLD_LIBS+=usr/lib/private/libldns.so.5 +OLD_LIBS+=usr/lib/private/libssh.so.5 +OLD_LIBS+=usr/lib/private/libucl.so.1 +OLD_DIRS+=usr/lib/private +# 20150501 +OLD_FILES+=usr/bin/soeliminate +OLD_FILES+=usr/share/man/man1/soeliminate.1.gz # 20150501: Remove the nvlist_.*[vf] functions manpages. OLD_FILES+=usr/share/man/man3/nvlist_addf_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_bool.3.gz diff --git a/UPDATING b/UPDATING index b7bf59b83458..12b554c1d373 100644 --- a/UPDATING +++ b/UPDATING @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150501: + soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. + If you need the GNU extension from groff soelim(1), install groff + from package: pkg install groff, or via ports: textproc/groff. + 20150423: chmod, chflags, chown and chgrp now affect symlinks in -R mode as defined in symlink(7); previously symlinks were silently ignored. diff --git a/bin/cp/cp.c b/bin/cp/cp.c index b83eeadc86ae..2ad5f4a43414 100644 --- a/bin/cp/cp.c +++ b/bin/cp/cp.c @@ -90,7 +90,6 @@ volatile sig_atomic_t info; enum op { FILE_TO_FILE, FILE_TO_DIR, DIR_TO_DNE }; static int copy(char *[], enum op, int); -static int mastercmp(const FTSENT * const *, const FTSENT * const *); static void siginfo(int __unused); int @@ -274,7 +273,7 @@ copy(char *argv[], enum op type, int fts_options) mask = ~umask(0777); umask(~mask); - if ((ftsp = fts_open(argv, fts_options, mastercmp)) == NULL) + if ((ftsp = fts_open(argv, fts_options, NULL)) == NULL) err(1, "fts_open"); for (badcp = rval = 0; (curr = fts_read(ftsp)) != NULL; badcp = 0) { switch (curr->fts_info) { @@ -488,32 +487,6 @@ copy(char *argv[], enum op type, int fts_options) return (rval); } -/* - * mastercmp -- - * The comparison function for the copy order. The order is to copy - * non-directory files before directory files. The reason for this - * is because files tend to be in the same cylinder group as their - * parent directory, whereas directories tend not to be. Copying the - * files first reduces seeking. - */ -static int -mastercmp(const FTSENT * const *a, const FTSENT * const *b) -{ - int a_info, b_info; - - a_info = (*a)->fts_info; - if (a_info == FTS_ERR || a_info == FTS_NS || a_info == FTS_DNR) - return (0); - b_info = (*b)->fts_info; - if (b_info == FTS_ERR || b_info == FTS_NS || b_info == FTS_DNR) - return (0); - if (a_info == FTS_D) - return (-1); - if (b_info == FTS_D) - return (1); - return (0); -} - static void siginfo(int sig __unused) { diff --git a/contrib/binutils/bfd/elf32-arm.c b/contrib/binutils/bfd/elf32-arm.c index 4d7b4866c9e6..ca40eac0497f 100644 --- a/contrib/binutils/bfd/elf32-arm.c +++ b/contrib/binutils/bfd/elf32-arm.c @@ -6794,15 +6794,31 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd) out_attr[Tag_ABI_VFP_args].i = in_attr[Tag_ABI_VFP_args].i; else if (in_attr[Tag_ABI_FP_number_model].i != 0) { + bfd *hasbfd, *hasnotbfd; + + if (in_attr[Tag_ABI_VFP_args].i) + { + hasbfd = ibfd; + hasnotbfd = obfd; + } + else + { + hasbfd = obfd; + hasnotbfd = ibfd; + } + _bfd_error_handler (_("ERROR: %B uses VFP register arguments, %B does not"), - ibfd, obfd); + hasbfd, hasnotbfd); return FALSE; } } for (i = 4; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++) { + if (out_attr[i].type == 0) + out_attr[i].type = in_attr[i].type; + /* Merge this attribute with existing attributes. */ switch (i) { @@ -9359,6 +9375,16 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT if (globals->byteswap_code) i_ehdrp->e_flags |= EF_ARM_BE8; } + + /* + * For EABI 5, we have to tag dynamic binaries and execs as either + * soft float or hard float. + */ + if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_VER5 && + (i_ehdrp->e_type == ET_DYN || i_ehdrp->e_type == ET_EXEC)) + i_ehdrp->e_flags |= + bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ABI_VFP_args) ? + EF_ARM_VFP_FLOAT : EF_ARM_SOFT_FLOAT; } static enum elf_reloc_type_class diff --git a/contrib/mdocml/config.h b/contrib/mdocml/config.h index b952c459e21d..e7d3c6313dfc 100644 --- a/contrib/mdocml/config.h +++ b/contrib/mdocml/config.h @@ -12,7 +12,7 @@ #define HAVE_FTS 1 #define HAVE_GETSUBOPT 1 #define HAVE_MMAP 1 -#define HAVE_REALLOCARRAY 0 +#define HAVE_REALLOCARRAY 1 #define HAVE_STRCASESTR 1 #define HAVE_STRLCAT 1 #define HAVE_STRLCPY 1 diff --git a/contrib/ntp/ChangeLog b/contrib/ntp/ChangeLog index 400cf79340f5..e75384c88fab 100644 --- a/contrib/ntp/ChangeLog +++ b/contrib/ntp/ChangeLog @@ -1,4 +1,80 @@ --- +(4.2.8p2) 2015/04/07 Released by Harlan Stenn +(4.2.8p2-RC3) 2015/04/03 Released by Harlan Stenn + +* [Bug 2763] Fix for different thresholds for forward and backward steps. +--- +(4.2.8p2-RC2) 2015/04/03 Released by Harlan Stenn + +* [Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c. +* [Bug 2769] New script: update-leap +* [Bug 2769] cleannup for update-leap +* [Bug 2788] New flag -G (force_step_once). +* [Bug 2794] Clean up kernel clock status reports. +* [Bug 2795] Cannot build without OpenSLL (on Win32). + Provided a Win32 specific wrapper around libevent/arc4random.c. + fixed some minor warnings. +* [Bug 2796] ntp-keygen crashes in 'getclock()' on Win32. +* [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys + on big-endian machines. +* [Bug 2798] sntp should decode and display the leap indicator. +* Simple cleanup to html/build.html +--- +(4.2.8p2-RC1) 2015/03/30 Released by Harlan Stenn + +* [Bug 2794] Don't let reports on normal kernel status changes + look like errors. +* [Bug 2788] New flag -G (force_step_once). +* [Bug 2592] Account for PPS sources which can provide an accurate + absolute time stamp, and status information. + Fixed indention and removed trailing whitespace. +* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. +* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument. +* [Bug 2346] "graceful termination" signals do not do peer cleanup. +* [Bug 2728] See if C99-style structure initialization works. +* [Bug 2747] Upgrade libevent to 2.1.5-beta. +* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. . +* [Bug 2751] jitter.h has stale copies of l_fp macros. +* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM. +* [Bug 2757] Quiet compiler warnings. +* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq. +* [Bug 2763] Allow different thresholds for forward and backward steps. +* [Bug 2766] ntp-keygen output files should not be world-readable. +* [Bug 2767] ntp-keygen -M should symlink to ntp.keys. +* [Bug 2771] nonvolatile value is documented in wrong units. +* [Bug 2773] Early leap announcement from Palisade/Thunderbolt +* [Bug 2774] Unreasonably verbose printout - leap pending/warning +* [Bug 2775] ntp-keygen.c fails to compile under Windows. +* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info. + Removed non-ASCII characters from some copyright comments. + Removed trailing whitespace. + Updated definitions for Meinberg clocks from current Meinberg header files. + Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Account for updated definitions pulled from Meinberg header files. + Updated comments on Meinberg GPS receivers which are not only called GPS16x. + Replaced some constant numbers by defines from ntp_calendar.h + Modified creation of parse-specific variables for Meinberg devices + in gps16x_message(). + Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates. + Modified mbg_tm_str() which now expexts an additional parameter controlling + if the time status shall be printed. +* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. +* [Sec 2781] Authentication doesn't protect symmetric associations against + DoS attacks. +* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE. +* [Bug 2789] Quiet compiler warnings from libevent. +* [Bug 2790] If ntpd sets the Windows MM timer highest resolution + pause briefly before measuring system clock precision to yield + correct results. +* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer. +* Use predefined function types for parse driver functions + used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast parse conversion results to appropriate types to avoid + compiler warnings. + Let ioctl() for Windows accept a (void *) to avoid compiler warnings + when called with pointers to different types. +--- (4.2.8p1) 2015/02/04 Released by Harlan Stenn * Update the NEWS file. @@ -14,7 +90,7 @@ (This should work for all versions of Windows >= W2K) * [Bug 2738] Missing buffer initialization in refclocK_parse.c::parsestate(). * [Bug 2739] Parse driver with PPS enabled occasionally evaluates - PPS timestamp with wrong sign. + PPS timestamp with wrong sign. Removed some German umlauts. * [Bug 2740] Removed some obsolete code from the parse driver. * [Bug 2741] Incorrect buffer check in refclocK_parse.c::parsestatus(). @@ -94,7 +170,7 @@ * [Bug 2678] nmea_control() now checks 'refclock_params()' result. (4.2.7p481) 2014/11/22 Released by Harlan Stenn * [Bug 2314] Only enable PPS if kernel consumer binding succeeds. -* [Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition. +* [Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition. * Rename pps_enable to hardpps_enable. (4.2.7p480) 2014/11/21 Released by Harlan Stenn * [Bug 2677] PATH_MAX isn't #define'd under Windows. diff --git a/contrib/ntp/CommitLog b/contrib/ntp/CommitLog index 38097ac6ccfe..0e87846dbfbd 100644 --- a/contrib/ntp/CommitLog +++ b/contrib/ntp/CommitLog @@ -1,3 +1,2569 @@ +ChangeSet@1.3320, 2015-04-07 04:28:16-04:00, stenn@deacon.udel.edu + NTP_4_2_8P2 + TAG: NTP_4_2_8P2 + + ChangeLog@1.1633 +1 -0 + NTP_4_2_8P2 + + ntpd/invoke-ntp.conf.texi@1.182 +1 -1 + NTP_4_2_8P2 + + ntpd/invoke-ntp.keys.texi@1.178 +1 -1 + NTP_4_2_8P2 + + ntpd/invoke-ntpd.texi@1.495 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.conf.5man@1.216 +3 -3 + NTP_4_2_8P2 + + ntpd/ntp.conf.5mdoc@1.216 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.conf.html@1.173 +1 -1 + NTP_4_2_8P2 + + ntpd/ntp.conf.man.in@1.216 +3 -3 + NTP_4_2_8P2 + + ntpd/ntp.conf.mdoc.in@1.216 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.keys.5man@1.212 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.keys.5mdoc@1.212 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.keys.html@1.174 +1 -1 + NTP_4_2_8P2 + + ntpd/ntp.keys.man.in@1.212 +2 -2 + NTP_4_2_8P2 + + ntpd/ntp.keys.mdoc.in@1.212 +2 -2 + NTP_4_2_8P2 + + ntpd/ntpd-opts.c@1.517 +245 -245 + NTP_4_2_8P2 + + ntpd/ntpd-opts.h@1.516 +3 -3 + NTP_4_2_8P2 + + ntpd/ntpd.1ntpdman@1.324 +3 -3 + NTP_4_2_8P2 + + ntpd/ntpd.1ntpdmdoc@1.324 +2 -2 + NTP_4_2_8P2 + + ntpd/ntpd.html@1.168 +2 -2 + NTP_4_2_8P2 + + ntpd/ntpd.man.in@1.324 +3 -3 + NTP_4_2_8P2 + + ntpd/ntpd.mdoc.in@1.324 +2 -2 + NTP_4_2_8P2 + + ntpdc/invoke-ntpdc.texi@1.492 +2 -2 + NTP_4_2_8P2 + + ntpdc/ntpdc-opts.c@1.510 +107 -107 + NTP_4_2_8P2 + + ntpdc/ntpdc-opts.h@1.509 +3 -3 + NTP_4_2_8P2 + + ntpdc/ntpdc.1ntpdcman@1.323 +3 -3 + NTP_4_2_8P2 + + ntpdc/ntpdc.1ntpdcmdoc@1.323 +2 -2 + NTP_4_2_8P2 + + ntpdc/ntpdc.html@1.336 +2 -2 + NTP_4_2_8P2 + + ntpdc/ntpdc.man.in@1.323 +3 -3 + NTP_4_2_8P2 + + ntpdc/ntpdc.mdoc.in@1.323 +2 -2 + NTP_4_2_8P2 + + ntpq/invoke-ntpq.texi@1.498 +2 -2 + NTP_4_2_8P2 + + ntpq/ntpq-opts.c@1.515 +106 -106 + NTP_4_2_8P2 + + ntpq/ntpq-opts.h@1.513 +3 -3 + NTP_4_2_8P2 + + ntpq/ntpq.1ntpqman@1.326 +3 -3 + NTP_4_2_8P2 + + ntpq/ntpq.1ntpqmdoc@1.326 +2 -2 + NTP_4_2_8P2 + + ntpq/ntpq.html@1.165 +2 -2 + NTP_4_2_8P2 + + ntpq/ntpq.man.in@1.326 +3 -3 + NTP_4_2_8P2 + + ntpq/ntpq.mdoc.in@1.326 +2 -2 + NTP_4_2_8P2 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.494 +2 -2 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd-opts.c@1.512 +68 -68 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd-opts.h@1.511 +3 -3 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.323 +3 -3 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.323 +2 -2 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd.html@1.163 +1 -1 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd.man.in@1.323 +3 -3 + NTP_4_2_8P2 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.323 +2 -2 + NTP_4_2_8P2 + + packageinfo.sh@1.509 +2 -2 + NTP_4_2_8P2 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.84 +3 -3 + NTP_4_2_8P2 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.85 +2 -2 + NTP_4_2_8P2 + + scripts/calc_tickadj/calc_tickadj.html@1.86 +1 -1 + NTP_4_2_8P2 + + scripts/calc_tickadj/calc_tickadj.man.in@1.83 +3 -3 + NTP_4_2_8P2 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.85 +2 -2 + NTP_4_2_8P2 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.88 +1 -1 + NTP_4_2_8P2 + + scripts/invoke-plot_summary.texi@1.105 +2 -2 + NTP_4_2_8P2 + + scripts/invoke-summary.texi@1.105 +2 -2 + NTP_4_2_8P2 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.315 +2 -2 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait-opts@1.51 +2 -2 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.312 +3 -3 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.313 +2 -2 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait.html@1.332 +2 -2 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait.man.in@1.312 +3 -3 + NTP_4_2_8P2 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.313 +2 -2 + NTP_4_2_8P2 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.103 +2 -2 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep-opts@1.53 +2 -2 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.91 +3 -3 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.91 +2 -2 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep.html@1.104 +2 -2 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep.man.in@1.91 +3 -3 + NTP_4_2_8P2 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.92 +2 -2 + NTP_4_2_8P2 + + scripts/ntptrace/invoke-ntptrace.texi@1.104 +2 -2 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace-opts@1.53 +2 -2 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace.1ntptraceman@1.91 +3 -3 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.92 +2 -2 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace.html@1.105 +2 -2 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace.man.in@1.91 +3 -3 + NTP_4_2_8P2 + + scripts/ntptrace/ntptrace.mdoc.in@1.93 +2 -2 + NTP_4_2_8P2 + + scripts/plot_summary-opts@1.53 +2 -2 + NTP_4_2_8P2 + + scripts/plot_summary.1plot_summaryman@1.103 +3 -3 + NTP_4_2_8P2 + + scripts/plot_summary.1plot_summarymdoc@1.103 +2 -2 + NTP_4_2_8P2 + + scripts/plot_summary.html@1.106 +2 -2 + NTP_4_2_8P2 + + scripts/plot_summary.man.in@1.103 +3 -3 + NTP_4_2_8P2 + + scripts/plot_summary.mdoc.in@1.103 +2 -2 + NTP_4_2_8P2 + + scripts/summary-opts@1.53 +2 -2 + NTP_4_2_8P2 + + scripts/summary.1summaryman@1.103 +3 -3 + NTP_4_2_8P2 + + scripts/summary.1summarymdoc@1.103 +2 -2 + NTP_4_2_8P2 + + scripts/summary.html@1.106 +2 -2 + NTP_4_2_8P2 + + scripts/summary.man.in@1.103 +3 -3 + NTP_4_2_8P2 + + scripts/summary.mdoc.in@1.103 +2 -2 + NTP_4_2_8P2 + + scripts/update-leap/invoke-update-leap.texi@1.4 +1 -1 + NTP_4_2_8P2 + + scripts/update-leap/update-leap-opts@1.4 +2 -2 + NTP_4_2_8P2 + + scripts/update-leap/update-leap.1update-leapman@1.4 +3 -3 + NTP_4_2_8P2 + + scripts/update-leap/update-leap.1update-leapmdoc@1.4 +2 -2 + NTP_4_2_8P2 + + scripts/update-leap/update-leap.html@1.4 +1 -1 + NTP_4_2_8P2 + + scripts/update-leap/update-leap.man.in@1.4 +3 -3 + NTP_4_2_8P2 + + scripts/update-leap/update-leap.mdoc.in@1.4 +2 -2 + NTP_4_2_8P2 + + sntp/invoke-sntp.texi@1.492 +2 -2 + NTP_4_2_8P2 + + sntp/sntp-opts.c@1.511 +159 -159 + NTP_4_2_8P2 + + sntp/sntp-opts.h@1.509 +3 -3 + NTP_4_2_8P2 + + sntp/sntp.1sntpman@1.327 +3 -3 + NTP_4_2_8P2 + + sntp/sntp.1sntpmdoc@1.327 +2 -2 + NTP_4_2_8P2 + + sntp/sntp.html@1.507 +2 -2 + NTP_4_2_8P2 + + sntp/sntp.man.in@1.327 +3 -3 + NTP_4_2_8P2 + + sntp/sntp.mdoc.in@1.327 +2 -2 + NTP_4_2_8P2 + + util/invoke-ntp-keygen.texi@1.495 +2 -2 + NTP_4_2_8P2 + + util/ntp-keygen-opts.c@1.513 +173 -173 + NTP_4_2_8P2 + + util/ntp-keygen-opts.h@1.511 +3 -3 + NTP_4_2_8P2 + + util/ntp-keygen.1ntp-keygenman@1.323 +3 -3 + NTP_4_2_8P2 + + util/ntp-keygen.1ntp-keygenmdoc@1.323 +2 -2 + NTP_4_2_8P2 + + util/ntp-keygen.html@1.169 +2 -2 + NTP_4_2_8P2 + + util/ntp-keygen.man.in@1.323 +3 -3 + NTP_4_2_8P2 + + util/ntp-keygen.mdoc.in@1.323 +2 -2 + NTP_4_2_8P2 + +ChangeSet@1.3319, 2015-04-07 04:05:46-04:00, stenn@deacon.udel.edu + ntp-4.2.8p2 + + packageinfo.sh@1.508 +2 -2 + ntp-4.2.8p2 + +ChangeSet@1.3318, 2015-04-07 07:57:32+00:00, stenn@psp-fb1.ntp.org + NEWS update + + NEWS@1.135 +4 -2 + NEWS update + +ChangeSet@1.3314.1.3, 2015-04-03 03:56:38-04:00, stenn@deacon.udel.edu + NTP_4_2_8P2_RC3 + TAG: NTP_4_2_8P2_RC3 + + ChangeLog@1.1629.1.3 +1 -0 + NTP_4_2_8P2_RC3 + + ntpd/invoke-ntp.conf.texi@1.181 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/invoke-ntp.keys.texi@1.177 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/invoke-ntpd.texi@1.494 +2 -2 + NTP_4_2_8P2_RC3 + + ntpd/ntp.conf.5man@1.215 +3 -3 + NTP_4_2_8P2_RC3 + + ntpd/ntp.conf.5mdoc@1.215 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntp.conf.html@1.172 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntp.conf.man.in@1.215 +3 -3 + NTP_4_2_8P2_RC3 + + ntpd/ntp.conf.mdoc.in@1.215 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntp.keys.5man@1.211 +2 -2 + NTP_4_2_8P2_RC3 + + ntpd/ntp.keys.5mdoc@1.211 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntp.keys.html@1.173 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntp.keys.man.in@1.211 +2 -2 + NTP_4_2_8P2_RC3 + + ntpd/ntp.keys.mdoc.in@1.211 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntpd-opts.c@1.516 +7 -7 + NTP_4_2_8P2_RC3 + + ntpd/ntpd-opts.h@1.515 +3 -3 + NTP_4_2_8P2_RC3 + + ntpd/ntpd.1ntpdman@1.323 +3 -3 + NTP_4_2_8P2_RC3 + + ntpd/ntpd.1ntpdmdoc@1.323 +1 -1 + NTP_4_2_8P2_RC3 + + ntpd/ntpd.html@1.167 +2 -2 + NTP_4_2_8P2_RC3 + + ntpd/ntpd.man.in@1.323 +3 -3 + NTP_4_2_8P2_RC3 + + ntpd/ntpd.mdoc.in@1.323 +1 -1 + NTP_4_2_8P2_RC3 + + ntpdc/invoke-ntpdc.texi@1.491 +2 -2 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc-opts.c@1.509 +7 -7 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc-opts.h@1.508 +3 -3 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc.1ntpdcman@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc.1ntpdcmdoc@1.322 +1 -1 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc.html@1.335 +2 -2 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc.man.in@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + ntpdc/ntpdc.mdoc.in@1.322 +1 -1 + NTP_4_2_8P2_RC3 + + ntpq/invoke-ntpq.texi@1.497 +2 -2 + NTP_4_2_8P2_RC3 + + ntpq/ntpq-opts.c@1.514 +7 -7 + NTP_4_2_8P2_RC3 + + ntpq/ntpq-opts.h@1.512 +3 -3 + NTP_4_2_8P2_RC3 + + ntpq/ntpq.1ntpqman@1.325 +3 -3 + NTP_4_2_8P2_RC3 + + ntpq/ntpq.1ntpqmdoc@1.325 +1 -1 + NTP_4_2_8P2_RC3 + + ntpq/ntpq.html@1.164 +2 -2 + NTP_4_2_8P2_RC3 + + ntpq/ntpq.man.in@1.325 +3 -3 + NTP_4_2_8P2_RC3 + + ntpq/ntpq.mdoc.in@1.325 +1 -1 + NTP_4_2_8P2_RC3 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.493 +2 -2 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd-opts.c@1.511 +7 -7 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd-opts.h@1.510 +3 -3 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.322 +1 -1 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd.html@1.162 +1 -1 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd.man.in@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.322 +1 -1 + NTP_4_2_8P2_RC3 + + packageinfo.sh@1.507 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.83 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.84 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/calc_tickadj.html@1.85 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/calc_tickadj.man.in@1.82 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.84 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.87 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/invoke-plot_summary.texi@1.104 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/invoke-summary.texi@1.104 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.314 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait-opts@1.50 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.311 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.312 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait.html@1.331 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait.man.in@1.311 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.312 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.102 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep-opts@1.52 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.90 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.90 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep.html@1.103 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep.man.in@1.90 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.91 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/invoke-ntptrace.texi@1.103 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace-opts@1.52 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace.1ntptraceman@1.90 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.91 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace.html@1.104 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace.man.in@1.90 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/ntptrace/ntptrace.mdoc.in@1.92 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/plot_summary-opts@1.52 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/plot_summary.1plot_summaryman@1.102 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/plot_summary.1plot_summarymdoc@1.102 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/plot_summary.html@1.105 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/plot_summary.man.in@1.102 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/plot_summary.mdoc.in@1.102 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/summary-opts@1.52 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/summary.1summaryman@1.102 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/summary.1summarymdoc@1.102 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/summary.html@1.105 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/summary.man.in@1.102 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/summary.mdoc.in@1.102 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/update-leap/invoke-update-leap.texi@1.3 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap-opts@1.3 +2 -2 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap.1update-leapman@1.3 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap.1update-leapmdoc@1.3 +1 -1 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap.html@1.3 +6 -5 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap.man.in@1.3 +3 -3 + NTP_4_2_8P2_RC3 + + scripts/update-leap/update-leap.mdoc.in@1.3 +1 -1 + NTP_4_2_8P2_RC3 + + sntp/invoke-sntp.texi@1.491 +2 -2 + NTP_4_2_8P2_RC3 + + sntp/sntp-opts.c@1.510 +7 -7 + NTP_4_2_8P2_RC3 + + sntp/sntp-opts.h@1.508 +3 -3 + NTP_4_2_8P2_RC3 + + sntp/sntp.1sntpman@1.326 +3 -3 + NTP_4_2_8P2_RC3 + + sntp/sntp.1sntpmdoc@1.326 +1 -1 + NTP_4_2_8P2_RC3 + + sntp/sntp.html@1.506 +2 -2 + NTP_4_2_8P2_RC3 + + sntp/sntp.man.in@1.326 +3 -3 + NTP_4_2_8P2_RC3 + + sntp/sntp.mdoc.in@1.326 +1 -1 + NTP_4_2_8P2_RC3 + + util/invoke-ntp-keygen.texi@1.494 +2 -2 + NTP_4_2_8P2_RC3 + + util/ntp-keygen-opts.c@1.512 +7 -7 + NTP_4_2_8P2_RC3 + + util/ntp-keygen-opts.h@1.510 +3 -3 + NTP_4_2_8P2_RC3 + + util/ntp-keygen.1ntp-keygenman@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + util/ntp-keygen.1ntp-keygenmdoc@1.322 +1 -1 + NTP_4_2_8P2_RC3 + + util/ntp-keygen.html@1.168 +2 -2 + NTP_4_2_8P2_RC3 + + util/ntp-keygen.man.in@1.322 +3 -3 + NTP_4_2_8P2_RC3 + + util/ntp-keygen.mdoc.in@1.322 +1 -1 + NTP_4_2_8P2_RC3 + +ChangeSet@1.3314.1.2, 2015-04-03 03:35:54-04:00, stenn@deacon.udel.edu + [Bug 2763] Fix for different thresholds for forward and backward steps + + ChangeLog@1.1629.1.2 +3 -0 + [Bug 2763] Fix for different thresholds for forward and backward steps + + ntpd/ntp_loopfilter.c@1.183 +2 -2 + [Bug 2763] Fix for different thresholds for forward and backward steps + +ChangeSet@1.3314.1.1, 2015-04-03 01:16:34-04:00, stenn@deacon.udel.edu + NTP_4_2_8P2_RC2 + TAG: NTP_4_2_8P2_RC2 + + ChangeLog@1.1629.1.1 +1 -0 + NTP_4_2_8P2_RC2 + + ntpd/invoke-ntp.conf.texi@1.180 +1 -1 + NTP_4_2_8P2_RC2 + + ntpd/invoke-ntp.keys.texi@1.176 +1 -1 + NTP_4_2_8P2_RC2 + + ntpd/invoke-ntpd.texi@1.493 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.conf.5man@1.214 +3 -3 + NTP_4_2_8P2_RC2 + + ntpd/ntp.conf.5mdoc@1.214 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.conf.html@1.171 +1 -1 + NTP_4_2_8P2_RC2 + + ntpd/ntp.conf.man.in@1.214 +3 -3 + NTP_4_2_8P2_RC2 + + ntpd/ntp.conf.mdoc.in@1.214 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.keys.5man@1.210 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.keys.5mdoc@1.210 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.keys.html@1.172 +1 -1 + NTP_4_2_8P2_RC2 + + ntpd/ntp.keys.man.in@1.210 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntp.keys.mdoc.in@1.210 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntpd-opts.c@1.515 +7 -7 + NTP_4_2_8P2_RC2 + + ntpd/ntpd-opts.h@1.514 +3 -3 + NTP_4_2_8P2_RC2 + + ntpd/ntpd.1ntpdman@1.322 +3 -3 + NTP_4_2_8P2_RC2 + + ntpd/ntpd.1ntpdmdoc@1.322 +2 -2 + NTP_4_2_8P2_RC2 + + ntpd/ntpd.html@1.166 +50 -26 + NTP_4_2_8P2_RC2 + + ntpd/ntpd.man.in@1.322 +3 -3 + NTP_4_2_8P2_RC2 + + ntpd/ntpd.mdoc.in@1.322 +2 -2 + NTP_4_2_8P2_RC2 + + ntpdc/invoke-ntpdc.texi@1.490 +2 -2 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc-opts.c@1.508 +7 -7 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc-opts.h@1.507 +3 -3 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc.1ntpdcman@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc.1ntpdcmdoc@1.321 +2 -2 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc.html@1.334 +2 -2 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc.man.in@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + ntpdc/ntpdc.mdoc.in@1.321 +2 -2 + NTP_4_2_8P2_RC2 + + ntpq/invoke-ntpq.texi@1.496 +2 -2 + NTP_4_2_8P2_RC2 + + ntpq/ntpq-opts.c@1.513 +7 -7 + NTP_4_2_8P2_RC2 + + ntpq/ntpq-opts.h@1.511 +3 -3 + NTP_4_2_8P2_RC2 + + ntpq/ntpq.1ntpqman@1.324 +3 -3 + NTP_4_2_8P2_RC2 + + ntpq/ntpq.1ntpqmdoc@1.324 +2 -2 + NTP_4_2_8P2_RC2 + + ntpq/ntpq.html@1.163 +2 -2 + NTP_4_2_8P2_RC2 + + ntpq/ntpq.man.in@1.324 +3 -3 + NTP_4_2_8P2_RC2 + + ntpq/ntpq.mdoc.in@1.324 +2 -2 + NTP_4_2_8P2_RC2 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.492 +2 -2 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd-opts.c@1.510 +7 -7 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd-opts.h@1.509 +3 -3 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.321 +2 -2 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd.html@1.161 +1 -1 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd.man.in@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.321 +2 -2 + NTP_4_2_8P2_RC2 + + packageinfo.sh@1.506 +1 -1 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.82 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.83 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/calc_tickadj.html@1.84 +1 -1 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/calc_tickadj.man.in@1.81 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.83 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.86 +1 -1 + NTP_4_2_8P2_RC2 + + scripts/invoke-plot_summary.texi@1.103 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/invoke-summary.texi@1.103 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.313 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait-opts@1.49 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.310 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.311 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait.html@1.330 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait.man.in@1.310 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.311 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.101 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep-opts@1.51 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.89 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.89 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep.html@1.102 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep.man.in@1.89 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.90 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/invoke-ntptrace.texi@1.102 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace-opts@1.51 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace.1ntptraceman@1.89 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.90 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace.html@1.103 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace.man.in@1.89 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/ntptrace/ntptrace.mdoc.in@1.91 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/plot_summary-opts@1.51 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/plot_summary.1plot_summaryman@1.101 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/plot_summary.1plot_summarymdoc@1.101 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/plot_summary.html@1.104 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/plot_summary.man.in@1.101 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/plot_summary.mdoc.in@1.101 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/summary-opts@1.51 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/summary.1summaryman@1.101 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/summary.1summarymdoc@1.101 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/summary.html@1.104 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/summary.man.in@1.101 +3 -3 + NTP_4_2_8P2_RC2 + + scripts/summary.mdoc.in@1.101 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/update-leap/invoke-update-leap.texi@1.2 +6 -5 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap-opts@1.2 +2 -2 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap.1update-leapman@1.2 +7 -6 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap.1update-leapmdoc@1.2 +6 -5 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap.html@1.2 +48 -72 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap.man.in@1.2 +7 -6 + NTP_4_2_8P2_RC2 + + scripts/update-leap/update-leap.mdoc.in@1.2 +6 -5 + NTP_4_2_8P2_RC2 + + sntp/invoke-sntp.texi@1.490 +2 -2 + NTP_4_2_8P2_RC2 + + sntp/sntp-opts.c@1.509 +7 -7 + NTP_4_2_8P2_RC2 + + sntp/sntp-opts.h@1.507 +3 -3 + NTP_4_2_8P2_RC2 + + sntp/sntp.1sntpman@1.325 +3 -3 + NTP_4_2_8P2_RC2 + + sntp/sntp.1sntpmdoc@1.325 +2 -2 + NTP_4_2_8P2_RC2 + + sntp/sntp.html@1.505 +111 -135 + NTP_4_2_8P2_RC2 + + sntp/sntp.man.in@1.325 +3 -3 + NTP_4_2_8P2_RC2 + + sntp/sntp.mdoc.in@1.325 +2 -2 + NTP_4_2_8P2_RC2 + + util/invoke-ntp-keygen.texi@1.493 +2 -2 + NTP_4_2_8P2_RC2 + + util/ntp-keygen-opts.c@1.511 +7 -7 + NTP_4_2_8P2_RC2 + + util/ntp-keygen-opts.h@1.509 +3 -3 + NTP_4_2_8P2_RC2 + + util/ntp-keygen.1ntp-keygenman@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + util/ntp-keygen.1ntp-keygenmdoc@1.321 +2 -2 + NTP_4_2_8P2_RC2 + + util/ntp-keygen.html@1.167 +2 -2 + NTP_4_2_8P2_RC2 + + util/ntp-keygen.man.in@1.321 +3 -3 + NTP_4_2_8P2_RC2 + + util/ntp-keygen.mdoc.in@1.321 +2 -2 + NTP_4_2_8P2_RC2 + +ChangeSet@1.3314, 2015-04-03 02:36:18+00:00, stenn@psp-fb1.ntp.org + merge cleanup + + NEWS@1.133 +6 -5 + merge cleanup + +ChangeSet@1.3313, 2015-04-03 02:31:18+00:00, stenn@psp-fb1.ntp.org + merge cleanup + + ChangeLog@1.1629 +3 -3 + merge cleanup + +ChangeSet@1.3308.2.11, 2015-04-02 21:42:37+00:00, stenn@psp-deb1.ntp.org + [Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c + + ChangeLog@1.1625.2.9 +1 -0 + [Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c + +ChangeSet@1.3308.2.10, 2015-04-02 20:17:55+00:00, stenn@psp-deb1.ntp.org + merge cleanup + + ChangeLog@1.1625.2.8 +1 -3 + merge cleanup + +ChangeSet@1.3308.2.9, 2015-04-02 21:41:22+02:00, jnperlin@nemesis.localnet + [Bug 2795] Cannot build without OpenSLL (on Win32). + fixed minor warning + + ChangeLog@1.1625.2.7 +3 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32). + fixed minor warning + + include/ntp_md5.h@1.10 +1 -1 + [Bug 2795] Cannot build without OpenSLL (on Win32). + OpenSSL declares EVP_md5() as function without arguments; surrogate should do the same. + +ChangeSet@1.3308.6.2, 2015-04-02 07:45:04+00:00, stenn@psp-deb1.ntp.org + cleanup + + ChangeLog@1.1625.6.3 +0 -2 + cleanup + + ChangeLog@1.1625.6.2 +6 -0 + + ntpd/invoke-ntpd.texi@1.492 +20 -3 + [Bug 2788] New -G flag (force step once) cleanup. + + ntpd/ntp_loopfilter.c@1.182 +17 -6 + [Bug 2794] Clean up kernel clock status reports. + Trailing whitespace cleanup. + + ntpd/ntpd-opts.c@1.514 +249 -249 + Autogenerated file. + + ntpd/ntpd-opts.h@1.513 +3 -3 + Autogenerated file. + + ntpd/ntpd.1ntpdman@1.321 +19 -5 + Autogenerated file. + + ntpd/ntpd.1ntpdmdoc@1.321 +17 -4 + Autogenerated file. + + ntpd/ntpd.man.in@1.321 +19 -5 + Autogenerated file. + + ntpd/ntpd.mdoc.in@1.321 +17 -4 + Autogenerated file. + + ntpd/ntpdbase-opts.def@1.29 +9 -6 + [Bug 2788] New flag -G (force_step_once) - documentation cleanup. + +ChangeSet@1.3308.2.7, 2015-04-02 07:34:40+00:00, stenn@psp-deb1.ntp.org + Simple cleanup to html/build.html + + ChangeLog@1.1625.2.5 +1 -0 + Simple cleanup to html/build.html + + html/build.html@1.28 +2 -2 + Simple cleanup to html/build.html + +ChangeSet@1.3308.2.6, 2015-04-02 03:15:42+00:00, stenn@psp-fb1.ntp.org + typos + + ChangeLog@1.1625.2.4 +4 -4 + typos + +ChangeSet@1.3308.5.2, 2015-04-01 11:08:14+00:00, stenn@psp-deb1.ntp.org + [Bug 2798] sntp should decode and display the leap indicator + + html/sntp.html@1.12 +3 -3 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/invoke-sntp.texi@1.489 +4 -3 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp-opts.c@1.508 +1 -1 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp-opts.def@1.47 +2 -1 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp-opts.h@1.506 +1 -1 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp.1sntpman@1.324 +5 -4 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp.1sntpmdoc@1.324 +4 -3 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp.html@1.504 +136 -111 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp.man.in@1.324 +5 -4 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/sntp.mdoc.in@1.324 +4 -3 + [Bug 2798] sntp should decode and display the leap indicator + +ChangeSet@1.3308.5.1, 2015-04-01 10:44:24+00:00, stenn@psp-fb1.ntp.org + [Bug 2798] sntp should decode and display the leap indicator + + ChangeLog@1.1625.5.1 +3 -0 + [Bug 2798] sntp should decode and display the leap indicator + + sntp/main.c@1.95 +21 -1 + [Bug 2798] sntp should decode and display the leap indicator + +ChangeSet@1.3308.4.1, 2015-03-30 20:14:46+02:00, jnperlin@hydra.(none) + [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines + + ChangeLog@1.1625.4.1 +3 -0 + [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines + + util/ntp-keygen.c@1.104 +4 -4 + [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines + +ChangeSet@1.3308.3.1, 2015-03-30 19:39:17+02:00, jnperlin@nemesis.localnet + [Bug 2796] ntp-keygen crashes in 'getclock()' on Win32 + + ChangeLog@1.1625.3.1 +2 -0 + [Bug 2796] ntp-keygen crashes in 'getclock()' on Win32 + + ports/winnt/libntp/getclock.c@1.5 +2 -0 + [Bug 2796] ntp-keygen crashes in 'getclock()' on Win32 + make sure 'init_win_precise_time()' gets called + +ChangeSet@1.3308.2.4, 2015-03-30 19:10:12+02:00, jnperlin@nemesis.localnet + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ChangeLog@1.1625.2.2 +3 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ports/winnt/libntp/arc4wrap.c@1.1 +84 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ports/winnt/libntp/arc4wrap.c@1.0 +0 -0 + + ports/winnt/vs2005/libntp.vcproj@1.24 +4 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ports/winnt/vs2008/libntp/libntp.vcproj@1.52 +6 -2 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ports/winnt/vs2013/libntp/libntp.vcxproj@1.6 +1 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + + ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.4 +6 -0 + [Bug 2795] Cannot build without OpenSLL (on Win32) + Provided a Win32 specific wrapper around libevent/arc4random.c + +ChangeSet@1.3305.3.8, 2015-03-30 15:55:43+02:00, martin@pc-martin.(none) + [Bug 2794] Don't let reports on normal kernel status changes look like errors. + + ChangeLog@1.1622.3.8 +2 -0 + [Bug 2794] Don't let reports on normal kernel status changes look like errors. + + ntpd/ntp_loopfilter.c@1.181 +30 -19 + [Bug 2794] Don't let reports on normal kernel status changes look like errors. + +ChangeSet@1.3305.3.7, 2015-03-30 11:23:48+02:00, martin@pc-martin.(none) + [Bug 2788] New flag -G (force_step_once) + + ChangeLog@1.1622.3.7 +1 -0 + [Bug 2788] New flag -G (force_step_once) + + include/ntpd.h@1.185.1.1 +4 -3 + [Bug 2788] Support new flag -G (force_step_once) + Removed trailing whitespace. + + ntpd/cmd_args.c@1.62 +6 -3 + [Bug 2788] New flag -G (force_step_once) + Removed trailing whitespace. + + ntpd/ntp_loopfilter.c@1.180 +21 -15 + [Bug 2788] New flag -G (force_step_once) + Removed trailing whitespace. + + ntpd/ntpd-opts.c@1.511.1.1 +255 -225 + [Bug 2788] New flag -G (force_step_once) + + ntpd/ntpd-opts.h@1.510.1.1 +36 -29 + [Bug 2788] New flag -G (force_step_once) + + ntpd/ntpdbase-opts.def@1.28 +17 -2 + [Bug 2788] New flag -G (force_step_once) + Removed trailing whitespace. + +ChangeSet@1.3308.1.3, 2015-03-30 09:11:33+00:00, stenn@psp-fb1.ntp.org + Start the RC cycle for ntp-4.2.8p2 + + NEWS@1.130.1.2 +82 -1 + Start the RC cycle for ntp-4.2.8p2 + +ChangeSet@1.3308.2.3, 2015-03-30 04:48:27-04:00, stenn@deacon.udel.edu + NTP_4_2_8P2_RC1 + TAG: NTP_4_2_8P2_RC1 + + ChangeLog@1.1625.2.1 +1 -0 + NTP_4_2_8P2_RC1 + + ntpd/invoke-ntp.conf.texi@1.179 +1 -1 + NTP_4_2_8P2_RC1 + + ntpd/invoke-ntp.keys.texi@1.175 +1 -1 + NTP_4_2_8P2_RC1 + + ntpd/invoke-ntpd.texi@1.491 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.conf.5man@1.213 +3 -3 + NTP_4_2_8P2_RC1 + + ntpd/ntp.conf.5mdoc@1.213 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.conf.html@1.170 +13 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.conf.man.in@1.213 +3 -3 + NTP_4_2_8P2_RC1 + + ntpd/ntp.conf.mdoc.in@1.213 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.keys.5man@1.209 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.keys.5mdoc@1.209 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.keys.html@1.171 +1 -1 + NTP_4_2_8P2_RC1 + + ntpd/ntp.keys.man.in@1.209 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntp.keys.mdoc.in@1.209 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntpd-opts.c@1.512 +239 -239 + NTP_4_2_8P2_RC1 + + ntpd/ntpd-opts.h@1.511 +3 -3 + NTP_4_2_8P2_RC1 + + ntpd/ntpd.1ntpdman@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpd/ntpd.1ntpdmdoc@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntpd.html@1.165 +2 -2 + NTP_4_2_8P2_RC1 + + ntpd/ntpd.man.in@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpd/ntpd.mdoc.in@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + ntpdc/invoke-ntpdc.texi@1.489 +2 -2 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc-opts.c@1.507 +107 -107 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc-opts.h@1.506 +3 -3 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc.1ntpdcman@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc.1ntpdcmdoc@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc.html@1.333 +2 -2 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc.man.in@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpdc/ntpdc.mdoc.in@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + ntpq/invoke-ntpq.texi@1.495 +2 -2 + NTP_4_2_8P2_RC1 + + ntpq/ntpq-opts.c@1.512 +106 -106 + NTP_4_2_8P2_RC1 + + ntpq/ntpq-opts.h@1.510 +3 -3 + NTP_4_2_8P2_RC1 + + ntpq/ntpq.1ntpqman@1.323 +3 -3 + NTP_4_2_8P2_RC1 + + ntpq/ntpq.1ntpqmdoc@1.323 +2 -2 + NTP_4_2_8P2_RC1 + + ntpq/ntpq.html@1.162 +2 -2 + NTP_4_2_8P2_RC1 + + ntpq/ntpq.man.in@1.323 +3 -3 + NTP_4_2_8P2_RC1 + + ntpq/ntpq.mdoc.in@1.323 +2 -2 + NTP_4_2_8P2_RC1 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.491 +2 -2 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd-opts.c@1.509 +68 -68 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd-opts.h@1.508 +3 -3 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd.html@1.160 +1 -1 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd.man.in@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + packageinfo.sh@1.505 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.81 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.82 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/calc_tickadj.html@1.83 +1 -1 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/calc_tickadj.man.in@1.80 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.82 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.85 +1 -1 + NTP_4_2_8P2_RC1 + + scripts/invoke-plot_summary.texi@1.102 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/invoke-summary.texi@1.102 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.312 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait-opts@1.48 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.309 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.310 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait.html@1.329 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait.man.in@1.309 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.310 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.100 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep-opts@1.50 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.88 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.88 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep.html@1.101 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep.man.in@1.88 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.89 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/invoke-ntptrace.texi@1.101 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace-opts@1.50 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace.1ntptraceman@1.88 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.89 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace.html@1.102 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace.man.in@1.88 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/ntptrace/ntptrace.mdoc.in@1.90 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/plot_summary-opts@1.50 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/plot_summary.1plot_summaryman@1.100 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/plot_summary.1plot_summarymdoc@1.100 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/plot_summary.html@1.103 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/plot_summary.man.in@1.100 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/plot_summary.mdoc.in@1.100 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/summary-opts@1.50 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/summary.1summaryman@1.100 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/summary.1summarymdoc@1.100 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/summary.html@1.103 +2 -2 + NTP_4_2_8P2_RC1 + + scripts/summary.man.in@1.100 +3 -3 + NTP_4_2_8P2_RC1 + + scripts/summary.mdoc.in@1.100 +2 -2 + NTP_4_2_8P2_RC1 + + sntp/invoke-sntp.texi@1.488 +2 -2 + NTP_4_2_8P2_RC1 + + sntp/sntp-opts.c@1.507 +159 -159 + NTP_4_2_8P2_RC1 + + sntp/sntp-opts.h@1.505 +3 -3 + NTP_4_2_8P2_RC1 + + sntp/sntp.1sntpman@1.323 +3 -3 + NTP_4_2_8P2_RC1 + + sntp/sntp.1sntpmdoc@1.323 +2 -2 + NTP_4_2_8P2_RC1 + + sntp/sntp.html@1.503 +2 -2 + NTP_4_2_8P2_RC1 + + sntp/sntp.man.in@1.323 +3 -3 + NTP_4_2_8P2_RC1 + + sntp/sntp.mdoc.in@1.323 +2 -2 + NTP_4_2_8P2_RC1 + + util/invoke-ntp-keygen.texi@1.492 +2 -2 + NTP_4_2_8P2_RC1 + + util/ntp-keygen-opts.c@1.510 +173 -173 + NTP_4_2_8P2_RC1 + + util/ntp-keygen-opts.h@1.508 +3 -3 + NTP_4_2_8P2_RC1 + + util/ntp-keygen.1ntp-keygenman@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + util/ntp-keygen.1ntp-keygenmdoc@1.320 +2 -2 + NTP_4_2_8P2_RC1 + + util/ntp-keygen.html@1.166 +2 -2 + NTP_4_2_8P2_RC1 + + util/ntp-keygen.man.in@1.320 +3 -3 + NTP_4_2_8P2_RC1 + + util/ntp-keygen.mdoc.in@1.320 +2 -2 + NTP_4_2_8P2_RC1 + +ChangeSet@1.3308.2.2, 2015-03-30 04:25:58-04:00, stenn@deacon.udel.edu + Begin 4.2.8p2-RC1 + + packageinfo.sh@1.504 +1 -1 + Begin 4.2.8p2-RC1 + +ChangeSet@1.3308.2.1, 2015-03-30 08:18:35+00:00, stenn@psp-fb1.ntp.org + Start the RC cycle for ntp-4.2.8p2 + + NEWS@1.130.1.1 +49 -0 + Start the RC cycle for ntp-4.2.8p2 + +ChangeSet@1.3311, 2015-03-29 05:05:41+00:00, stenn@psp-fb1.ntp.org + [Bug 2769] cleannup for update-leap + + ChangeLog@1.1627 +1 -0 + [Bug 2769] cleannup for update-leap + +ChangeSet@1.3310, 2015-03-29 04:10:31+00:00, stenn@psp-fb1.ntp.org + [Bug 2769] cleannup for update-leap + + NEWS@1.131 +8 -0 + [Bug 2769] cleannup for update-leap + + scripts/update-leap/Makefile.am@1.3 +1 -0 + [Bug 2769] cleannup for update-leap + + scripts/update-leap/update-leap-opts.def@1.2 +4 -3 + [Bug 2769] cleannup for update-leap + +ChangeSet@1.3308, 2015-03-29 01:49:10+00:00, stenn@psp-deb1.ntp.org + [Bug 2346] "graceful termination" signals do not do peer cleanup + + ChangeLog@1.1625 +1 -0 + [Bug 2346] "graceful termination" signals do not do peer cleanup + + include/ntpd.h@1.186 +1 -0 + [Bug 2346] "graceful termination" signals do not do peer cleanup + + ntpd/ntp_peer.c@1.154 +20 -0 + [Bug 2346] "graceful termination" signals do not do peer cleanup + + ntpd/ntpd.c@1.159 +1 -0 + [Bug 2346] "graceful termination" signals do not do peer cleanup + +ChangeSet@1.3305.3.6, 2015-03-25 17:32:25+01:00, martin@pc-martin.(none) + [Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information. + + ChangeLog@1.1622.3.6 +2 -0 + [Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information. + + include/ntp.h@1.213 +2 -1 + New flag FLAG_TSTAMP_PPS. + + ntpd/ntp_proto.c@1.353.1.2 +2 -1 + [Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information. + + ntpd/refclock_parse.c@1.78 +2 -2 + [Bug 2592] Parse driver can return absolute timestamp with PPS, and status information. + +ChangeSet@1.3305.3.5, 2015-03-25 17:24:59+01:00, martin@pc-martin.(none) + Fixed indention and removed trailing whitespace. + + ChangeLog@1.1622.3.5 +1 -0 + Fixed indention and removed trailing whitespace. + + include/ntp.h@1.212 +4 -4 + Fixed indention. + + include/parse_conf.h@1.7 +6 -6 + Fixed indention. + + ntpd/ntp_proto.c@1.353.1.1 +27 -27 + Removed trailing whitespace. + + ntpd/refclock_parse.c@1.77 +16 -16 + Fixed indention. + +ChangeSet@1.3305.3.4, 2015-03-22 07:59:12+00:00, stenn@psp-fb1.ntp.org + merge cleanup + + ChangeLog@1.1622.3.4 +0 -1 + merge cleanup + +ChangeSet@1.3305.5.3, 2015-03-22 07:24:07+00:00, stenn@psp-fb1.ntp.org + Bug 2791 -> Bug 2789 + + ChangeLog@1.1622.5.3 +1 -1 + Bug 2791 -> Bug 2789 + +ChangeSet@1.3305.5.2, 2015-03-22 06:59:06+00:00, stenn@psp-fb1.ntp.org + Merge cleanup + + ChangeLog@1.1622.5.2 +22 -22 + Merge cleanup + +ChangeSet@1.3305.4.2, 2015-03-22 03:48:52+00:00, stenn@psp-fb1.ntp.org + [Bug 2769] New script: update-leap + + .point-changed-filelist@1.26 +7 -0 + [Bug 2769] New script: update-leap + + scripts/update-leap/Makefile.am@1.2 +2 -1 + [Bug 2769] New script: update-leap + +ChangeSet@1.3305.4.1, 2015-03-22 03:01:33+00:00, stenn@psp-fb1.ntp.org + [Bug 2769] New script: update-leap + + BitKeeper/etc/ignore@1.86 +1 -0 + added Makefile.in + + ChangeLog@1.1622.4.1 +1 -0 + [Bug 2769] New script: update-leap + + configure.ac@1.585 +8 -7 + [Bug 2769] New script: update-leap + + scripts/Makefile.am@1.40 +1 -0 + [Bug 2769] New script: update-leap + + scripts/update-leap/Makefile.am@1.1 +95 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/Makefile.am + + scripts/update-leap/Makefile.am@1.0 +0 -0 + + scripts/update-leap/invoke-update-leap.menu@1.1 +1 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/invoke-update-leap.menu + + scripts/update-leap/invoke-update-leap.menu@1.0 +0 -0 + + scripts/update-leap/invoke-update-leap.texi@1.1 +169 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/invoke-update-leap.texi + + scripts/update-leap/invoke-update-leap.texi@1.0 +0 -0 + + scripts/update-leap/update-leap@1.1 +434 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap + + scripts/update-leap/update-leap@1.0 +0 -0 + + scripts/update-leap/update-leap-opts@1.1 +72 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap-opts + + scripts/update-leap/update-leap-opts@1.0 +0 -0 + + scripts/update-leap/update-leap-opts.def@1.1 +162 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap-opts.def + + scripts/update-leap/update-leap-opts.def@1.0 +0 -0 + + scripts/update-leap/update-leap.1update-leapman@1.1 +168 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.1update-leapman + + scripts/update-leap/update-leap.1update-leapman@1.0 +0 -0 + + scripts/update-leap/update-leap.1update-leapmdoc@1.1 +133 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.1update-leapmdoc + + scripts/update-leap/update-leap.1update-leapmdoc@1.0 +0 -0 + + scripts/update-leap/update-leap.html@1.1 +297 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.html + + scripts/update-leap/update-leap.html@1.0 +0 -0 + + scripts/update-leap/update-leap.man.in@1.1 +168 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.man.in + + scripts/update-leap/update-leap.man.in@1.0 +0 -0 + + scripts/update-leap/update-leap.mdoc.in@1.1 +133 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.mdoc.in + + scripts/update-leap/update-leap.mdoc.in@1.0 +0 -0 + + scripts/update-leap/update-leap.texi@1.1 +43 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.texi + + scripts/update-leap/update-leap.texi@1.0 +0 -0 + + sntp/loc/darwin@1.3 +1 -0 + [Bug 2769] New script: update-leap + + sntp/loc/debian@1.4 +1 -0 + [Bug 2769] New script: update-leap + + sntp/loc/freebsd@1.6 +1 -0 + [Bug 2769] New script: update-leap + + sntp/loc/legacy@1.7 +1 -0 + [Bug 2769] New script: update-leap + + sntp/loc/netbsd@1.4 +1 -0 + [Bug 2769] New script: update-leap + + sntp/loc/solaris@1.7 +1 -0 + [Bug 2769] New script: update-leap + + sntp/m4/ntp_locinfo.m4@1.18 +6 -0 + [Bug 2769] New script: update-leap + +ChangeSet@1.3305.3.1, 2015-03-20 13:03:38+01:00, burnicki@pc-martin4. + [Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause + briefly before measuring system clock precision to yield correct results. + + ChangeLog@1.1622.3.1 +3 -1 + [Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause + briefly before measuring system clock precision to yield correct results. + + ports/winnt/ntpd/nt_clockstuff.c@1.65 +4 -0 + [Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause + briefly before measuring system clock precision to yield correct results. + +ChangeSet@1.3305.2.6, 2015-03-20 11:47:15+01:00, martin@pc-martin.(none) + [Bug 2791] Quiet compiler warnings from libevent. + + ChangeLog@1.1622.2.6 +1 -0 + [Bug 2791] Quiet compiler warnings from libevent. + + sntp/libevent/evthread-internal.h@1.8 +2 -2 + [Bug 2791] Fixed function prototypes to quiet compiler warnings. + +ChangeSet@1.3305.2.5, 2015-03-20 11:36:15+01:00, martin@pc-martin.(none) + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + ChangeLog@1.1622.2.5 +4 -3 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + include/parse.h@1.12 +3 -3 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + libparse/clk_meinberg.c@1.14 +7 -4 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + libparse/clk_rawdcf.c@1.20 +3 -2 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + libparse/clk_schmid.c@1.13 +3 -3 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + libparse/parse.c@1.19 +1 -1 + Quiet compiler warning. + + ntpd/refclock_parse.c@1.76 +1 -1 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + + parseutil/dcfd.c@1.28 +26 -25 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + Removed trailing whitespace. + + parseutil/testdcf.c@1.10 +11 -10 + [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. + Removed trailing whitespace and fixed indention. + +ChangeSet@1.3305.2.4, 2015-03-19 17:00:30+01:00, martin@pc-martin.(none) + Added a comment from Juergen Perlinger in ntp_date.c to make the code clearer. + + ChangeLog@1.1622.2.4 +1 -0 + Added a comment from Juergen Perlinger in ntp_date.c to make the code clearer. + + libntp/ntp_calendar.c@1.15 +40 -34 + Added a comment from Juergen Perlinger to make the code clearer. + Removed trailing whitespace. + +ChangeSet@1.3305.2.3, 2015-03-19 16:52:05+01:00, martin@pc-martin.(none) + Use predefined function types for parse driver functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast parse conversion results to appropriate types to avoid compiler warnings. + Let ioctl() for Windows accept a (void *) to avoid compiler warnings when called with pointers to different types. + + ChangeLog@1.1622.2.3 +7 -0 + Use predefined function types for parse driver functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast parse conversion results to appropriate types to avoid compiler warnings. + Let ioctl() for Windows accept a (void *) to avoid compiler warnings when called with pointers to different types. + + include/binio.h@1.6 +10 -0 + Added macros casting the result of the conversion function to a dedicated with to avoid compiler warnings. + + include/mbg_gps166.h@1.13 +1 -1 + Use specific data type with mbg_csum() to avoid compiler warnings. + + include/parse.h@1.11 +15 -11 + Introduced some dedicated function types simplifying use with function pointers. + Let parse input functions expect a char instead of an unsigned int since chars are used anyway. + This helps to avoid compiler warnings. + + libparse/clk_computime.c@1.12 +10 -10 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_dcf7000.c@1.12 +8 -7 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_hopf6021.c@1.11 +21 -20 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_meinberg.c@1.13 +20 -19 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast conversion results to appropriate types to avoid compiler warnings. + + libparse/clk_rawdcf.c@1.19 +8 -7 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast to appropriate types to avoid compiler warnings. + + libparse/clk_rcc8000.c@1.11 +17 -16 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_schmid.c@1.12 +9 -9 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_sel240x.c@1.4 +5 -11 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast to appropriate types to avoid compiler warnings. + + libparse/clk_trimtaip.c@1.12 +8 -7 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_trimtsip.c@1.13 +18 -18 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast conversion results to appropriate types to avoid compiler warnings. + Use commonly defined constants to handle GPS week number wraparounds. + + libparse/clk_varitext.c@1.11 +6 -5 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/clk_wharton.c@1.10 +7 -4 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + + libparse/data_mbg.c@1.15 +36 -36 + Cast conversion results to appropriate types to avoid compiler warnings. + + libparse/gpstolfp.c@1.12 +1 -1 + Type cast to avoid compiler warning. + + libparse/parse.c@1.18 +14 -14 + Use predefined function types for functions used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast conversion results to appropriate types to avoid compiler warnings. + + ntpd/refclock_parse.c@1.75 +49 -48 + Cast conversion results to appropriate types to avoid compiler warnings. + + ports/winnt/include/termios.h@1.17 +1 -1 + Changed the prototype for ioctl() to accept a (void *) to avoid compiler warnings when called with pointers to different types. + + ports/winnt/libntp/termios.c@1.30 +2 -1 + Let ioctl() accept a (void *) to avoid compiler warnings when called with pointers to different types. + +ChangeSet@1.3305.1.19, 2015-03-19 07:54:24+00:00, stenn@psp-deb1.ntp.org + ntp_proto.c, ChangeLog: + [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. + [Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks. + + ChangeLog@1.1622.1.16 +3 -0 + [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. + [Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks. + + ntpd/ntp_proto.c@1.354 +16 -14 + [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. + [Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks. + +ChangeSet@1.3305.1.18, 2015-03-16 09:17:42+00:00, stenn@psp-fb1.ntp.org + [Bug 2763] Allow different thresholds for forward and backward steps + + ChangeLog@1.1622.1.15 +1 -0 + [Bug 2763] Allow different thresholds for forward and backward steps + + include/ntp.h@1.211 +13 -11 + [Bug 2763] Allow different thresholds for forward and backward steps + + include/ntpd.h@1.185 +2 -1 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/invoke-ntp.conf.texi@1.178 +15 -2 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/keyword-gen-utd@1.22 +1 -1 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/keyword-gen.c@1.27 +2 -0 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp.conf.5man@1.212 +19 -4 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp.conf.5mdoc@1.212 +18 -3 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp.conf.def@1.15 +16 -1 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp.conf.man.in@1.212 +19 -4 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp.conf.mdoc.in@1.212 +18 -3 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_config.c@1.323 +8 -0 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_keyword.h@1.24 +492 -483 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_loopfilter.c@1.179 +27 -5 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_parser.c@1.90 +803 -797 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_parser.h@1.56 +81 -77 + [Bug 2763] Allow different thresholds for forward and backward steps + + ntpd/ntp_parser.y@1.83 +4 -0 + [Bug 2763] Allow different thresholds for forward and backward steps + +ChangeSet@1.3305.2.2, 2015-03-13 10:28:32+01:00, martin@pc-martin.(none) + Removed non-ASCII characters from some copyright comments. + Removed trailing whitespace. + Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Account for updated definitions pulled from Meinberg header files. + Updated comments on Meinberg GPS receivers which are not only called GPS16x. + Replaced some constant numbers by defines from ntp_calendar.h + Modified creation of parse-specific variables for Meinberg devices in gps16x_message(). + Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates. + Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed. + + ChangeLog@1.1622.2.2 +12 -0 + Removed non-ASCII characters from some copyright comments. + Removed trailing whitespace. + Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Account for updated definitions pulled from Meinberg header files. + Updated comments on Meinberg GPS receivers which are not only called GPS16x. + Replaced some constant numbers by defines from ntp_calendar.h + Modified creation of parse-specific variables for Meinberg devices in gps16x_message(). + Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates. + Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed. + + include/mbg_gps166.h@1.12 +841 -408 + Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Updated prototype for mbg_tm_str() which now takes one more parameter. + + include/ntp_calendar.h@1.17 +4 -2 + Added definitions for DAYSPERWEEK and SECSPERWEEK. + + include/parse.h@1.10 +14 -7 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + Moved a few definitions from gpstolfp.c here so they can also be used in other c modules. + + include/parse_conf.h@1.6 +1 -1 + Removed non-ASCII characters from copyright comment. + + kernel/sys/parsestreams.h@1.8 +1 -1 + Removed non-ASCII characters from copyright comment. + + libparse/clk_computime.c@1.11 +23 -23 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_dcf7000.c@1.11 +7 -7 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_meinberg.c@1.12 +71 -70 + Updated comments on Meinberg GPS receivers which are not only called GPS16x. + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_rawdcf.c@1.18 +12 -12 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_schmid.c@1.11 +7 -7 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_trimtaip.c@1.11 +5 -5 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_trimtsip.c@1.12 +13 -13 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_varitext.c@1.10 +38 -38 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/clk_wharton.c@1.9 +1 -1 + Fixed a typo. + + libparse/data_mbg.c@1.14 +39 -36 + Account for updated definitions pulled from Meinberg header files. + Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Replaced some constant numbers by defines from ntp_calendar.h. + Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed. + + libparse/gpstolfp.c@1.11 +4 -6 + Moved some commonly used constants to parse.h. + Removed duplicate defines and use those in ntp_calendar.h. + Also replaced some constant numbers by defines from ntp_calendar.h. + + libparse/parse.c@1.17 +46 -46 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/parse_conf.c@1.11 +2 -2 + Removed non-ASCII characters from copyright comment. + + libparse/parsesolaris.c@1.12 +55 -55 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/parsestreams.c@1.8 +63 -63 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + + libparse/trim_info.c@1.6 +1 -1 + Removed non-ASCII characters from copyright comment. + + ntpd/refclock_parse.c@1.74 +326 -295 + Removed non-ASCII characters from copyright comment. + Removed trailing whitespace. + Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates. + Modified creation of parse-specific variables for Meinberg devices in gps16x_message(). + + parseutil/dcfd.c@1.27 +2 -2 + Removed non-ASCII characters from copyright comment. + + parseutil/testdcf.c@1.9 +2 -2 + Removed non-ASCII characters from copyright comment. + +ChangeSet@1.3305.1.17, 2015-03-10 11:21:46+00:00, stenn@psp-fb1.ntp.org + merge cleanup + + ChangeLog@1.1622.1.14 +1 -3 + merge cleanup + + ntpd/ntp_loopfilter.c@1.178 +5 -2 + merge cleanup + +ChangeSet@1.3305.2.1, 2015-03-10 10:48:25+01:00, martin@pc-martin.(none) + Fixed loops and decoding of Meinberg GPS satellite info. + + ChangeLog@1.1622.2.1 +1 -0 + Fixed loops and decoding of Meinberg GPS satellite info. + + libparse/data_mbg.c@1.13 +3 -3 + Fixed loops handling Meinberg GPS satellite info. + + ntpd/refclock_parse.c@1.73 +44 -68 + Fixed loops and decoding of Meinberg GPS satellite info. + +ChangeSet@1.3305.1.16, 2015-03-09 06:36:19-04:00, murray@pogo.udel.edu + ChangeLog, ntp_loopfilter.c: + Fix for bug 2774 + + ChangeLog@1.1622.1.13 +3 -0 + Fix for bug 2774 + + ntpd/ntp_loopfilter.c@1.177 +4 -1 + Fix for bug 2774 + +ChangeSet@1.3305.1.15, 2015-03-05 10:17:02+00:00, stenn@psp-fb1.ntp.org + [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE + + ChangeLog@1.1622.1.12 +1 -0 + [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE + + configure.ac@1.584 +24 -22 + [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE + + sntp/libopts/m4/libopts.m4@1.33 +12 -12 + [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE + + sntp/m4/ntp_libntp.m4@1.29 +4 -4 + [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE + +ChangeSet@1.3305.1.14, 2015-03-04 11:16:31+00:00, stenn@psp-fb1.ntp.org + [Bug 2775] ntp-keygen.c fails to compile under Windows + + ChangeLog@1.1622.1.11 +1 -0 + [Bug 2775] ntp-keygen.c fails to compile under Windows. + + util/ntp-keygen.c@1.103 +7 -1 + [Bug 2775] ntp-keygen.c fails to compile under Windows + +ChangeSet@1.3305.1.13, 2015-03-01 21:46:56-05:00, stenn@pogo.udel.edu + cleanup + + ChangeLog@1.1622.1.10 +1 -2 + cleanup + +ChangeSet@1.3305.1.12, 2015-03-01 02:50:18-05:00, murray@pogo.udel.edu + refclock_palisade.h, ChangeLog, refclock_palisade.c: + Fix bug 2773 - early leap from Palisade/Thunderbolt + + ChangeLog@1.1622.1.9 +2 -0 + Fix bug 2773 - early leap from Palisade/Thunderbolt + + ntpd/refclock_palisade.c@1.42 +8 -2 + Fix bug 2773 - early leap from Palisade/Thunderbolt + + ntpd/refclock_palisade.h@1.15 +1 -0 + Fix bug 2773 - early leap from Palisade/Thunderbolt + +ChangeSet@1.3305.1.11, 2015-02-28 12:12:13+00:00, stenn@psp-fb1.ntp.org + [Bug 2751] jitter.h has stale copies of l_fp macros + + util/Makefile.am@1.78 +1 -1 + [Bug 2751] jitter.h has stale copies of l_fp macros + +ChangeSet@1.3305.1.10, 2015-02-28 12:04:02+00:00, stenn@psp-fb1.ntp.org + [Bug 2771] nonvolatile value is documented in wrong units + + ChangeLog@1.1622.1.8 +1 -0 + [Bug 2771] nonvolatile value is documented in wrong units + + html/miscopt.html@1.80 +2 -2 + [Bug 2771] nonvolatile value is documented in wrong units + +ChangeSet@1.3305.1.9, 2015-02-28 11:34:24+00:00, stenn@psp-fb1.ntp.org + [Bug 2767] ntp-keygen -M should symlink to ntp.keys + + ChangeLog@1.1622.1.7 +1 -0 + [Bug 2767] ntp-keygen -M should symlink to ntp.keys + + util/ntp-keygen.c@1.102 +6 -2 + [Bug 2767] ntp-keygen -M should symlink to ntp.keys + +ChangeSet@1.3305.1.8, 2015-02-28 11:28:04+00:00, stenn@psp-fb1.ntp.org + [Bug 2766] ntp-keygen output files should not be world-readable + + ChangeLog@1.1622.1.6 +1 -0 + [Bug 2766] ntp-keygen output files should not be world-readable + + util/ntp-keygen.c@1.101 +5 -1 + [Bug 2766] ntp-keygen output files should not be world-readable + +ChangeSet@1.3305.1.7, 2015-02-28 11:18:57+00:00, stenn@psp-fb1.ntp.org + [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq + + ChangeLog@1.1622.1.5 +1 -0 + [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq + + ntpd/ntp_control.c@1.196 +56 -51 + [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq + +ChangeSet@1.3305.1.6, 2015-02-28 09:47:20+00:00, stenn@psp-fb1.ntp.org + [Bug 2757] Quiet compiler warnings. + + lib/isc/inet_ntop.c@1.14 +1 -0 + [Bug 2757] Quiet compiler warnings. + + lib/isc/log.c@1.8 +12 -12 + [Bug 2757] Quiet compiler warnings. + + ntpd/ntp_leapsec.c@1.16 +6 -6 + [Bug 2757] Quiet compiler warnings. + + parseutil/dcfd.c@1.26 +7 -0 + [Bug 2757] Quiet compiler warnings. + + sntp/libevent/include/event2/event.h@1.11 +4 -0 + [Bug 2757] Quiet compiler warnings. + +ChangeSet@1.3305.1.5, 2015-02-28 09:11:24+00:00, stenn@psp-fb1.ntp.org + [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM + + ChangeLog@1.1622.1.4 +1 -0 + [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM + + configure.ac@1.583 +0 -2 + [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM + + include/ntp_fp.h@1.32 +4 -1 + [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM + +ChangeSet@1.3305.1.4, 2015-02-25 07:58:47+00:00, stenn@psp-fb1.ntp.org + [Bug 2751] jitter.h has stale copies of l_fp macros + + BitKeeper/deleted/fd/jitter.h~11d7c056cb18e28@1.5 +0 -0 + Delete: util/jitter.h + + ChangeLog@1.1622.1.3 +1 -0 + [Bug 2751] jitter.h has stale copies of l_fp macros + + util/jitter.c@1.11 +1 -2 + [Bug 2751] jitter.h has stale copies of l_fp macros + +ChangeSet@1.3305.1.3, 2015-02-21 05:56:16-05:00, stenn@deacon.udel.edu + Update triggers for bk-6 + + BitKeeper/triggers/post-incoming.license-warn@1.9 +3 -0 + Update triggers for bk-6 + + BitKeeper/triggers/pre-resolve.license-chk@1.10 +3 -0 + Update triggers for bk-6 + + BitKeeper/triggers/send@1.16 +2 -2 + Update triggers for bk-6 + +ChangeSet@1.3305.1.2, 2015-02-21 10:35:38+00:00, stenn@psp-fb1.ntp.org + [Bug 2757] Quiet compiler warnings + + ChangeLog@1.1622.1.2 +1 -0 + [Bug 2757] Quiet compiler warnings + + lib/isc/result.c@1.4 +6 -6 + [Bug 2757] Quiet compiler warnings + + lib/isc/unix/file.c@1.7 +3 -3 + [Bug 2757] Quiet compiler warnings + + lib/isc/unix/ifiter_ioctl.c@1.32.1.1 +4 -0 + [Bug 2757] Quiet compiler warnings + + lib/isc/unix/net.c@1.19 +2 -1 + [Bug 2757] Quiet compiler warnings + + libntp/work_fork.c@1.13 +1 -1 + [Bug 2757] Quiet compiler warnings + + ntpd/ntp_crypto.c@1.174 +1 -1 + [Bug 2757] Quiet compiler warnings + +ChangeSet@1.3305.1.1, 2015-02-21 09:51:32+00:00, stenn@psp-deb1.ntp.org + [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. + + ChangeLog@1.1622.1.1 +1 -0 + [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. + + scripts/lib/NTP/Util.pm@1.3 +15 -4 + [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. + +ChangeSet@1.3306, 2015-02-21 09:28:08+00:00, stenn@psp-fb1.ntp.org + [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument + + ChangeLog@1.1623 +1 -0 + [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument + + lib/isc/unix/ifiter_getifaddrs.c@1.14 +3 -0 + [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument + + lib/isc/unix/ifiter_ioctl.c@1.33 +12 -2 + [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument + +ChangeSet@1.3302.1.1, 2015-02-21 07:15:54+00:00, stenn@psp-deb1.ntp.org + [Bug 2728] See if C99-style structure initialization works + + ChangeLog@1.1620.1.1 +3 -0 + [Bug 2728] See if C99-style structure initialization works + + configure.ac@1.582 +1 -0 + [Bug 2728] See if C99-style structure initialization works + + ntpq/ntpq-subs.c@1.104 +1 -1 + [Bug 2728] See if C99-style structure initialization works + + ports/winnt/include/config.h@1.111 +1 -1 + [Bug 2728] See if C99-style structure initialization works + + sntp/m4/ax_c99_struct_init.m4@1.1 +59 -0 + BitKeeper file /home/stenn/ntp-stable-2728/sntp/m4/ax_c99_struct_init.m4 + + sntp/m4/ax_c99_struct_init.m4@1.0 +0 -0 + +ChangeSet@1.3304, 2015-02-11 09:08:51+00:00, stenn@psp-fb1.ntp.org + [Bug 2747] Upgrade libevent to 2.1.5-beta + + ChangeLog@1.1621 +3 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + +ChangeSet@1.3303, 2015-02-11 09:05:59+00:00, stenn@psp-fb1.ntp.org + [Bug 2747] Upgrade libevent to 2.1.5-beta + + BitKeeper/deleted/5b/README~3a69bb76c676898e@1.7 +0 -0 + Delete: sntp/libevent/README + + sntp/libevent/ChangeLog@1.9 +726 -60 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/Makefile.am@1.13 +3 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/README.md@1.1 +318 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/README.md + + sntp/libevent/README.md@1.0 +0 -0 + + sntp/libevent/WIN32-Code/getopt.c@1.1 +149 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt.c + + sntp/libevent/WIN32-Code/getopt.c@1.0 +0 -0 + + sntp/libevent/WIN32-Code/getopt.h@1.1 +33 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt.h + + sntp/libevent/WIN32-Code/getopt.h@1.0 +0 -0 + + sntp/libevent/WIN32-Code/getopt_long.c@1.1 +233 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt_long.c + + sntp/libevent/WIN32-Code/getopt_long.c@1.0 +0 -0 + + sntp/libevent/WIN32-Code/nmake/event2/event-config.h@1.2 +2 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/WIN32-Code/tree.h@1.2 +0 -677 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/buffer.c@1.10 +74 -10 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/bufferevent.c@1.8 +9 -4 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/bufferevent_async.c@1.7 +6 -4 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/bufferevent_filter.c@1.7 +50 -23 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/bufferevent_openssl.c@1.9 +2 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/bufferevent_pair.c@1.8 +32 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/configure.ac@1.17 +15 -18 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evbuffer-internal.h@1.8 +13 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evdns.c@1.10 +80 -33 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/event.c@1.13 +38 -10 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/event_tagging.c@1.5 +14 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evrpc-internal.h@1.3 +1 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evthread-internal.h@1.7 +7 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evthread.c@1.8 +17 -6 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evutil.c@1.10 +28 -14 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/evutil_time.c@1.5 +50 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/ht-internal.h@1.4 +0 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/http-internal.h@1.6 +2 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/http.c@1.10 +45 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/buffer.h@1.7 +3 -8 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/bufferevent.h@1.6 +5 -4 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/dns.h@1.7 +17 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/event.h@1.10 +6 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/http.h@1.7 +14 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/listener.h@1.4 +9 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/include/event2/util.h@1.7 +69 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/kqueue.c@1.7 +17 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/listener.c@1.7 +5 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/sample/http-server.c@1.10 +5 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/sample/https-client.c@1.2 +15 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/sample/include.am@1.3 +2 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/include.am@1.4 +2 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/print-winsock-errors.c@1.1 +84 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/print-winsock-errors.c + + sntp/libevent/test/print-winsock-errors.c@1.0 +0 -0 + + sntp/libevent/test/regress.c@1.6 +29 -8 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress.h@1.5 +5 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_buffer.c@1.8 +47 -6 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_bufferevent.c@1.6 +150 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_dns.c@1.8 +141 -14 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_finalize.c@1.2 +1 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_http.c@1.8 +107 -9 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_main.c@1.7 +4 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_minheap.c@1.3 +3 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_ssl.c@1.7 +1 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_thread.c@1.6 +3 -2 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_util.c@1.7 +19 -17 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/regress_zlib.c@1.5 +10 -7 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/test-fdleak.c@1.2 +10 -10 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/test-ratelim.c@1.9 +5 -6 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/test-ratelim.sh@1.1 +88 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/test-ratelim.sh + + sntp/libevent/test/test-ratelim.sh@1.0 +0 -0 + + sntp/libevent/test/test-time.c@1.5 +9 -6 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/tinytest.c@1.6 +33 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/tinytest.h@1.4 +2 -0 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/test/tinytest_demo.c@1.1 +260 -0 + BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/tinytest_demo.c + + sntp/libevent/test/tinytest_demo.c@1.0 +0 -0 + + sntp/libevent/test/tinytest_macros.h@1.3 +21 -6 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/time-internal.h@1.2 +0 -3 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/util-internal.h@1.10 +1 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/libevent/whatsnew-2.1.txt@1.4 +52 -1 + [Bug 2747] Upgrade libevent to 2.1.5-beta + + sntp/m4/LICENSE-OPENLDAP@1.2 +0 -0 + Rename: sntp/libevent/m4/LICENSE-OPENLDAP -> sntp/m4/LICENSE-OPENLDAP + + sntp/m4/openldap-thread-check.m4@1.5 +0 -0 + Rename: sntp/libevent/m4/openldap-thread-check.m4 -> sntp/m4/openldap-thread-check.m4 + + sntp/m4/openldap.m4@1.2 +0 -0 + Rename: sntp/libevent/m4/openldap.m4 -> sntp/m4/openldap.m4 + ChangeSet@1.3302, 2015-02-04 02:44:25-05:00, stenn@deacon.udel.edu NTP_4_2_8P1 TAG: NTP_4_2_8P1 diff --git a/contrib/ntp/Makefile.in b/contrib/ntp/Makefile.in index abd5a09463b8..47232a60e2bd 100644 --- a/contrib/ntp/Makefile.in +++ b/contrib/ntp/Makefile.in @@ -49,8 +49,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -79,6 +78,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -347,6 +348,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/NEWS b/contrib/ntp/NEWS index d33f059985e4..a425a9a4dc3f 100644 --- a/contrib/ntp/NEWS +++ b/contrib/ntp/NEWS @@ -1,3 +1,144 @@ +--- +NTP 4.2.8p2 (Harlan Stenn , 2015/04/xx) + +Focus: Security and Bug fixes, enhancements. + +Severity: MEDIUM + +In addition to bug fixes and enhancements, this release fixes the +following medium-severity vulnerabilities involving private key +authentication: + +* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. + + References: Sec 2779 / CVE-2015-1798 / VU#374268 + Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not + including ntp-4.2.8p2 where the installation uses symmetric keys + to authenticate remote associations. + CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4 + Date Resolved: Stable (4.2.8p2) 07 Apr 2015 + Summary: When ntpd is configured to use a symmetric key to authenticate + a remote NTP server/peer, it checks if the NTP message + authentication code (MAC) in received packets is valid, but not if + there actually is any MAC included. Packets without a MAC are + accepted as if they had a valid MAC. This allows a MITM attacker to + send false packets that are accepted by the client/peer without + having to know the symmetric key. The attacker needs to know the + transmit timestamp of the client to match it in the forged reply + and the false reply needs to reach the client before the genuine + reply from the server. The attacker doesn't necessarily need to be + relaying the packets between the client and the server. + + Authentication using autokey doesn't have this problem as there is + a check that requires the key ID to be larger than NTP_MAXKEY, + which fails for packets without a MAC. + Mitigation: + Upgrade to 4.2.8p2, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Configure ntpd with enough time sources and monitor it properly. + Credit: This issue was discovered by Miroslav Lichvar, of Red Hat. + +* [Sec 2781] Authentication doesn't protect symmetric associations against + DoS attacks. + + References: Sec 2781 / CVE-2015-1799 / VU#374268 + Affects: All NTP releases starting with at least xntp3.3wy up to but + not including ntp-4.2.8p2 where the installation uses symmetric + key authentication. + CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4 + Note: the CVSS base Score for this issue could be 4.3 or lower, and + it could be higher than 5.4. + Date Resolved: Stable (4.2.8p2) 07 Apr 2015 + Summary: An attacker knowing that NTP hosts A and B are peering with + each other (symmetric association) can send a packet to host A + with source address of B which will set the NTP state variables + on A to the values sent by the attacker. Host A will then send + on its next poll to B a packet with originate timestamp that + doesn't match the transmit timestamp of B and the packet will + be dropped. If the attacker does this periodically for both + hosts, they won't be able to synchronize to each other. This is + a known denial-of-service attack, described at + https://www.eecis.udel.edu/~mills/onwire.html . + + According to the document the NTP authentication is supposed to + protect symmetric associations against this attack, but that + doesn't seem to be the case. The state variables are updated even + when authentication fails and the peers are sending packets with + originate timestamps that don't match the transmit timestamps on + the receiving side. + + This seems to be a very old problem, dating back to at least + xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905) + specifications, so other NTP implementations with support for + symmetric associations and authentication may be vulnerable too. + An update to the NTP RFC to correct this error is in-process. + Mitigation: + Upgrade to 4.2.8p2, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Note that for users of autokey, this specific style of MITM attack + is simply a long-known potential problem. + Configure ntpd with appropriate time sources and monitor ntpd. + Alert your staff if problems are detected. + Credit: This issue was discovered by Miroslav Lichvar, of Red Hat. + +* New script: update-leap +The update-leap script will verify and if necessary, update the +leap-second definition file. +It requires the following commands in order to work: + + wget logger tr sed shasum + +Some may choose to run this from cron. It needs more portability testing. + +Bug Fixes and Improvements: + +* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. +* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument. +* [Bug 2346] "graceful termination" signals do not do peer cleanup. +* [Bug 2728] See if C99-style structure initialization works. +* [Bug 2747] Upgrade libevent to 2.1.5-beta. +* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. . +* [Bug 2751] jitter.h has stale copies of l_fp macros. +* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM. +* [Bug 2757] Quiet compiler warnings. +* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq. +* [Bug 2763] Allow different thresholds for forward and backward steps. +* [Bug 2766] ntp-keygen output files should not be world-readable. +* [Bug 2767] ntp-keygen -M should symlink to ntp.keys. +* [Bug 2771] nonvolatile value is documented in wrong units. +* [Bug 2773] Early leap announcement from Palisade/Thunderbolt +* [Bug 2774] Unreasonably verbose printout - leap pending/warning +* [Bug 2775] ntp-keygen.c fails to compile under Windows. +* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info. + Removed non-ASCII characters from some copyright comments. + Removed trailing whitespace. + Updated definitions for Meinberg clocks from current Meinberg header files. + Now use C99 fixed-width types and avoid non-ASCII characters in comments. + Account for updated definitions pulled from Meinberg header files. + Updated comments on Meinberg GPS receivers which are not only called GPS16x. + Replaced some constant numbers by defines from ntp_calendar.h + Modified creation of parse-specific variables for Meinberg devices + in gps16x_message(). + Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates. + Modified mbg_tm_str() which now expexts an additional parameter controlling + if the time status shall be printed. +* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto. +* [Sec 2781] Authentication doesn't protect symmetric associations against + DoS attacks. +* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE. +* [Bug 2789] Quiet compiler warnings from libevent. +* [Bug 2790] If ntpd sets the Windows MM timer highest resolution + pause briefly before measuring system clock precision to yield + correct results. +* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer. +* Use predefined function types for parse driver functions + used to set up function pointers. + Account for changed prototype of parse_inp_fnc_t functions. + Cast parse conversion results to appropriate types to avoid + compiler warnings. + Let ioctl() for Windows accept a (void *) to avoid compiler warnings + when called with pointers to different types. + --- NTP 4.2.8p1 (Harlan Stenn , 2015/02/04) diff --git a/contrib/ntp/aclocal.m4 b/contrib/ntp/aclocal.m4 index c82bc094c180..24036a425915 100644 --- a/contrib/ntp/aclocal.m4 +++ b/contrib/ntp/aclocal.m4 @@ -1132,8 +1132,7 @@ AC_SUBST([am__untar]) m4_include([sntp/libopts/m4/libopts.m4]) m4_include([sntp/libopts/m4/stdnoreturn.m4]) -m4_include([sntp/libevent/m4/openldap-thread-check.m4]) -m4_include([sntp/libevent/m4/openldap.m4]) +m4_include([sntp/m4/ax_c99_struct_init.m4]) m4_include([sntp/m4/define_dir.m4]) m4_include([sntp/m4/hms_search_lib.m4]) m4_include([sntp/m4/libtool.m4]) @@ -1162,5 +1161,7 @@ m4_include([sntp/m4/ntp_rlimit.m4]) m4_include([sntp/m4/ntp_sntp.m4]) m4_include([sntp/m4/ntp_ver_suffix.m4]) m4_include([sntp/m4/ntp_vpathhack.m4]) +m4_include([sntp/m4/openldap-thread-check.m4]) +m4_include([sntp/m4/openldap.m4]) m4_include([sntp/m4/os_cflags.m4]) m4_include([sntp/m4/snprintf.m4]) diff --git a/contrib/ntp/adjtimed/Makefile.in b/contrib/ntp/adjtimed/Makefile.in index a6e97da38919..56f4dfbe1d62 100644 --- a/contrib/ntp/adjtimed/Makefile.in +++ b/contrib/ntp/adjtimed/Makefile.in @@ -49,8 +49,7 @@ subdir = adjtimed ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -79,6 +78,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -329,6 +330,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/clockstuff/Makefile.in b/contrib/ntp/clockstuff/Makefile.in index f04ff2c4a8c1..c852adb9c940 100644 --- a/contrib/ntp/clockstuff/Makefile.in +++ b/contrib/ntp/clockstuff/Makefile.in @@ -42,8 +42,7 @@ subdir = clockstuff ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -72,6 +71,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -325,6 +326,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/config.h.in b/contrib/ntp/config.h.in index 76facf9643b4..5ca9484a00c7 100644 --- a/contrib/ntp/config.h.in +++ b/contrib/ntp/config.h.in @@ -1331,6 +1331,10 @@ /* Should we recommend a minimum value for tickadj? */ #undef MIN_REC_TICKADJ +/* Define to 1 if the compiler does not support C99's structure + initialization. */ +#undef MISSING_C99_STRUCT_INIT + /* Do we need HPUX adjtime() library support? */ #undef NEED_HPUX_ADJTIME diff --git a/contrib/ntp/configure b/contrib/ntp/configure index 28e0c3729cd1..29d777c34ea0 100755 --- a/contrib/ntp/configure +++ b/contrib/ntp/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for ntp 4.2.8p1. +# Generated by GNU Autoconf 2.68 for ntp 4.2.8p2. # # Report bugs to . # @@ -570,8 +570,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ntp' PACKAGE_TARNAME='ntp' -PACKAGE_VERSION='4.2.8p1' -PACKAGE_STRING='ntp 4.2.8p1' +PACKAGE_VERSION='4.2.8p2' +PACKAGE_STRING='ntp 4.2.8p2' PACKAGE_BUGREPORT='http://bugs.ntp.org./' PACKAGE_URL='http://www.ntp.org./' @@ -710,6 +710,13 @@ LD FGREP SED LIBTOOL +INSTALL_UPDATE_LEAP_FALSE +INSTALL_UPDATE_LEAP_TRUE +UPDATE_LEAP_NI +UPDATE_LEAP_MS +UPDATE_LEAP_DS +UPDATE_LEAP_DL +UPDATE_LEAP_DB TIMETRIM_NI TIMETRIM_MS TIMETRIM_DS @@ -1573,7 +1580,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.8p1 to adapt to many kinds of systems. +\`configure' configures ntp 4.2.8p2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1643,7 +1650,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ntp 4.2.8p1:";; + short | recursive ) echo "Configuration of ntp 4.2.8p2:";; esac cat <<\_ACEOF @@ -1872,7 +1879,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ntp configure 4.2.8p1 +ntp configure 4.2.8p2 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2697,7 +2704,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.8p1, which was +It was created by ntp $as_me 4.2.8p2, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3644,7 +3651,7 @@ fi # Define the identity of the package. PACKAGE='ntp' - VERSION='4.2.8p1' + VERSION='4.2.8p2' cat >>confdefs.h <<_ACEOF @@ -7780,6 +7787,44 @@ $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports C99 structure initialization" >&5 +$as_echo_n "checking whether the compiler supports C99 structure initialization... " >&6; } + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + struct foo_s {int i1; int i2;}; + int main() { struct foo_s foo[] = { { .i1 = 1, .i2 = 1 }, { .i1 = 2, .i2 = 2 }, { .i1 = 0, .i2 = 0 } }; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define MISSING_C99_STRUCT_INIT 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if we need ylwrap VPATH hack" >&5 $as_echo_n "checking to see if we need ylwrap VPATH hack... " >&6; } @@ -7941,6 +7986,19 @@ fi + + + + + + + if test -z "$UPDATE_LEAP_NI" ; then + INSTALL_UPDATE_LEAP_TRUE= + INSTALL_UPDATE_LEAP_FALSE='#' +else + INSTALL_UPDATE_LEAP_TRUE='#' + INSTALL_UPDATE_LEAP_FALSE= +fi @@ -31709,10 +31767,10 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) - # error - #endif + #include + #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) + # error + #endif _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : @@ -31748,10 +31806,10 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #ifndef STA_FLL - # error - #endif + #include + #ifndef STA_FLL + # error + #endif _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : @@ -35326,7 +35384,6 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should enable NIST lockclock scheme" >&5 $as_echo_n "checking if we should enable NIST lockclock scheme... " >&6; } - # Check whether --enable-nist was given. if test "${enable_nist+set}" = set; then : enableval=$enable_nist; ans=$enableval @@ -35348,7 +35405,6 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we want support for Samba's signing daemon" >&5 $as_echo_n "checking if we want support for Samba's signing daemon... " >&6; } - # Check whether --enable-ntp-signd was given. if test "${enable_ntp_signd+set}" = set; then : enableval=$enable_ntp_signd; ans=$enableval @@ -36444,33 +36500,35 @@ ac_config_files="$ac_config_files parseutil/Makefile" ac_config_files="$ac_config_files scripts/Makefile" -ac_config_files="$ac_config_files scripts/lib/Makefile" - -ac_config_files="$ac_config_files scripts/calc_tickadj/calc_tickadj" - -ac_config_files="$ac_config_files scripts/calc_tickadj/Makefile" +ac_config_files="$ac_config_files scripts/build/Makefile" ac_config_files="$ac_config_files scripts/build/mkver" -ac_config_files="$ac_config_files scripts/ntp-wait/ntp-wait" +ac_config_files="$ac_config_files scripts/calc_tickadj/Makefile" + +ac_config_files="$ac_config_files scripts/calc_tickadj/calc_tickadj" + +ac_config_files="$ac_config_files scripts/lib/Makefile" ac_config_files="$ac_config_files scripts/ntp-wait/Makefile" -ac_config_files="$ac_config_files scripts/ntpsweep/ntpsweep" +ac_config_files="$ac_config_files scripts/ntp-wait/ntp-wait" ac_config_files="$ac_config_files scripts/ntpsweep/Makefile" -ac_config_files="$ac_config_files scripts/ntptrace/ntptrace" +ac_config_files="$ac_config_files scripts/ntpsweep/ntpsweep" ac_config_files="$ac_config_files scripts/ntptrace/Makefile" +ac_config_files="$ac_config_files scripts/ntptrace/ntptrace" + ac_config_files="$ac_config_files scripts/ntpver" ac_config_files="$ac_config_files scripts/plot_summary" ac_config_files="$ac_config_files scripts/summary" -ac_config_files="$ac_config_files scripts/build/Makefile" +ac_config_files="$ac_config_files scripts/update-leap/Makefile" ac_config_files="$ac_config_files tests/Makefile" @@ -36664,6 +36722,10 @@ if test -z "${INSTALL_NTPSWEEP_TRUE}" && test -z "${INSTALL_NTPSWEEP_FALSE}"; th as_fn_error $? "conditional \"INSTALL_NTPSWEEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${INSTALL_UPDATE_LEAP_TRUE}" && test -z "${INSTALL_UPDATE_LEAP_FALSE}"; then + as_fn_error $? "conditional \"INSTALL_UPDATE_LEAP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${GL_GENERATE_STDNORETURN_H_TRUE}" && test -z "${GL_GENERATE_STDNORETURN_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDNORETURN_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37109,7 +37171,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.8p1, which was +This file was extended by ntp $as_me 4.2.8p2, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -37176,7 +37238,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.8p1 +ntp config.status 4.2.8p2 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -37703,20 +37765,21 @@ do "ntpsnmpd/Makefile") CONFIG_FILES="$CONFIG_FILES ntpsnmpd/Makefile" ;; "parseutil/Makefile") CONFIG_FILES="$CONFIG_FILES parseutil/Makefile" ;; "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; - "scripts/lib/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/lib/Makefile" ;; - "scripts/calc_tickadj/calc_tickadj") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/calc_tickadj" ;; - "scripts/calc_tickadj/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/Makefile" ;; + "scripts/build/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/build/Makefile" ;; "scripts/build/mkver") CONFIG_FILES="$CONFIG_FILES scripts/build/mkver" ;; - "scripts/ntp-wait/ntp-wait") CONFIG_FILES="$CONFIG_FILES scripts/ntp-wait/ntp-wait" ;; + "scripts/calc_tickadj/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/Makefile" ;; + "scripts/calc_tickadj/calc_tickadj") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/calc_tickadj" ;; + "scripts/lib/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/lib/Makefile" ;; "scripts/ntp-wait/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntp-wait/Makefile" ;; - "scripts/ntpsweep/ntpsweep") CONFIG_FILES="$CONFIG_FILES scripts/ntpsweep/ntpsweep" ;; + "scripts/ntp-wait/ntp-wait") CONFIG_FILES="$CONFIG_FILES scripts/ntp-wait/ntp-wait" ;; "scripts/ntpsweep/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntpsweep/Makefile" ;; - "scripts/ntptrace/ntptrace") CONFIG_FILES="$CONFIG_FILES scripts/ntptrace/ntptrace" ;; + "scripts/ntpsweep/ntpsweep") CONFIG_FILES="$CONFIG_FILES scripts/ntpsweep/ntpsweep" ;; "scripts/ntptrace/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntptrace/Makefile" ;; + "scripts/ntptrace/ntptrace") CONFIG_FILES="$CONFIG_FILES scripts/ntptrace/ntptrace" ;; "scripts/ntpver") CONFIG_FILES="$CONFIG_FILES scripts/ntpver" ;; "scripts/plot_summary") CONFIG_FILES="$CONFIG_FILES scripts/plot_summary" ;; "scripts/summary") CONFIG_FILES="$CONFIG_FILES scripts/summary" ;; - "scripts/build/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/build/Makefile" ;; + "scripts/update-leap/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/update-leap/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "tests/libntp/Makefile") CONFIG_FILES="$CONFIG_FILES tests/libntp/Makefile" ;; "tests/ntpd/Makefile") CONFIG_FILES="$CONFIG_FILES tests/ntpd/Makefile" ;; @@ -39254,8 +39317,8 @@ _LT_EOF ;; "ntpd/complete.conf":F) sed -e '/^rlimit$/d' < ntpd/complete.conf > ntpd/complete.conf.new && mv ntpd/complete.conf.new ntpd/complete.conf ;; "ntpdc/nl.pl":F) chmod +x ntpdc/nl.pl ;; - "scripts/calc_tickadj/calc_tickadj":F) chmod +x scripts/calc_tickadj/calc_tickadj ;; "scripts/build/mkver":F) chmod +x scripts/build/mkver ;; + "scripts/calc_tickadj/calc_tickadj":F) chmod +x scripts/calc_tickadj/calc_tickadj ;; "scripts/ntp-wait/ntp-wait":F) chmod +x scripts/ntp-wait/ntp-wait ;; "scripts/ntpsweep/ntpsweep":F) chmod +x scripts/ntpsweep/ntpsweep ;; "scripts/ntptrace/ntptrace":F) chmod +x scripts/ntptrace/ntptrace ;; diff --git a/contrib/ntp/configure.ac b/contrib/ntp/configure.ac index 6942ceb5333f..dc5c7fcfd703 100644 --- a/contrib/ntp/configure.ac +++ b/contrib/ntp/configure.ac @@ -68,6 +68,7 @@ AC_PROG_CPP AC_PROG_CXX AC_PROG_YACC AC_PROG_CC_C_O +AX_C99_STRUCT_INIT NTP_VPATH_HACK dnl used only by ntpd/Makefile.am @@ -1499,12 +1500,13 @@ AC_CACHE_CHECK( ;; *) AC_PREPROC_IFELSE( - [ - #include - #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) - # error - #endif - ], + [AC_LANG_SOURCE( + [ + #include + #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) + # error + #endif + ])], [ntp_cv_var_ntp_syscalls=kernel] ) ;; @@ -1526,12 +1528,13 @@ AC_CACHE_CHECK( [if sys/timex.h has STA_FLL], [ntp_cv_var_sta_fll], [AC_PREPROC_IFELSE( - [ - #include - #ifndef STA_FLL - # error - #endif - ], + [AC_LANG_SOURCE( + [ + #include + #ifndef STA_FLL + # error + #endif + ])], [ntp_cv_var_sta_fll=yes], [ntp_cv_var_sta_fll=no] )] @@ -1586,12 +1589,12 @@ AC_MSG_CHECKING([for TTY PPS ioctl TIOCGPPSEV]) case "$ac_cv_header_termios_h" in yes) AC_PREPROC_IFELSE( - [ + [AC_LANG_SOURCE([ #include #ifndef TIOCGPPSEV # error #endif - ], + ])], [ntp_ok=yes], [ntp_ok=no] ) @@ -1612,12 +1615,12 @@ AC_MSG_CHECKING([for TTY PPS ioctl TIOCSPPS]) case "$ac_cv_header_termios_h" in yes) AC_PREPROC_IFELSE( - [ + [AC_LANG_SOURCE([ #include #ifndef TIOCSPPS # error #endif - ], + ])], [ntp_ok=yes], [ntp_ok=no] ) @@ -1638,12 +1641,12 @@ AC_MSG_CHECKING([for TTY PPS ioctl CIOGETEV]) case "$ac_cv_header_sys_ppsclock_h" in yes) AC_PREPROC_IFELSE( - [ + [AC_LANG_SOURCE([ #include #ifndef CIOGETEV # error #endif - ], + ])], [ntp_ok=yes], [ntp_ok=no] ) @@ -1689,7 +1692,7 @@ case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in yesyes) AC_MSG_CHECKING([ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG]) AC_PREPROC_IFELSE( - [ + [AC_LANG_SOURCE([ #include typedef int u_int; #include @@ -1710,7 +1713,7 @@ case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in #ifndef CIOGETEV # error #endif - ], + ])], [ntp_ok=yes], [ntp_ok=no] ) @@ -4193,7 +4196,6 @@ case "$ans" in esac AC_MSG_CHECKING([if we should enable NIST lockclock scheme]) - AC_ARG_ENABLE( [nist], [AS_HELP_STRING( @@ -4213,7 +4215,6 @@ case "$ans" in esac AC_MSG_CHECKING([if we want support for Samba's signing daemon]) - AC_ARG_ENABLE( [ntp-signd], [AS_HELP_STRING( @@ -4266,14 +4267,14 @@ AC_CACHE_CHECK( [for interface list sysctl], [ntp_cv_iflist_sysctl], [AC_PREPROC_IFELSE( - [ + [AC_LANG_SOURCE([ #include #include #include #ifndef NET_RT_IFLIST # error #endif - ], + ])], [ntp_cv_iflist_sysctl=yes], [ntp_cv_iflist_sysctl=no] )] @@ -4333,20 +4334,21 @@ AC_CONFIG_FILES([ntpq/Makefile]) AC_CONFIG_FILES([ntpsnmpd/Makefile]) AC_CONFIG_FILES([parseutil/Makefile]) AC_CONFIG_FILES([scripts/Makefile]) -AC_CONFIG_FILES([scripts/lib/Makefile]) -AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) -AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) +AC_CONFIG_FILES([scripts/build/Makefile]) AC_CONFIG_FILES([scripts/build/mkver], [chmod +x scripts/build/mkver]) -AC_CONFIG_FILES([scripts/ntp-wait/ntp-wait], [chmod +x scripts/ntp-wait/ntp-wait]) +AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) +AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) +AC_CONFIG_FILES([scripts/lib/Makefile]) AC_CONFIG_FILES([scripts/ntp-wait/Makefile]) -AC_CONFIG_FILES([scripts/ntpsweep/ntpsweep], [chmod +x scripts/ntpsweep/ntpsweep]) +AC_CONFIG_FILES([scripts/ntp-wait/ntp-wait], [chmod +x scripts/ntp-wait/ntp-wait]) AC_CONFIG_FILES([scripts/ntpsweep/Makefile]) -AC_CONFIG_FILES([scripts/ntptrace/ntptrace], [chmod +x scripts/ntptrace/ntptrace]) +AC_CONFIG_FILES([scripts/ntpsweep/ntpsweep], [chmod +x scripts/ntpsweep/ntpsweep]) AC_CONFIG_FILES([scripts/ntptrace/Makefile]) +AC_CONFIG_FILES([scripts/ntptrace/ntptrace], [chmod +x scripts/ntptrace/ntptrace]) AC_CONFIG_FILES([scripts/ntpver], [chmod +x scripts/ntpver]) AC_CONFIG_FILES([scripts/plot_summary], [chmod +x scripts/plot_summary]) AC_CONFIG_FILES([scripts/summary], [chmod +x scripts/summary]) -AC_CONFIG_FILES([scripts/build/Makefile]) +AC_CONFIG_FILES([scripts/update-leap/Makefile]) AC_CONFIG_FILES([tests/Makefile]) AC_CONFIG_FILES([tests/libntp/Makefile]) AC_CONFIG_FILES([tests/ntpd/Makefile]) diff --git a/contrib/ntp/html/build.html b/contrib/ntp/html/build.html index 9683b291f41a..5e3c2d8118c9 100644 --- a/contrib/ntp/html/build.html +++ b/contrib/ntp/html/build.html @@ -11,7 +11,7 @@ giffrom Pogo, Walt Kelly

For putting out compiler fires.

Last update: - 31-Mar-2014 05:39 + 1-Apr-2015 02:57


Related Links

@@ -27,7 +27,7 @@

Building and Installing the Distribution

-

It is not possible in a software distribution such as this to support every individual computer and operating system with a common executable, even with the same system but different versions and options. Therefore, it is necessary to configure, build and install for each system and version. In almost all cases, these procedures are completely automatic, The user types ./configure, make and install in that order and the autoconfigure system does the rest. There are some exceptions, as noted below and on the Hints and Kinks pages.

+

It is not possible in a software distribution such as this to support every individual computer and operating system with a common executable, even with the same system but different versions and options. Therefore, it is necessary to configure, build and install for each system and version. In almost all cases, these procedures are completely automatic, The user types ./configure, and make install in that order and the autoconfigure system does the rest. There are some exceptions, as noted below and on the Hints and Kinks pages.

If available, the OpenSSL library from http://www.openssl.org is used to support public key cryptography. The library must be built and installed prior to building NTP. The procedures for doing that are included in the OpenSSL documentation. The library is found during the normal NTP configure phase and the interface routines compiled automatically. Only the libcrypto.a library file and openssl header files are needed. If the library is not available or disabled, this step is not required.

The Build Options page describes a number of options that determine whether debug support is included, whether and which reference clock drivers are included and the locations of the executables and library files, if not the default. By default debugging options and all reference clock drivers are included.

Building and Installing for Unix

diff --git a/contrib/ntp/html/miscopt.html b/contrib/ntp/html/miscopt.html index 62f41b6c59c3..5750d17999d5 100644 --- a/contrib/ntp/html/miscopt.html +++ b/contrib/ntp/html/miscopt.html @@ -10,7 +10,7 @@ giffrom Pogo, Walt Kelly

We have three, now looking for more.

Last update: - 31-Jan-2014 06:54 + 28-Feb-2015 12:01 UTC


Related Links

@@ -90,7 +90,7 @@
nonvolatile threshold
-
Specify the threshold in PPM to write the frequency file, with default 0.1 PPM. The frequency file is inspected each hour. If the difference between the current frequency and the last value written exceeds the threshold, the file is written and the threshold becomes the new threshold value. If the threshold is not exceeded, it is reduced by half. This is intended to reduce the frequency of unnecessary file writes for embedded systems with nonvolatile memory.
+
Specify the threshold in seconds to write the frequency file, with default of 1e-7 (0.1 PPM). The frequency file is inspected each hour. If the difference between the current frequency and the last value written exceeds the threshold, the file is written and the threshold becomes the new threshold value. If the threshold is not exceeded, it is reduced by half. This is intended to reduce the frequency of unnecessary file writes for embedded systems with nonvolatile memory.
phone dial ...
This command is used in conjunction with the ACTS modem driver (type 18). The arguments consist of a maximum of 10 telephone numbers used to dial USNO, NIST or European time services. The Hayes command ATDT is normally prepended to the number, which can contain other modem control codes as well.
reset [allpeers] [auth] [ctl] [io] [mem] [sys] [timer]
diff --git a/contrib/ntp/html/sntp.html b/contrib/ntp/html/sntp.html index fa17203f25f8..84c6f29d5fa1 100644 --- a/contrib/ntp/html/sntp.html +++ b/contrib/ntp/html/sntp.html @@ -11,7 +11,7 @@ giffrom Alice's Adventures in Wonderland, Lewis Carroll

S is for snakeoil.

Last update: - 7-Dec-2014 11:09 + 1-Apr-2015 11:05 UTC



@@ -20,8 +20,8 @@

Description

This program is a Simple Network Time Protocol (SNTP) client that can be used to query a Network Time Protocol (NTP) server and display the time offset of the system clock relative to the server clock. Run as root it can correct the system clock to this offset as well. It can be run as an interactive command or from a script by a cron job. The program implements the SNTP client protocol defined in RFC 5905, including the full on-wire protocol but does not provide the sanity checks, access controls, security functions and mitigation algorithms as in the full NTP version 4 specification, also defined in RFC 5905.

By default, sntp writes the local date and time (i.e., not UTC) to the standard output in the format

-

2011-08-04 00:40:36.642222 (+0000) +0.006611 +/- 0.041061 psp-os1 149.20.68.26

-

where the +0.006611 +/- 0.041061 indicates the time offset and error bound of the system clock relative to the server clock, in seconds.

+

2011-08-04 00:40:36.642222 (+0000) +0.006611 +/- 0.041061 psp-os1 149.20.68.26 s3 no-leap

+

where the +0.006611 +/- 0.041061 indicates the time offset and error bound of the system clock relative to the server clock, in seconds. The hostname and/or the IP is displayed, as is the stratum of the server. Finally, the leap indicator status is displayed.

If -b bcaddress is not specified, the program sends a single message to each address and waits up to uctimeout (default 5) seconds for a unicast server response. Otherwise, it sends no message and waits up to bctimeout (default 68) seconds for a broadcast NTP message.

Options

sntp recognizes the following options:

diff --git a/contrib/ntp/include/Makefile.in b/contrib/ntp/include/Makefile.in index 36c9b865f481..cb210040d8b7 100644 --- a/contrib/ntp/include/Makefile.in +++ b/contrib/ntp/include/Makefile.in @@ -40,8 +40,7 @@ DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -70,6 +69,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -327,6 +328,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/include/binio.h b/contrib/ntp/include/binio.h index d1ee94429144..cf98633578bc 100644 --- a/contrib/ntp/include/binio.h +++ b/contrib/ntp/include/binio.h @@ -42,11 +42,21 @@ void put_lsb_short (unsigned char **, long); long get_lsb_long (unsigned char **); void put_lsb_long (unsigned char **, long); +#define get_lsb_int16( _x_ ) ((int16_t) get_lsb_short( _x_ )) +#define get_lsb_uint16( _x_ ) ((uint16_t) get_lsb_short( _x_ )) +#define get_lsb_int32( _x_ ) ((int32_t) get_lsb_long( _x_ )) +#define get_lsb_uint32( _x_ ) ((uint32_t) get_lsb_long( _x_ )) + long get_msb_short (unsigned char **); void put_msb_short (unsigned char **, long); long get_msb_long (unsigned char **); void put_msb_long (unsigned char **, long); +#define get_msb_int16( _x_ ) ((int16_t) get_msb_short( _x_ )) +#define get_msb_uint16( _x_ ) ((uint16_t) get_msb_short( _x_ )) +#define get_msb_int32( _x_ ) ((int32_t) get_msb_long( _x_ )) +#define get_msb_uint32( _x_ ) ((uint32_t) get_msb_long( _x_ )) + #endif /* * History: diff --git a/contrib/ntp/include/isc/Makefile.in b/contrib/ntp/include/isc/Makefile.in index f29d1454b9a9..ad0da46e1002 100644 --- a/contrib/ntp/include/isc/Makefile.in +++ b/contrib/ntp/include/isc/Makefile.in @@ -40,8 +40,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -70,6 +69,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -289,6 +290,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/include/mbg_gps166.h b/contrib/ntp/include/mbg_gps166.h index 974debafae28..b9b3d778356b 100644 --- a/contrib/ntp/include/mbg_gps166.h +++ b/contrib/ntp/include/mbg_gps166.h @@ -39,206 +39,459 @@ #define MBG_GPS166_H -/***************************************************************************/ -/* */ -/* File: GPSSERIO.H 4.1 */ -/* */ -/* Project: Common C Library */ -/* */ -/* Compiler: Borland C++ */ -/* */ -/* Author: M. Burnicki, Meinberg Funkuhren */ -/* */ -/* */ -/* Description: */ -/* This file defines structures and codes to be used to access GPS166 */ -/* via its serial interface COM0. COM0 should be set to a high baud */ -/* rate, default is 19200. */ -/* */ -/* Standard GPS166 serial operation is to send a time string that is */ -/* compatible with Meinberg UA31 or PZF535 DCF77 radio remote clocks. */ -/* That string can be transmitted automatically once per second, once */ -/* per minute or on request per ASCII '?'. */ -/* */ -/* Parameter setup or parameter readout works using blocks of binary */ -/* data which have to be isolated from the standard string. A block of */ -/* data starts with a SOH code (ASCII Start Of Header, 0x01) followed */ -/* by a message header with constant length and a data portion with */ -/* variable length. The first field (cmd) of the message header holds */ -/* the command code rsp. the type of data to be transmitted. The next */ -/* field (len) gives the number of data bytes that are transmitted */ -/* after the header. This number ranges from 0 to sizeof( MSG_DATA ). */ -/* The third field (data_csum) holds a checksum of all data bytes and */ -/* the last field of the header finally holds the checksum of the. */ -/* header. */ -/* */ -/***************************************************************************/ +/*************************************************************************** + * + * Definitions taken from Meinberg's gpsserio.h and gpsdefs.h files. + * + * Author: Martin Burnicki, Meinberg Funkuhren + * + * Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany + * + * Description: + * Structures and codes to be used to access Meinberg GPS clocks via + * their serial interface COM0. COM0 should be set to a high baud rate, + * default is 19200. + * + * Standard Meinberg GPS serial operation is to send the Meinberg + * standard time string automatically once per second, once per + * minute, or on request per ASCII '?'. + * + * GPS parameter setup or parameter readout uses blocks of binary + * data which have to be isolated from the standard string. A block + * of data starts with a SOH code (ASCII Start Of Header, 0x01) + * followed by a message header with constant length and a block of + * data with variable length. + * + * The first field (cmd) of the message header holds the command + * code resp. the type of data to be transmitted. The next field (len) + * gives the number of data bytes that follow the header. This number + * ranges from 0 to sizeof( MSG_DATA ). The third field (data_csum) + * holds a checksum of all data bytes and the last field of the header + * finally holds the checksum of the header itself. + * + ***************************************************************************/ -/* the control codes defined below are to be or'ed with a command/type code */ - -#define GPS_REQACK 0x8000 /* to GPS166: request acknowledge */ -#define GPS_ACK 0x4000 /* from GPS166: acknowledge a command */ -#define GPS_NACK 0x2000 /* from GPS166: error receiving command */ - -#define GPS_CTRL_MSK 0xF000 /* masks control code from command */ - - -/* The codes below specify commands/types of data to be supplied to GPS166: */ - -/* GPS166 auto-message to host */ -/* þ host request, GPS166 response */ -/* þ þ host download to GPS166 */ -/* þ þ þ */ -enum { /* þ þ þ */ - /* system data */ - GPS_AUTO_ON = 0x000, /* þ þ þ X þ enable auto-messages from GPS166 */ - GPS_AUTO_OFF, /* þ þ þ X þ disable auto-messages from GPS166 */ - GPS_SW_REV, /* þ þ X þ þ request software revision */ - GPS_STAT, /* þ þ X þ þ request status of buffered variables */ - GPS_TIME, /* þ X þ þ X þ current time or capture or init board time */ - GPS_POS_XYZ, /* þ þ X þ X þ current position in ECEF coords */ - GPS_POS_LLA, /* þ þ X þ X þ current position in geographic coords */ - GPS_TZDL, /* þ þ X þ X þ time zone / daylight saving */ - GPS_PORT_PARM, /* þ þ X þ X þ parameters of the serial ports */ - GPS_SYNTH, /* þ þ X þ X þ synthesizer's frequency and phase */ - GPS_ANT_INFO, /* þ X þ X þ þ time diff after antenna disconnect */ - GPS_UCAP, /* þ X þ X þ þ user capture */ - - /* GPS data */ - GPS_CFGH = 0x100, /* þ þ X þ X þ SVs' configuration and health codes */ - GPS_ALM, /* þ þ X þ X þ one SV's almanac */ - GPS_EPH, /* þ þ X þ X þ one SV's ephemeris */ - GPS_UTC, /* þ þ X þ X þ UTC correction parameters */ - GPS_IONO, /* þ þ X þ X þ ionospheric correction parameters */ - GPS_ASCII_MSG /* þ þ X þ þ the GPS ASCII message */ -}; - -/* - * modelled after GPSDEFS.H Revision 1.5 +/** + * @brief GPS epoch bias from ordinary time_t epoch + * + * The Unix time_t epoch is usually 1970-01-01 00:00 whereas + * the GPS epoch is 1980-01-06 00:00, so the difference is 10 years, + * plus 2 days due to leap years (1972 and 1976), plus the difference + * of the day-of-month (6 - 1), so:
+ * + * time_t t = ( gps_week * ::SECS_PER_WEEK ) + sec_of_week + ::GPS_SEC_BIAS */ -/***************************************************************************/ -/* */ -/* File: GPSDEFS.H 4.1 */ -/* */ -/* Project: Common C Library */ -/* */ -/* Compiler: Borland C++ */ -/* */ -/* Author: M. Burnicki, Meinberg Funkuhren */ -/* */ -/* */ -/* Description: */ -/* General definitions to be used with GPS166 */ -/* GPS166 Rev. 1.23 or above */ -/* */ -/* Modifications: see file GPSLIB.TXT */ -/* */ -/***************************************************************************/ -#define _GPSDEFS_H -/* the type of various checksums */ +#define GPS_SEC_BIAS 315964800UL // ( ( ( 10UL * 365UL ) + 2 + 5 ) * SECS_PER_DAY ) -#ifndef _CSUM_DEFINED - typedef unsigned short CSUM; -# define _CSUM_DEFINED + +#ifndef _COM_HS_DEFINED + /** + * @brief Enumeration of handshake modes + */ + enum COM_HANSHAKE_MODES { HS_NONE, HS_XONXOFF, HS_RTSCTS, N_COM_HS }; + #define _COM_HS_DEFINED #endif -/* the message header */ +#ifndef _COM_PARM_DEFINED + /** + * @brief A data type to configure a serial port's baud rate + * + * @see ::MBG_BAUD_RATES + */ + typedef int32_t BAUD_RATE; + + /** + * @brief Indices used to identify a parameter in the framing string + * + * @see ::MBG_FRAMING_STRS + */ + enum MBG_FRAMING_STR_IDXS { F_DBITS, F_PRTY, F_STBITS }; + + /** + * @brief A structure to store the configuration of a serial port + */ + typedef struct + { + BAUD_RATE baud_rate; ///< transmission speed, e.g. 19200L, see ::MBG_BAUD_RATES + char framing[4]; ///< ASCIIZ framing string, e.g. "8N1" or "7E2", see ::MBG_FRAMING_STRS + int16_t handshake; ///< handshake mode, yet only ::HS_NONE supported + + } COM_PARM; + + #define _COM_PARM_DEFINED +#endif + + +/** + * @brief Enumeration of modes supported for time string transmission + * + * This determines e.g. at which point in time a string starts + * to be transmitted via the serial port. + * Used with ::PORT_SETTINGS::mode. + * + * @see ::STR_MODE_MASKS + */ +enum STR_MODES +{ + STR_ON_REQ, ///< transmission on request by received '?' character only + STR_PER_SEC, ///< transmission automatically if second changes + STR_PER_MIN, ///< transmission automatically if minute changes + STR_AUTO, ///< transmission automatically if required, e.g. on capture event + STR_ON_REQ_SEC, ///< transmission if second changes and a request has been received before + N_STR_MODE ///< the number of known modes +}; + + +/** + * The number of serial ports which are at least available + * even with very old GPS receiver models. For devices providing + * a ::RECEIVER_INFO structure the number of provided COM ports + * is available in ::RECEIVER_INFO::n_com_ports. + */ +#define DEFAULT_N_COM 2 + + +/** + * @brief A The structure used to store the configuration of two serial ports + * + * @deprecated This structure is deprecated, ::PORT_SETTINGS and related structures + * should be used instead, if supported by the device. + */ +typedef struct +{ + COM_PARM com[DEFAULT_N_COM]; ///< COM0 and COM1 settings + uint8_t mode[DEFAULT_N_COM]; ///< COM0 and COM1 output mode + +} PORT_PARM; + + +/** + * @brief The type of a GPS command code + * + * @see ::GPS_CMD_CODES + */ +typedef uint16_t GPS_CMD; + + +/** + * @brief Control codes to be or'ed with a particular command/type code + */ +enum GPS_CMD_CTRL_CODES +{ + GPS_REQACK = 0x8000, ///< to device: request acknowledge + GPS_ACK = 0x4000, ///< from device: acknowledge a command + GPS_NACK = 0x2000, ///< from device: error evaluating a command +}; + +#define GPS_CTRL_MSK 0xF000 ///< bit mask of all ::GPS_CMD_CTRL_CODES + + +/** + * @brief Command codes for the binary protocol + * + * These codes specify commands and associated data types used by Meinberg's + * binary protocol to exchange data with a device via serial port, direct USB, + * or socket I/O. + * + * Some commands and associated data structures can be read (r) from a device, others + * can be written (w) to the device, and some can also be sent automatically (a) by + * a device after a ::GPS_AUTO_ON command has been sent to the device. + * The individual command codes are marked with (rwa) accordingly, where '-' is used + * to indicate that a particular mode is not supported. + * + * @note Not all command code are supported by all devices. + * See the hints for a particular command. + * + * @note If ::GPS_ALM, ::GPS_EPH or a code named ..._IDX is sent to retrieve + * some data from a device then an uint16_t parameter must be also supplied + * in order to specify the index number of the data set to be returned. + * The valid index range depends on the command code. + * For ::GPS_ALM and ::GPS_EPH the index is the SV number which may be 0 or + * ::MIN_SVNO_GPS to ::MAX_SVNO_GPS. If the number is 0 then all ::N_SVNO_GPS + * almanacs or ephemeris data structures are returned. + * + * @see ::GPS_CMD_CODES_TABLE + */ +enum GPS_CMD_CODES +{ /* system data */ + GPS_AUTO_ON = 0x000, ///< (-w-) no data, enable auto-msgs from device + GPS_AUTO_OFF, ///< (-w-) no data, disable auto-msgs from device + GPS_SW_REV, ///< (r--) deprecated, ::SW_REV, software revision, use only if ::GPS_RECEIVER_INFO not supp. + GPS_BVAR_STAT, ///< (r--) ::BVAR_STAT, status of buffered variables, only if ::GPS_MODEL_HAS_BVAR_STAT + GPS_TIME, ///< (-wa) ::TTM, current time or capture, or init board time + GPS_POS_XYZ, ///< (rw-) ::XYZ, current position in ECEF coordinates, only if ::GPS_MODEL_HAS_POS_XYZ + GPS_POS_LLA, ///< (rw-) ::LLA, current position in geographic coordinates, only if ::GPS_MODEL_HAS_POS_LLA + GPS_TZDL, ///< (rw-) ::TZDL, time zone / daylight saving, only if ::GPS_MODEL_HAS_TZDL + GPS_PORT_PARM, ///< (rw-) deprecated, ::PORT_PARM, use ::PORT_SETTINGS etc. if ::GPS_RECEIVER_INFO supported + GPS_SYNTH, ///< (rw-) ::SYNTH, synthesizer settings, only if ::GPS_HAS_SYNTH + GPS_ANT_INFO, ///< (r-a) ::ANT_INFO, time diff after antenna disconnect, only if ::GPS_MODEL_HAS_ANT_INFO + GPS_UCAP, ///< (r-a) ::TTM, user capture events, only if ::RECEIVER_INFO::n_ucaps > 0 + + /* GPS data */ + GPS_CFGH = 0x100, ///< (rw-) ::CFGH, SVs' configuration and health codes + GPS_ALM, ///< (rw-) req: uint16_t SV num, ::SV_ALM, one SV's almanac + GPS_EPH, ///< (rw-) req: uint16_t SV num, ::SV_EPH, one SV's ephemeris + GPS_UTC, ///< (rw-) ::UTC, GPS %UTC correction parameters + GPS_IONO, ///< (rw-) ::IONO, GPS ionospheric correction parameters + GPS_ASCII_MSG ///< (r--) ::ASCII_MSG, the GPS ASCII message +}; + + +#ifndef _CSUM_DEFINED + typedef uint16_t CSUM; /* checksum used by some structures stored in non-volatile memory */ + #define _CSUM_DEFINED +#endif + + +/** + * @brief The header of a binary message. + */ +typedef struct +{ + GPS_CMD cmd; ///< see ::GPS_CMD_CODES + uint16_t len; ///< length of the data portion appended after the header + CSUM data_csum; ///< checksum of the data portion appended after the header + CSUM hdr_csum; ///< checksum of the preceding header bytes -typedef struct { - unsigned short gps_cmd; - unsigned short gps_len; - unsigned short gps_data_csum; - unsigned short gps_hdr_csum; } GPS_MSG_HDR; -/* a struct used to hold the software revision information */ -typedef struct { - unsigned short code; /* e.g. 0x0120 means rev. 1.20 */ - unsigned char name[17]; /* used to identify customized versions */ +#define GPS_ID_STR_LEN 16 +#define GPS_ID_STR_SIZE ( GPS_ID_STR_LEN + 1 ) + +/** + * @brief Software revision information + * + * Contains a software revision code, plus an optional + * identifier for a customized version. + */ +typedef struct +{ + uint16_t code; ///< Version number, e.g. 0x0120 means v1.20 + char name[GPS_ID_STR_SIZE]; ///< Optional string identifying a customized version + uint8_t reserved; ///< Reserved field to yield even structure size + } SW_REV; -/* GPS ASCII message */ -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ - char s[23]; /* 22 chars GPS ASCII message plus trailing zero */ -} ASCII_MSG; +/** + * @brief GNSS satellite numbers + * + * @todo: Check if MAX_SVNO_GLN is 94 instead of 95, and thus + * N_SVNO_GLN is 30 instead of 31, as reported by Wikipedia. + */ +enum GNSS_SVNOS +{ + MIN_SVNO_GPS = 1, ///< min. GPS satellite PRN number + MAX_SVNO_GPS = 32, ///< max. GPS satellite PRN number + N_SVNO_GPS = 32, ///< max. number of active GPS satellites -#define MIN_SVNO 1 /* min. SV number */ -#define MAX_SVNO 32 /* max. SV number */ -#define N_SVNO ( MAX_SVNO - MIN_SVNO + 1) /* number of possibly active SVs */ + MIN_SVNO_WAAS = 33, ///< min. WAAS satellite number + MAX_SVNO_WAAS = 64, ///< max. WAAS satellite number + N_SVNO_WAAS = 32, ///< max. number of active WAAS satellites + + MIN_SVNO_GLONASS = 65, ///< min. Glonass satellite number (64 + sat slot ID) + MAX_SVNO_GLONASS = 95, ///< max. Glonass satellite number (64 + sat slot ID) + N_SVNO_GLONASS = 31 ///< max. number of active Glonass satellites +}; -typedef short SVNO; /* the number of a SV */ -typedef unsigned short HEALTH; /* a SV's health code */ -typedef unsigned short CFG; /* a SV's configuration code */ -typedef unsigned short IOD; /* Issue-Of-Data code */ +typedef uint16_t SVNO; ///< the number of an SV (Space Vehicle, i.e. satellite) +typedef uint16_t HEALTH; ///< an SV's 6 bit health code +typedef uint16_t CFG; ///< an SV's 4 bit configuration code +typedef uint16_t IOD; ///< Issue-Of-Data code -/* Date and time referred to the linear time scale defined by GPS. */ -/* GPS time is defined by the number of weeks since midnight from */ -/* January 5, 1980 to January 6, 1980 plus the number of seconds of */ -/* the current week plus fractions of a second. GPS time differs from */ -/* UTC because UTC is corrected with leap seconds while GPS time scale */ -/* is continuous. */ -typedef struct { - unsigned short wn; /* the week number since GPS has been installed */ - unsigned long sec; /* the second of that week */ - unsigned long tick; /* fractions of a second; scale: 1E-7 */ +/** + * @brief Status flags of battery buffered data + * + * Related to data received from the satellites, or data derived thereof. + * + * All '0' means OK, single bits set to '1' indicate + * the associated type of GPS data is not available. + * + * @see ::BVAR_FLAGS + */ +typedef uint16_t BVAR_STAT; + +#define _mbg_swab_bvar_stat( _p ) _mbg_swab16( (_p) ) + + +/** + * @brief Enumeration of flag bits used to define ::BVAR_FLAGS + * + * For each bit which is set this means the associated data set in + * non-volatile memory is not available, or incomplete. + * Most data sets will just be re-collected from the data streams sent + * by the satellites. However, the receiver position has usually been + * computed earlier during normal operation, and will be re-computed + * when a sufficient number of satellites can be received. + * + * @see ::BVAR_STAT + * @see ::BVAR_FLAGS + * @see ::BVAR_FLAG_NAMES + */ +enum BVAR_FLAG_BITS +{ + BVAR_BIT_CFGH_INVALID, ///< Satellite configuration and health parameters incomplete + BVAR_BIT_ALM_NOT_COMPLETE, ///< Almanac parameters incomplete + BVAR_BIT_UTC_INVALID, ///< %UTC offset parameters incomplete + BVAR_BIT_IONO_INVALID, ///< Ionospheric correction parameters incomplete + BVAR_BIT_RCVR_POS_INVALID, ///< No valid receiver position available + N_BVAR_BIT ///< number of defined ::BVAR_STAT bits +}; + + +/** + * @brief Bit masks associated with ::BVAR_FLAG_BITS + * + * Used with ::BVAR_STAT. + * + * @see ::BVAR_STAT + * @see ::BVAR_FLAG_BITS + * @see ::BVAR_FLAG_NAMES + */ +enum BVAR_FLAGS +{ + BVAR_CFGH_INVALID = ( 1UL << BVAR_BIT_CFGH_INVALID ), ///< see ::BVAR_BIT_CFGH_INVALID + BVAR_ALM_NOT_COMPLETE = ( 1UL << BVAR_BIT_ALM_NOT_COMPLETE ), ///< see ::BVAR_BIT_ALM_NOT_COMPLETE + BVAR_UTC_INVALID = ( 1UL << BVAR_BIT_UTC_INVALID ), ///< see ::BVAR_BIT_UTC_INVALID + BVAR_IONO_INVALID = ( 1UL << BVAR_BIT_IONO_INVALID ), ///< see ::BVAR_BIT_IONO_INVALID + BVAR_RCVR_POS_INVALID = ( 1UL << BVAR_BIT_RCVR_POS_INVALID ), ///< see ::BVAR_BIT_RCVR_POS_INVALID +}; + + +/** + * @brief A structure used to hold time in GPS format + * + * Date and time refer to the linear time scale defined by GPS, with + * the epoch starting at %UTC midnight at the beginning of January 6, 1980. + * + * GPS time is counted by the week numbers since the epoch, plus second + * of the week, plus fraction of the second. The week number transmitted + * by the satellites rolls over from 1023 to 0, but Meinberg devices + * just continue to count the weeks beyond the 1024 week limit to keep + * the receiver's internal time. + * + * %UTC time differs from GPS time since a number of leap seconds have + * been inserted in the %UTC time scale after the GPS epoche. The number + * of leap seconds is disseminated by the satellites using the ::UTC + * parameter set, which also provides info on pending leap seconds. + */ +typedef struct +{ + uint16_t wn; ///< the week number since GPS has been installed + uint32_t sec; ///< the second of that week + uint32_t tick; ///< fractions of a second, 1/::RECEIVER_INFO::ticks_per_sec units + } T_GPS; -/* Local date and time computed from GPS time. The current number */ -/* of leap seconds have to be added to get UTC from GPS time. */ -/* Additional corrections could have been made according to the */ -/* time zone/daylight saving parameters (TZDL, see below) defined */ -/* by the user. The status field can be checked to see which corrections */ -/* have been applied. */ +/** + * @brief Local date and time computed from GPS time + * + * The current number of leap seconds have to be added to get %UTC + * from GPS time. Additional corrections could have been made according + * to the time zone/daylight saving parameters ::TZDL defined by the user. + * The status field can be checked to see which corrections + * have actually been applied. + * + * @note Conversion from GPS time to %UTC and/or local time can only be + * done if some valid ::UTC correction parameters are available in the + * receiver's non-volatile memory. + */ +typedef struct +{ + int16_t year; ///< year number, 0..9999 + int8_t month; ///< month, 1..12 + int8_t mday; ///< day of month, 1..31 + int16_t yday; ///< day of year, 1..365, or 366 in case of leap year + int8_t wday; ///< day of week, 0..6 == Sun..Sat + int8_t hour; ///< hours, 0..23 + int8_t min; ///< minutes, 0..59 + int8_t sec; ///< seconds, 0..59, or 60 in case of inserted leap second + int32_t frac; ///< fractions of a second, 1/::RECEIVER_INFO::ticks_per_sec units + int32_t offs_from_utc; ///< local time offset from %UTC [sec] + uint16_t status; ///< status flags, see ::TM_GPS_STATUS_BIT_MASKS -#ifndef GPS166_TM_DEFINED - typedef struct { - short year; /* 0..9999 */ - char month; /* 1..12 */ - char mday; /* 1..31 */ - short yday; /* 1..366 */ - char wday; /* 0..6 == Sun..Sat */ - char hour; /* 0..23 */ - char minute; /* 0..59 */ - char second; /* 0..59 */ - long frac; /* fractions of a second, scale 1E-7 */ - long offs_from_utc; /* local time's offset from UTC */ - unsigned short status; /* flags */ - } TM; - - /* status flags used with conversion from GPS time to local time */ - -# define TM_UTC 0x01 /* UTC correction has been made */ -# define TM_LOCAL 0x02 /* UTC has been converted to local time */ -# define TM_DL_ANN 0x04 /* state of daylight saving is going to change */ -# define TM_DL_ENB 0x08 /* daylight saving is enabled */ -# define TM_LS_ANN 0x10 /* leap second will be inserted */ -# define TM_LS_ENB 0x20 /* current second is leap second */ - -# define GPS166_TM_DEFINED -#endif +} TM_GPS; -/* the status flags below are defined starting with rev. 1.32 */ -#define TM_ANT_DISCONN 0x1000 /* antenna currently disconnected */ -#define TM_SYN_FLAG 0x2000 /* TIME_SYN output is low */ -#define TM_NO_SYNC 0x4000 /* not sync'ed after reset */ -#define TM_NO_POS 0x8000 /* position not computed after reset, */ - /* LOCK LED off */ +/** + * @brief Status flag bits used to define ::TM_GPS_STATUS_BIT_MASKS + * + * These bits report info on the time conversion from GPS time to %UTC + * and/or local time as well as device status info. + * + * @see ::TM_GPS_STATUS_BIT_MASKS + */ +enum TM_GPS_STATUS_BITS +{ + TM_BIT_UTC, ///< %UTC correction has been made + TM_BIT_LOCAL, ///< %UTC has been converted to local time according to ::TZDL settings + TM_BIT_DL_ANN, ///< state of daylight saving is going to change + TM_BIT_DL_ENB, ///< daylight saving is in effect + TM_BIT_LS_ANN, ///< leap second pending + TM_BIT_LS_ENB, ///< current second is leap second + TM_BIT_LS_ANN_NEG, ///< set in addition to ::TM_BIT_LS_ANN if leap sec is negative + TM_BIT_INVT, ///< invalid time, e.g. if RTC battery bas been empty -/* a struct used to transmit information on date and time */ + TM_BIT_EXT_SYNC, ///< synchronized externally + TM_BIT_HOLDOVER, ///< in holdover mode after previous synchronization + TM_BIT_ANT_SHORT, ///< antenna cable short circuited + TM_BIT_NO_WARM, ///< OCXO has not warmed up + TM_BIT_ANT_DISCONN, ///< antenna currently disconnected + TM_BIT_SYN_FLAG, ///< TIME_SYN output is low + TM_BIT_NO_SYNC, ///< time sync actually not verified + TM_BIT_NO_POS ///< position actually not verified, LOCK LED off +}; + + +/** + * @brief Status flag masks used with ::TM_GPS::status + * + * These bits report info on the time conversion from GPS time to %UTC + * and/or local time as well as device status info. + * + * @see ::TM_GPS_STATUS_BITS + */ +enum TM_GPS_STATUS_BIT_MASKS +{ + TM_UTC = ( 1UL << TM_BIT_UTC ), ///< see ::TM_BIT_UTC + TM_LOCAL = ( 1UL << TM_BIT_LOCAL ), ///< see ::TM_BIT_LOCAL + TM_DL_ANN = ( 1UL << TM_BIT_DL_ANN ), ///< see ::TM_BIT_DL_ANN + TM_DL_ENB = ( 1UL << TM_BIT_DL_ENB ), ///< see ::TM_BIT_DL_ENB + TM_LS_ANN = ( 1UL << TM_BIT_LS_ANN ), ///< see ::TM_BIT_LS_ANN + TM_LS_ENB = ( 1UL << TM_BIT_LS_ENB ), ///< see ::TM_BIT_LS_ENB + TM_LS_ANN_NEG = ( 1UL << TM_BIT_LS_ANN_NEG ), ///< see ::TM_BIT_LS_ANN_NEG + TM_INVT = ( 1UL << TM_BIT_INVT ), ///< see ::TM_BIT_INVT + + TM_EXT_SYNC = ( 1UL << TM_BIT_EXT_SYNC ), ///< see ::TM_BIT_EXT_SYNC + TM_HOLDOVER = ( 1UL << TM_BIT_HOLDOVER ), ///< see ::TM_BIT_HOLDOVER + TM_ANT_SHORT = ( 1UL << TM_BIT_ANT_SHORT ), ///< see ::TM_BIT_ANT_SHORT + TM_NO_WARM = ( 1UL << TM_BIT_NO_WARM ), ///< see ::TM_BIT_NO_WARM + TM_ANT_DISCONN = ( 1UL << TM_BIT_ANT_DISCONN ), ///< see ::TM_BIT_ANT_DISCONN + TM_SYN_FLAG = ( 1UL << TM_BIT_SYN_FLAG ), ///< see ::TM_BIT_SYN_FLAG + TM_NO_SYNC = ( 1UL << TM_BIT_NO_SYNC ), ///< see ::TM_BIT_NO_SYNC + TM_NO_POS = ( 1UL << TM_BIT_NO_POS ) ///< see ::TM_BIT_NO_POS +}; + + +/** + * @brief A structure used to transmit information on date and time + * + * This structure can be used to transfer the current time, in which + * case the channel field has to be set to -1, or an event capture time + * retrieved from the on-board FIFO, in which case the channel field + * contains the index of the time capture input, e.g. 0 or 1. + */ +typedef struct +{ + int16_t channel; ///< -1: the current on-board time; >= 0 the capture channel number + T_GPS t; ///< time in GPS scale and format + TM_GPS tm; ///< time converted to %UTC and/or local time according to ::TZDL settings -typedef struct { - short channel; /* -1: the current time; 0, 1: capture 0, 1 */ - T_GPS t; /* time in GPS format */ - TM tm; /* that time converted to local time */ } TTM; @@ -249,282 +502,462 @@ typedef struct { /* to geographic coordinates as defined by WGS84 (World Geodetic */ /* System from 1984). */ -#ifndef _XYZ_DEFINED - /* sequence and number of components of a cartesian position */ - enum { XP, YP, ZP, N_XYZ }; +/** + * @brief Sequence and number of components of a cartesian position + */ +enum XYZ_FIELDS { XP, YP, ZP, N_XYZ }; // x, y, z - /* a type of array holding a cartesian position */ - typedef l_fp XYZ[N_XYZ]; /* values are in [m] */ - -# define _XYZ_DEFINED -#endif +/** + * @brief A position in cartesian coordinates + * + * Usually earth centered, earth fixed (ECEF) coordinates, + * in [m]. + * + * @note In the original code this is an array of double. + * + * @see ::XYZ_FIELDS + */ +typedef l_fp XYZ[N_XYZ]; -#ifndef _LLA_DEFINED - /* sequence and number of components of a geographic position */ - enum { LAT, LON, ALT, N_LLA }; /* latitude, longitude, altitude */ +/** + * @brief Sequence and number of components of a geographic position + */ +enum LLA_FIELDS { LAT, LON, ALT, N_LLA }; /* latitude, longitude, altitude */ - /* a type of array holding a geographic position */ - typedef l_fp LLA[N_LLA]; /* lon, lat in [rad], alt in [m] */ +/** + * @brief A geographic position based on latitude, longitude, and altitude + * + * The geographic position associated to specific cartesian coordinates + * depends on the characteristics of the ellipsoid used for the computation, + * the so-called geographic datum. GPS uses the WGS84 (World Geodetic System + * from 1984) ellipsoid by default. + * + * lon, lat in [rad], alt in [m] + * + * @note In the original code this is an array of double. + * + * @see ::LLA_FIELDS + */ +typedef l_fp LLA[N_LLA]; -# define _LLA_DEFINED -#endif -/* Synthesizer parameters. Synthesizer frequency is expressed as a */ -/* four digit decimal number (freq) to be multiplied by 0.1 Hz and an */ -/* base 10 exponent (range). If the effective frequency is less than */ -/* 10 kHz its phase is synchronized corresponding to the variable phase. */ -/* Phase may be in a range from -360° to +360° with a resolution of 0.1°, */ -/* so the resulting numbers to be stored are in a range of -3600 to +3600. */ +/** + * @defgroup group_synth Synthesizer parameters + * + * Synthesizer frequency is expressed as a + * four digit decimal number (freq) to be multiplied by 0.1 Hz and an + * base 10 exponent (range). If the effective frequency is less than + * 10 kHz its phase is synchronized corresponding to the variable phase. + * Phase may be in a range from -360 deg to +360 deg with a resolution + * of 0.1 deg, so the resulting numbers to be stored are in a range of + * -3600 to +3600. + * + * Example:
+ * Assume the value of freq is 2345 (decimal) and the value of phase is 900. + * If range == 0 the effective frequency is 234.5 Hz with a phase of +90 deg. + * If range == 1 the synthesizer will generate a 2345 Hz output frequency + * and so on. + * + * Limitations:
+ * If freq == 0 the synthesizer is disabled. If range == 0 the least + * significant digit of freq is limited to 0, 3, 5 or 6. The resulting + * frequency is shown in the examples below: + * - freq == 1230 --> 123.0 Hz + * - freq == 1233 --> 123 1/3 Hz (real 1/3 Hz, NOT 123.3 Hz) + * - freq == 1235 --> 123.5 Hz + * - freq == 1236 --> 123 2/3 Hz (real 2/3 Hz, NOT 123.6 Hz) + * + * If range == ::MAX_SYNTH_RANGE the value of freq must not exceed 1000, so + * the output frequency is limited to 10 MHz (see ::MAX_SYNTH_FREQ_VAL). + * + * @{ */ -/* Example: */ -/* Assume the value of freq is 2345 (decimal) and the value of phase is 900. */ -/* If range == 0 the effective frequency is 234.5 Hz with a phase of +90°. */ -/* If range == 1 the synthesizer will generate a 2345 Hz output frequency */ -/* and so on. */ +#define N_SYNTH_FREQ_DIGIT 4 ///< number of digits to edit +#define MAX_SYNTH_FREQ 1000 ///< if range == ::MAX_SYNTH_RANGE -/* Limitations: */ -/* If freq == 0 the synthesizer is disabled. If range == 0 the least */ -/* significant digit of freq is limited to 0, 3, 5 or 6. The resulting */ -/* frequency is shown in the examples below: */ -/* freq == 1230 --> 123.0 Hz */ -/* freq == 1233 --> 123 1/3 Hz (real 1/3 Hz, NOT 123.3 Hz) */ -/* freq == 1235 --> 123.5 Hz */ -/* freq == 1236 --> 123 2/3 Hz (real 2/3 Hz, NOT 123.6 Hz) */ - -/* If range == MAX_RANGE the value of freq must not exceed 1200, so the */ -/* output frequency is limited to 12 MHz. */ - -/* Phase will be ignored if the resulting frequency is greater or equal */ -/* to 10 kHz. */ - -#define MAX_SYNTH_FREQ 1200 /* if range == MAX_SYNTH_RANGE */ #define MIN_SYNTH_RANGE 0 #define MAX_SYNTH_RANGE 5 -#define MAX_SYNTH_PHASE 3600 +#define N_SYNTH_RANGE ( MAX_SYNTH_RANGE - MIN_SYNTH_RANGE + 1 ) + +#define N_SYNTH_PHASE_DIGIT 4 +#define MAX_SYNTH_PHASE 3600 + + +#define MAX_SYNTH_FREQ_EDIT 9999 ///< max sequence of digits when editing + + +/** + * @brief The maximum frequency that can be configured for the synthesizer + */ +#define MAX_SYNTH_FREQ_VAL 10000000UL ///< 10 MHz +/* == MAX_SYNTH_FREQ * 10^(MAX_SYNTH_RANGE-1) */ + +/** + * @brief The synthesizer's phase is only be synchronized if the frequency is below this limit + */ +#define SYNTH_PHASE_SYNC_LIMIT 10000UL ///< 10 kHz + +/** + * A Macro used to determine the position of the decimal point + * when printing the synthesizer frequency as 4 digit value + */ +#define _synth_dp_pos_from_range( _r ) \ + ( ( ( N_SYNTH_RANGE - (_r) ) % ( N_SYNTH_FREQ_DIGIT - 1 ) ) + 1 ) + +/** + * @brief Synthesizer frequency units + * + * An initializer for commonly displayed synthesizer frequency units + * (::N_SYNTH_RANGE strings) + */ +#define DEFAULT_FREQ_RANGES \ +{ \ + "Hz", \ + "kHz", \ + "kHz", \ + "kHz", \ + "MHz", \ + "MHz", \ +} + + + +/** + * @brief Synthesizer configuration parameters + */ +typedef struct +{ + int16_t freq; ///< four digits used; scale: 0.1 Hz; e.g. 1234 -> 123.4 Hz + int16_t range; ///< scale factor for freq; 0..::MAX_SYNTH_RANGE + int16_t phase; ///< -::MAX_SYNTH_PHASE..+::MAX_SYNTH_PHASE; >0 -> pulses later -typedef struct { - short freq; /* four digits used; scale: 0.1; e.g. 1234 -> 123.4 Hz */ - short range; /* scale factor for freq; 0..MAX_SYNTH_RANGE */ - short phase; /* -MAX_SYNTH_PHASE..+MAX_SYNTH_PHASE; >0 -> pulses later */ } SYNTH; +#define _mbg_swab_synth( _p ) \ +{ \ + _mbg_swab16( &(_p)->freq ); \ + _mbg_swab16( &(_p)->range ); \ + _mbg_swab16( &(_p)->phase ); \ +} -/* Time zone/daylight saving parameters. */ - -/* the name of a time zone, 5 characters plus trailing zero */ -typedef char TZ_NAME[6]; - -typedef struct { - long offs; /* offset from UTC to local time [sec] */ - long offs_dl; /* additional offset if daylight saving enabled [sec] */ - TM tm_on; /* date/time when daylight saving starts */ - TM tm_off; /* date/time when daylight saving ends */ - TZ_NAME name[2]; /* names without and with daylight saving enabled */ -} TZDL; - -/* The constant below is defined beginning with software rev. 1.29. */ -/* If the year in tzdl.tmon and tzdl.tm_off is or'ed with that constant, */ -/* the receiver automatically generates daylight saving year by year. */ -/* See GPSLIB.TXT for more information. */ - -#define DL_AUTO_FLAG 0x8000 - -/* Example: */ -/* for automatic daylight saving enable/disable in Central Europe, */ -/* the variables are to be set as shown below: */ -/* offs = 3600L one hour from UTC */ -/* offs_dl = 3600L one additional hour if daylight saving enabled */ -/* tm_on = first Sunday from March 25, 02:00:00h ( year |= DL_AUTO_FLAG ) */ -/* tm_off = first Sunday from Sept 24, 03:00:00h ( year |= DL_AUTO_FLAG ) */ -/* name[0] == "MEZ " name if daylight saving not enabled */ -/* name[1] == "MESZ " name if daylight saving is enabled */ - - - - -/* the structure below was defined in rev. 1.31. It reflects the status */ -/* of the antenna, the times of last disconnect/reconnect and the boards */ -/* clock offset after the phase of disconnection. */ - -typedef struct { - short status; /* current status of antenna */ - TM tm_disconn; /* time of antenna disconnect */ - TM tm_reconn; /* time of antenna reconnect */ - long delta_t; /* clock offset at reconnect time, units: TICKS_PER_SEC */ -} ANT_INFO; - - -/* the status field may be set to one of the values below: */ - -enum { - ANT_INVALID, /* struct not set yet because ant. has not been disconn. */ - ANT_DISCONN, /* ant. now disconn., tm_reconn and delta_t not set */ - ANT_RECONN /* ant. has been disconn. and reconn., all fields valid */ +/** + * @brief Enumeration of synthesizer states + */ +enum SYNTH_STATES +{ + SYNTH_DISABLED, ///< disbled by cfg, i.e. freq == 0.0 + SYNTH_OFF, ///< not enabled after power-up + SYNTH_FREE, ///< enabled, but not synchronized + SYNTH_DRIFTING, ///< has initially been sync'd, but now running free + SYNTH_SYNC, ///< fully synchronized + N_SYNTH_STATE ///< the number of known states }; -/* Summary of configuration and health data of all SVs. */ +/** + * @brief A structure used to report the synthesizer state + */ +typedef struct +{ + uint8_t state; ///< state code as enumerated in ::SYNTH_STATES + uint8_t flags; ///< reserved, currently always 0 -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ +} SYNTH_STATE; - T_GPS tot_51; /* time of transmission, page 51 */ - T_GPS tot_63; /* time of transmission, page 63 */ - T_GPS t0a; /* complete reference time almanac */ +#define _mbg_swab_synth_state( _p ) _nop_macro_fnc() + +#define SYNTH_FLAG_PHASE_IGNORED 0x01 + +/** @} defgroup group_synth */ + + + +/** + * @defgroup group_tzdl Time zone / daylight saving parameters + * + * Example:
+ * For automatic daylight saving enable/disable in Central Europe, + * the variables are to be set as shown below:
+ * - offs = 3600L one hour from %UTC + * - offs_dl = 3600L one additional hour if daylight saving enabled + * - tm_on = first Sunday from March 25, 02:00:00h ( year |= ::DL_AUTO_FLAG ) + * - tm_off = first Sunday from October 25, 03:00:00h ( year |= ::DL_AUTO_FLAG ) + * - name[0] == "CET " name if daylight saving not enabled + * - name[1] == "CEST " name if daylight saving is enabled + * + * @{ */ + +/** + * @brief The name of a time zone + * + * @note Up to 5 printable characters, plus trailing zero + */ +typedef char TZ_NAME[6]; + +/** + * @brief Time zone / daylight saving parameters + * + * This structure is used to specify how a device converts on-board %UTC + * to local time, including computation of beginning and end of daylight + * saving time (DST), if required. + * + * @note The ::TZDL structure contains members of type ::TM_GPS to specify + * the times for beginning and end of DST. However, the ::TM_GPS::frac, + * ::TM_GPS::offs_from_utc, and ::TM_GPS::status fields of these ::TZDL::tm_on + * and ::TZDL::tm_off members are ignored for the conversion to local time, + * and thus should be 0. + */ +typedef struct +{ + int32_t offs; ///< standard offset from %UTC to local time [sec] + int32_t offs_dl; ///< additional offset if daylight saving enabled [sec] + TM_GPS tm_on; ///< date/time when daylight saving starts + TM_GPS tm_off; ///< date/time when daylight saving ends + TZ_NAME name[2]; ///< names without and with daylight saving enabled + +} TZDL; + +/** + * @brief A flag indicating automatic computation of DST + * + * If this flag is or'ed to the year numbers in ::TZDL::tm_on and ::TZDL::tm_off + * then daylight saving is computed automatically year by year. + */ +#define DL_AUTO_FLAG 0x8000 + +/** @} defgroup group_tzdl */ + + + +/** + * @brief Antenna status and error at reconnect information + * + * The structure below reflects the status of the antenna, + * the times of last disconnect/reconnect, and the board's + * clock offset when it has synchronized again after the + * disconnection interval. + * + * @note ::ANT_INFO::status changes back to ::ANT_RECONN only + * after the antenna has been reconnected and the + * receiver has re-synchronized to the satellite signal. + * In this case ::ANT_INFO::delta_t reports the time offset + * before resynchronization, i.e. how much the internal + * time has drifted while the antenna was disconnected. + */ +typedef struct +{ + int16_t status; ///< current status of antenna, see ::ANT_STATUS_CODES + TM_GPS tm_disconn; ///< time of antenna disconnect + TM_GPS tm_reconn; ///< time of antenna reconnect + int32_t delta_t; ///< clock offs at reconn. time in 1/::RECEIVER_INFO::ticks_per_sec units + +} ANT_INFO; + + +/** + * @brief Status code used with ::ANT_INFO::status + */ +enum ANT_STATUS_CODES +{ + ANT_INVALID, ///< No other fields valid since antenna has not yet been disconnected + ANT_DISCONN, ///< Antenna is disconnected, tm_reconn and delta_t not yet set + ANT_RECONN, ///< Antenna has been disconnect, and receiver sync. after reconnect, so all fields valid + N_ANT_STATUS_CODES ///< the number of known status codes +}; + + + +/** + * @brief Summary of configuration and health data of all satellites + */ +typedef struct +{ + CSUM csum; ///< checksum of the remaining bytes + int16_t valid; ///< flag data are valid + + T_GPS tot_51; ///< time of transmission, page 51 + T_GPS tot_63; ///< time of transmission, page 63 + T_GPS t0a; ///< complete reference time almanac + + CFG cfg[N_SVNO_GPS]; ///< 4 bit SV configuration code from page 63 + HEALTH health[N_SVNO_GPS]; ///< 6 bit SV health codes from pages 51, 63 - CFG cfg[N_SVNO]; /* SV configuration from page 63 */ - HEALTH health[N_SVNO]; /* SV health from pages 51, 63 */ } CFGH; -/* UTC correction parameters */ +/** + * @brief GPS %UTC correction parameters + * + * %UTC correction parameters basically as sent by the GPS satellites. + * + * The csum field is only used by the card's firmware to check the + * consistency of the structure in non-volatile memory. + * + * The field labeled valid indicates if the parameter set is valid, i.e. + * if it contains data received from the satellites. + * + * t0t, A0 and A1 contain fractional correction parameters for the current + * GPS-%UTC time offset in addition to the whole seconds. This is evaluated + * by the receivers' firmware to convert GPS time to %UTC time. + * + * The delta_tls field contains the current full seconds offset between + * GPS time and %UTC, which corresponds to the number of leap seconds inserted + * into the %UTC time scale since GPS was put into operation in January 1980. + * + * delta_tlfs holds the number of "future" leap seconds, i.e. the %UTC offset + * after the next leap second event defined by WNlsf and DNt. + * + * The fields WNlsf and DNt specify the GPS week number and the day number + * in that week for the end of which a leap second has been scheduled. + * + * @note: The satellites transmit WNlsf only as a signed 8 bit value, so it + * can only define a point in time which is +/- 127 weeks off the current time. + * The firmware tries to expand this based on the current week number, but + * the result is ambiguous if the leap second occurs or occurred more + * than 127 weeks in the future or past. + * + * So the leap second date should only be evaluated and displayed + * in a user interface if the fields delta_tls and delta_tlsf have + * different values, in which case there is indeed a leap second announcement + * inside the +/- 127 week range. + * + * @note In the original code the type of A0 and A1 is double. + */ +typedef struct +{ + CSUM csum; ///< Checksum of the remaining bytes + int16_t valid; ///< Flag indicating %UTC parameters are valid -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ + T_GPS t0t; ///< Reference Time %UTC Parameters [wn|sec] + l_fp A0; ///< +- Clock Correction Coefficient 0 [sec] + l_fp A1; ///< +- Clock Correction Coefficient 1 [sec/sec] - T_GPS t0t; /* Reference Time UTC Parameters [sec] */ - l_fp A0; /* ± Clock Correction Coefficient 0 [sec] */ - l_fp A1; /* ± Clock Correction Coefficient 1 [sec/sec] */ - - u_short WNlsf; /* week number of nearest leap second */ - short DNt; /* the day number at the end of which LS is inserted */ - char delta_tls; /* */ - char delta_tlsf; /* */ + uint16_t WNlsf; ///< Week number of nearest leap second + int16_t DNt; ///< The day number at the end of which a leap second occurs + int8_t delta_tls; ///< Current %UTC offset to GPS system time [sec] + int8_t delta_tlsf; ///< Future %UTC offset to GPS system time after next leap second transition [sec] } UTC; -/* a struct used to hold the settings of a serial port */ -#ifndef _COM_PARM_DEFINED - typedef long BAUD_RATE; +/** + * @brief GPS ASCII message + */ +typedef struct +{ + CSUM csum; ///< checksum of the remaining bytes */ + int16_t valid; ///< flag data are valid + char s[23]; ///< 22 chars GPS ASCII message plus trailing zero - /* indices used to identify a parameter in the framing string */ - enum { F_DBITS, F_PRTY, F_STBITS }; - - /* types of handshake */ - enum { HS_NONE, HS_XONXOFF, HS_RTSCTS }; - - typedef struct { - BAUD_RATE baud_rate; /* e.g. 19200L */ - char framing[4]; /* e.g. "8N1" */ - short handshake; /* a numeric value, only HS_NONE supported yet */ - } COM_PARM; - -#define _COM_PARM_DEFINED -#endif +} ASCII_MSG; +/** + * @brief Ephemeris parameters of one specific satellite + * + * Needed to compute the position of a satellite at a given time with + * high precision. Valid for an interval of 4 to 6 hours from start + * of transmission. + */ +typedef struct +{ + CSUM csum; ///< checksum of the remaining bytes + int16_t valid; ///< flag data are valid -/* the codes below define what has to comes out of the serial ports */ + HEALTH health; ///< health indication of transmitting SV [---] + IOD IODC; ///< Issue Of Data, Clock + IOD IODE2; ///< Issue of Data, Ephemeris (Subframe 2) + IOD IODE3; ///< Issue of Data, Ephemeris (Subframe 3) + T_GPS tt; ///< time of transmission + T_GPS t0c; ///< Reference Time Clock [---] + T_GPS t0e; ///< Reference Time Ephemeris [---] -enum { STR_ON_REQ, STR_PER_SEC, - STR_PER_MIN, N_STR_MODE_0, /* COM0 and COM1 */ - STR_UCAP = N_STR_MODE_0, - STR_UCAP_REQ, N_STR_MODE_1 /* COM1 only */ - }; + l_fp sqrt_A; ///< Square Root of semi-major Axis [sqrt(m)] + l_fp e; ///< Eccentricity [---] + l_fp M0; ///< +- Mean Anomaly at Ref. Time [rad] + l_fp omega; ///< +- Argument of Perigee [rad] + l_fp OMEGA0; ///< +- Longit. of Asc. Node of orbit plane [rad] + l_fp OMEGADOT; ///< +- Rate of Right Ascension [rad/sec] + l_fp deltan; ///< +- Mean Motion Diff. from computed value [rad/sec] + l_fp i0; ///< +- Inclination Angle [rad] + l_fp idot; ///< +- Rate of Inclination Angle [rad/sec] + l_fp crc; ///< +- Cosine Corr. Term to Orbit Radius [m] + l_fp crs; ///< +- Sine Corr. Term to Orbit Radius [m] + l_fp cuc; ///< +- Cosine Corr. Term to Arg. of Latitude [rad] + l_fp cus; ///< +- Sine Corr. Term to Arg. of Latitude [rad] + l_fp cic; ///< +- Cosine Corr. Term to Inclination Angle [rad] + l_fp cis; ///< +- Sine Corr. Term to Inclination Angle [rad] + l_fp af0; ///< +- Clock Correction Coefficient 0 [sec] + l_fp af1; ///< +- Clock Correction Coefficient 1 [sec/sec] + l_fp af2; ///< +- Clock Correction Coefficient 2 [sec/sec^2] + l_fp tgd; ///< +- estimated group delay differential [sec] -#define N_COM 2 /* the number of serial ports */ + uint16_t URA; ///< predicted User Range Accuracy -/* the structure used to store the modes of both serial ports */ - -typedef struct { - COM_PARM com[N_COM]; /* COM0 and COM1 settings */ - u_char mode[N_COM]; /* COM0 and COM1 output mode */ -} PORT_PARM; - -/* Ephemeris parameters of one specific SV. Needed to compute the position */ -/* of a satellite at a given time with high precision. Valid for an */ -/* interval of 4 to 6 hours from start of transmission. */ - -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ - - HEALTH health; /* health indication of transmitting SV [---] */ - IOD IODC; /* Issue Of Data, Clock */ - IOD IODE2; /* Issue of Data, Ephemeris (Subframe 2) */ - IOD IODE3; /* Issue of Data, Ephemeris (Subframe 3) */ - T_GPS tt; /* time of transmission */ - T_GPS t0c; /* Reference Time Clock [---] */ - T_GPS t0e; /* Reference Time Ephemeris [---] */ - - l_fp sqrt_A; /* Square Root of semi-major Axis [sqrt(m)] */ - l_fp e; /* Eccentricity [---] */ - l_fp M0; /* ± Mean Anomaly at Ref. Time [rad] */ - l_fp omega; /* ± Argument of Perigee [rad] */ - l_fp OMEGA0; /* ± Longit. of Asc. Node of orbit plane [rad] */ - l_fp OMEGADOT; /* ± Rate of Right Ascension [rad/sec] */ - l_fp deltan; /* ± Mean Motion Diff. from computed value [rad/sec] */ - l_fp i0; /* ± Inclination Angle [rad] */ - l_fp idot; /* ± Rate of Inclination Angle [rad/sec] */ - l_fp crc; /* ± Cosine Corr. Term to Orbit Radius [m] */ - l_fp crs; /* ± Sine Corr. Term to Orbit Radius [m] */ - l_fp cuc; /* ± Cosine Corr. Term to Arg. of Latitude [rad] */ - l_fp cus; /* ± Sine Corr. Term to Arg. of Latitude [rad] */ - l_fp cic; /* ± Cosine Corr. Term to Inclination Angle [rad] */ - l_fp cis; /* ± Sine Corr. Term to Inclination Angle [rad] */ - - l_fp af0; /* ± Clock Correction Coefficient 0 [sec] */ - l_fp af1; /* ± Clock Correction Coefficient 1 [sec/sec] */ - l_fp af2; /* ± Clock Correction Coefficient 2 [sec/sec²] */ - l_fp tgd; /* ± estimated group delay differential [sec] */ - - u_short URA; /* predicted User Range Accuracy */ - - u_char L2code; /* code on L2 channel [---] */ - u_char L2flag; /* L2 P data flag [---] */ + uint8_t L2code; ///< code on L2 channel [---] + uint8_t L2flag; ///< L2 P data flag [---] } EPH; -/* Almanac parameters of one specific SV. A reduced precision set of */ -/* parameters used to check if a satellite is in view at a given time. */ -/* Valid for an interval of more than 7 days from start of transmission. */ -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ - HEALTH health; /* [---] */ - T_GPS t0a; /* Reference Time Almanac [sec] */ +/** + * @brief Almanac parameters of one specific satellite + * + * A reduced precision set of parameters used to check if a satellite + * is in view at a given time. Valid for an interval of more than 7 days + * from start of transmission. + */ +typedef struct +{ + CSUM csum; ///< checksum of the remaining bytes + int16_t valid; ///< flag data are valid - l_fp sqrt_A; /* Square Root of semi-major Axis [sqrt(m)] */ - l_fp e; /* Eccentricity [---] */ + HEALTH health; ///< [---] + T_GPS t0a; ///< Reference Time Almanac [sec] + + l_fp sqrt_A; ///< Square Root of semi-major Axis [sqrt(m)] + l_fp e; ///< Eccentricity [---] + + l_fp M0; ///< +- Mean Anomaly at Ref. Time [rad] + l_fp omega; ///< +- Argument of Perigee [rad] + l_fp OMEGA0; ///< +- Longit. of Asc. Node of orbit plane [rad] + l_fp OMEGADOT; ///< +- Rate of Right Ascension [rad/sec] + l_fp deltai; ///< +- [rad] + l_fp af0; ///< +- Clock Correction Coefficient 0 [sec] + l_fp af1; ///< +- Clock Correction Coefficient 1 [sec/sec] - l_fp M0; /* ± Mean Anomaly at Ref. Time [rad] */ - l_fp omega; /* ± Argument of Perigee [rad] */ - l_fp OMEGA0; /* ± Longit. of Asc. Node of orbit plane [rad] */ - l_fp OMEGADOT; /* ± Rate of Right Ascension [rad/sec] */ - l_fp deltai; /* ± [rad] */ - l_fp af0; /* ± Clock Correction Coefficient 0 [sec] */ - l_fp af1; /* ± Clock Correction Coefficient 1 [sec/sec] */ } ALM; -/* ionospheric correction parameters */ -typedef struct { - CSUM csum; /* checksum of the remaining bytes */ - short valid; /* flag data are valid */ +/** + * @brief Ionospheric correction parameters + */ +typedef struct +{ + CSUM csum; ///< checksum of the remaining bytes + int16_t valid; ///< flag data are valid - l_fp alpha_0; /* Ionosph. Corr. Coeff. Alpha 0 [sec] */ - l_fp alpha_1; /* Ionosph. Corr. Coeff. Alpha 1 [sec/deg] */ - l_fp alpha_2; /* Ionosph. Corr. Coeff. Alpha 2 [sec/deg^2] */ - l_fp alpha_3; /* Ionosph. Corr. Coeff. Alpha 3 [sec/deg^3] */ + l_fp alpha_0; ///< Ionosph. Corr. Coeff. Alpha 0 [sec] + l_fp alpha_1; ///< Ionosph. Corr. Coeff. Alpha 1 [sec/deg] + l_fp alpha_2; ///< Ionosph. Corr. Coeff. Alpha 2 [sec/deg^2] + l_fp alpha_3; ///< Ionosph. Corr. Coeff. Alpha 3 [sec/deg^3] - l_fp beta_0; /* Ionosph. Corr. Coeff. Beta 0 [sec] */ - l_fp beta_1; /* Ionosph. Corr. Coeff. Beta 1 [sec/deg] */ - l_fp beta_2; /* Ionosph. Corr. Coeff. Beta 2 [sec/deg^2] */ - l_fp beta_3; /* Ionosph. Corr. Coeff. Beta 3 [sec/deg^3] */ + l_fp beta_0; ///< Ionosph. Corr. Coeff. Beta 0 [sec] + l_fp beta_1; ///< Ionosph. Corr. Coeff. Beta 1 [sec/deg] + l_fp beta_2; ///< Ionosph. Corr. Coeff. Beta 2 [sec/deg^2] + l_fp beta_3; ///< Ionosph. Corr. Coeff. Beta 3 [sec/deg^3] } IONO; -void mbg_tm_str (char **, TM *, int); + + +void mbg_tm_str (char **, TM_GPS *, int, int); void mbg_tgps_str (char **, T_GPS *, int); void get_mbg_header (unsigned char **, GPS_MSG_HDR *); void put_mbg_header (unsigned char **, GPS_MSG_HDR *); @@ -534,7 +967,7 @@ void get_mbg_svno (unsigned char **, SVNO *); void get_mbg_health (unsigned char **, HEALTH *); void get_mbg_cfg (unsigned char **, CFG *); void get_mbg_tgps (unsigned char **, T_GPS *); -void get_mbg_tm (unsigned char **, TM *); +void get_mbg_tm (unsigned char **, TM_GPS *); void get_mbg_ttm (unsigned char **, TTM *); void get_mbg_synth (unsigned char **, SYNTH *); void get_mbg_tzdl (unsigned char **, TZDL *); @@ -548,7 +981,7 @@ void get_mbg_eph (unsigned char **, EPH *); void get_mbg_alm (unsigned char **, ALM *); void get_mbg_iono (unsigned char **, IONO *); -unsigned long mbg_csum (unsigned char *, unsigned int); +CSUM mbg_csum (unsigned char *, unsigned int); #endif /* diff --git a/contrib/ntp/include/ntp.h b/contrib/ntp/include/ntp.h index 38343f23a705..4ffc35f6febc 100644 --- a/contrib/ntp/include/ntp.h +++ b/contrib/ntp/include/ntp.h @@ -435,7 +435,7 @@ struct peer { #define STRATUM_UNSPEC ((u_char)16) /* unspecified */ /* - * Values for peer.flags + * Values for peer.flags (u_int) */ #define FLAG_CONFIG 0x0001 /* association was configured */ #define FLAG_PREEMPT 0x0002 /* preemptable association */ @@ -453,8 +453,9 @@ struct peer { #define FLAG_XB 0x2000 /* interleaved broadcast */ #define FLAG_XBOGUS 0x4000 /* interleaved bogus packet */ #ifdef OPENSSL -#define FLAG_ASSOC 0x8000 /* autokey request */ +# define FLAG_ASSOC 0x8000 /* autokey request */ #endif /* OPENSSL */ +#define FLAG_TSTAMP_PPS 0x10000 /* PPS source provides absolute timestamp */ /* * Definitions for the clear() routine. We use memset() to clear @@ -713,17 +714,19 @@ struct pkt { */ #define LOOP_DRIFTINIT 1 /* iniitialize frequency */ #define LOOP_KERN_CLEAR 2 /* set initial frequency offset */ -#define LOOP_MAX 3 /* set step offset */ -#define LOOP_PANIC 4 /* set panic offseet */ -#define LOOP_PHI 5 /* set dispersion rate */ -#define LOOP_MINSTEP 6 /* set step timeout */ -#define LOOP_MINPOLL 7 /* set min poll interval (log2 s) */ -#define LOOP_ALLAN 8 /* set minimum Allan intercept */ -#define LOOP_HUFFPUFF 9 /* set huff-n'-puff filter length */ -#define LOOP_FREQ 10 /* set initial frequency */ -#define LOOP_CODEC 11 /* set audio codec frequency */ -#define LOOP_LEAP 12 /* insert leap after second 23:59 */ -#define LOOP_TICK 13 /* sim. low precision clock */ +#define LOOP_MAX 3 /* set both step offsets */ +#define LOOP_MAX_BACK 4 /* set bacward-step offset */ +#define LOOP_MAX_FWD 5 /* set forward-step offset */ +#define LOOP_PANIC 6 /* set panic offseet */ +#define LOOP_PHI 7 /* set dispersion rate */ +#define LOOP_MINSTEP 8 /* set step timeout */ +#define LOOP_MINPOLL 9 /* set min poll interval (log2 s) */ +#define LOOP_ALLAN 10 /* set minimum Allan intercept */ +#define LOOP_HUFFPUFF 11 /* set huff-n'-puff filter length */ +#define LOOP_FREQ 12 /* set initial frequency */ +#define LOOP_CODEC 13 /* set audio codec frequency */ +#define LOOP_LEAP 14 /* insert leap after second 23:59 */ +#define LOOP_TICK 15 /* sim. low precision clock */ /* * Configuration items for the stats printer @@ -875,13 +878,13 @@ struct endpoint { */ #define AM_ERR -1 /* error */ #define AM_NOMATCH 0 /* no match */ -#define AM_PROCPKT 1 /* server/symmetric packet */ -#define AM_BCST 2 /* broadcast packet */ +#define AM_PROCPKT 1 /* server/symmetric packet */ +#define AM_BCST 2 /* broadcast packet */ #define AM_FXMIT 3 /* client packet */ #define AM_MANYCAST 4 /* manycast or pool */ #define AM_NEWPASS 5 /* new passive */ #define AM_NEWBCL 6 /* new broadcast */ -#define AM_POSSBCL 7 /* discard broadcast */ +#define AM_POSSBCL 7 /* discard broadcast */ /* NetInfo configuration locations */ #ifdef HAVE_NETINFO diff --git a/contrib/ntp/include/ntp_calendar.h b/contrib/ntp/include/ntp_calendar.h index 3ee1ff79c806..3afb627d2594 100644 --- a/contrib/ntp/include/ntp_calendar.h +++ b/contrib/ntp/include/ntp_calendar.h @@ -83,13 +83,15 @@ extern systime_func_ptr ntpcal_set_timefunc(systime_func_ptr); #define SECSPERMIN (60) /* seconds per minute */ #define MINSPERHR (60) /* minutes per hour */ #define HRSPERDAY (24) /* hours per day */ +#define DAYSPERWEEK (7) /* days per week */ #define DAYSPERYEAR (365) /* days per year */ #define SECSPERHR (SECSPERMIN * MINSPERHR) #define SECSPERDAY (SECSPERHR * HRSPERDAY) +#define SECSPERWEEK (DAYSPERWEEK * SECSPERDAY) #define SECSPERYEAR (365 * SECSPERDAY) /* regular year */ #define SECSPERLEAPYEAR (366 * SECSPERDAY) /* leap year */ -#define SECSPERAVGYEAR 31556952 /* mean year length over 400yrs */ +#define SECSPERAVGYEAR 31556952 /* mean year length over 400yrs */ /* * Gross hacks. I have illicit knowlege that there won't be overflows @@ -113,7 +115,7 @@ extern uint32_t caltontp (const struct calendar *); * Convert between 'time_t' and 'vint64' */ extern vint64 time_to_vint64(const time_t *); -extern time_t vint64_to_time(const vint64 *); +extern time_t vint64_to_time(const vint64 *); /* * Get the build date & time. ATTENTION: The time zone is not specified! diff --git a/contrib/ntp/include/ntp_fp.h b/contrib/ntp/include/ntp_fp.h index 1b97e8b5cf72..780693226207 100644 --- a/contrib/ntp/include/ntp_fp.h +++ b/contrib/ntp/include/ntp_fp.h @@ -264,10 +264,13 @@ typedef u_int32 u_fp; * headers. So far the problem has only been seen with gcc, but it * may also affect Sun compilers, in which case the defined(__GNUC__) * term should be removed. + * XSCALE also generates bad code for these, at least with GCC 3.3.5. + * This is unrelated to math.h, but the same solution applies. */ #if defined(HAVE_U_INT64) && \ !(defined(__SVR4) && defined(__sun) && \ - defined(sparc) && defined(__GNUC__)) + defined(sparc) && defined(__GNUC__) || \ + defined(__arm__) && defined(__XSCALE__) && defined(__GNUC__)) #include /* ldexp() */ diff --git a/contrib/ntp/include/ntp_md5.h b/contrib/ntp/include/ntp_md5.h index 9f43378f81c5..2306b9a87fa6 100644 --- a/contrib/ntp/include/ntp_md5.h +++ b/contrib/ntp/include/ntp_md5.h @@ -24,7 +24,7 @@ typedef MD5_CTX EVP_MD_CTX; # define EVP_get_digestbynid(t) NULL -# define EVP_md5(v) NULL +# define EVP_md5() NULL # define EVP_MD_CTX_init(c) # define EVP_MD_CTX_set_flags(c, f) # define EVP_DigestInit(c, dt) (MD5Init(c), 1) diff --git a/contrib/ntp/include/ntpd.h b/contrib/ntp/include/ntpd.h index 77fe4843a654..f0bbeb08211f 100644 --- a/contrib/ntp/include/ntpd.h +++ b/contrib/ntp/include/ntpd.h @@ -188,6 +188,7 @@ extern void unpeer (struct peer *); extern void clear_all (void); extern int score_all (struct peer *); extern struct peer *findmanycastpeer(struct recvbuf *); +extern void peer_cleanup (void); /* ntp_crypto.c */ #ifdef AUTOKEY @@ -385,7 +386,8 @@ extern endpt * ep_list; /* linked list */ /* ntp_loopfilter.c */ extern double drift_comp; /* clock frequency (s/s) */ extern double clock_stability; /* clock stability (s/s) */ -extern double clock_max; /* max offset before step (s) */ +extern double clock_max_back; /* max backward offset before step (s) */ +extern double clock_max_fwd; /* max forward offset before step (s) */ extern double clock_panic; /* max offset before panic (s) */ extern double clock_phi; /* dispersion rate (s/s) */ extern double clock_minstep; /* step timeout (s) */ @@ -403,8 +405,9 @@ extern int kern_enable; /* kernel support enabled */ extern int hardpps_enable; /* kernel PPS discipline enabled */ extern int ext_enable; /* external clock enabled */ extern int cal_enable; /* refclock calibrate enable */ -extern int allow_panic; /* allow panic correction */ -extern int mode_ntpdate; /* exit on first clock set */ +extern int allow_panic; /* allow panic correction (-g) */ +extern int force_step_once; /* always step time once at startup (-G) */ +extern int mode_ntpdate; /* exit on first clock set (-q) */ extern int peer_ntpdate; /* count of ntpdate peers */ /* @@ -518,7 +521,7 @@ extern u_int32 conf_file_sum; /* Simple sum of characters */ /* ntp_signd.c */ #ifdef HAVE_NTP_SIGND -extern void send_via_ntp_signd(struct recvbuf *, int, keyid_t, int, +extern void send_via_ntp_signd(struct recvbuf *, int, keyid_t, int, struct pkt *); #endif diff --git a/contrib/ntp/include/parse.h b/contrib/ntp/include/parse.h index 3a98408f07de..ca6855d18e58 100644 --- a/contrib/ntp/include/parse.h +++ b/contrib/ntp/include/parse.h @@ -4,7 +4,7 @@ * parse.h,v 4.12 2007/01/14 08:36:03 kardel RELEASE_20070114_A * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -104,6 +104,13 @@ extern unsigned int splclock (void); #define TIMES10(_X_) (((_X_) << 3) + ((_X_) << 1)) #endif +/* + * 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 */ + /* * state flags */ @@ -127,7 +134,7 @@ extern unsigned int splclock (void); /* * optional status information */ -#define PARSEB_ALTERNATE 0x00001000 /* alternate antenna used */ +#define PARSEB_CALLBIT 0x00001000 /* "call bit" used to signalize irregularities in the control facilities */ #define PARSEB_POSITION 0x00002000 /* position available */ #define PARSEB_MESSAGE 0x00004000 /* addtitional message data */ /* @@ -145,7 +152,7 @@ extern unsigned int splclock (void); #define PARSEB_PPS 0x20000000 /* valid PPS sample */ #define PARSE_TCINFO (PARSEB_ANNOUNCE|PARSEB_POWERUP|PARSEB_NOSYNC|PARSEB_DST|\ - PARSEB_UTC|PARSEB_LEAPS|PARSEB_ALTERNATE|PARSEB_S_LEAP|\ + PARSEB_UTC|PARSEB_LEAPS|PARSEB_CALLBIT|PARSEB_S_LEAP|\ PARSEB_S_LOCATION|PARSEB_TIMECODE|PARSEB_MESSAGE) #define PARSE_POWERUP(x) ((x) & PARSEB_POWERUP) @@ -156,7 +163,7 @@ extern unsigned int splclock (void); #define PARSE_UTC(x) ((x) & PARSEB_UTC) #define PARSE_LEAPADD(x) (PARSE_SYNC(x) && (((x) & PARSEB_LEAPS) == PARSEB_LEAPADD)) #define PARSE_LEAPDEL(x) (PARSE_SYNC(x) && (((x) & PARSEB_LEAPS) == PARSEB_LEAPDEL)) -#define PARSE_ALTERNATE(x) ((x) & PARSEB_ALTERNATE) +#define PARSE_CALLBIT(x) ((x) & PARSEB_CALLBIT) #define PARSE_LEAPSECOND(x) (PARSE_SYNC(x) && ((x) & PARSEB_LEAP_SECOND)) #define PARSE_S_LEAP(x) ((x) & PARSEB_S_LEAP) @@ -229,13 +236,13 @@ typedef struct parsetime parsetime_t; #define PARSE_IO_CSIZE 0x00000003 #define PARSE_IO_CS5 0x00000000 #define PARSE_IO_CS6 0x00000001 -#define PARSE_IO_CS7 0x00000002 -#define PARSE_IO_CS8 0x00000003 +#define PARSE_IO_CS7 0x00000002 +#define PARSE_IO_CS8 0x00000003 /* * ioctl structure */ -union parsectl +union parsectl { struct parsegettc { @@ -258,7 +265,7 @@ union parsectl u_long parse_cs; /* character size (needed for stripping) */ } parsesetcs; }; - + typedef union parsectl parsectl_t; /*------ for conversion routines --------*/ @@ -266,7 +273,7 @@ typedef union parsectl parsectl_t; struct parse /* parse module local data */ { int parse_flags; /* operation and current status flags */ - + int parse_ioflags; /* io handling flags (5-8 Bit control currently) */ /* @@ -286,7 +293,7 @@ struct parse /* parse module local data */ char *parse_ldata; /* last data buffer */ unsigned short parse_ldsize; /* last data buffer length */ u_long parse_badformat; /* number of unparsable pakets */ - + timestamp_t parse_lastchar; /* last time a character was received */ parsetime_t parse_dtime; /* external data prototype */ }; @@ -337,15 +344,19 @@ typedef struct clocktime clocktime_t; #define SYNC_ZERO 0x00 #define SYNC_ONE 0x01 +typedef u_long parse_inp_fnc_t(parse_t *, char, timestamp_t *); +typedef u_long parse_cvt_fnc_t(unsigned char *, int, struct format *, clocktime_t *, void *); +typedef u_long parse_pps_fnc_t(parse_t *, int, timestamp_t *); + struct clockformat { /* special input protocol - implies fixed format */ - u_long (*input) (parse_t *, unsigned int, timestamp_t *); + parse_inp_fnc_t *input; /* conversion routine */ - u_long (*convert) (unsigned char *, int, struct format *, clocktime_t *, void *); + parse_cvt_fnc_t *convert; /* routine for handling RS232 sync events (time stamps) */ /* PPS input routine */ - u_long (*syncpps) (parse_t *, int, timestamp_t *); + parse_pps_fnc_t *syncpps; /* time code synthesizer */ void *data; /* local parameters */ @@ -361,7 +372,7 @@ typedef struct clockformat clockformat_t; */ extern int parse_ioinit (parse_t *); extern void parse_ioend (parse_t *); -extern int parse_ioread (parse_t *, unsigned int, timestamp_t *); +extern int parse_ioread (parse_t *, char, timestamp_t *); extern int parse_iopps (parse_t *, int, timestamp_t *); extern void parse_iodone (parse_t *); extern int parse_timecode (parsectl_t *, parse_t *); @@ -369,8 +380,8 @@ extern int parse_getfmt (parsectl_t *, parse_t *); extern int parse_setfmt (parsectl_t *, parse_t *); extern int parse_setcs (parsectl_t *, parse_t *); -extern unsigned int parse_restart (parse_t *, unsigned int); -extern unsigned int parse_addchar (parse_t *, unsigned int); +extern unsigned int parse_restart (parse_t *, char); +extern unsigned int parse_addchar (parse_t *, char); extern unsigned int parse_end (parse_t *); extern int Strok (const unsigned char *, const unsigned char *); @@ -379,9 +390,9 @@ extern int Stoi (const unsigned char *, long *, int); extern time_t parse_to_unixtime (clocktime_t *, u_long *); extern u_long updatetimeinfo (parse_t *, u_long); extern void syn_simple (parse_t *, timestamp_t *, struct format *, u_long); -extern u_long pps_simple (parse_t *, int, timestamp_t *); -extern u_long pps_one (parse_t *, int, timestamp_t *); -extern u_long pps_zero (parse_t *, int, timestamp_t *); +extern parse_pps_fnc_t pps_simple; +extern parse_pps_fnc_t pps_one; +extern parse_pps_fnc_t pps_zero; extern int parse_timedout (parse_t *, timestamp_t *, struct timeval *); #endif diff --git a/contrib/ntp/include/parse_conf.h b/contrib/ntp/include/parse_conf.h index 319dd543c43c..d17d616a4845 100644 --- a/contrib/ntp/include/parse_conf.h +++ b/contrib/ntp/include/parse_conf.h @@ -4,7 +4,7 @@ * parse_conf.h,v 4.7 2005/06/25 10:58:45 kardel RELEASE_20050625_A * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,13 +41,13 @@ /* * field location structure */ -#define O_DAY 0 +#define O_DAY 0 #define O_MONTH 1 -#define O_YEAR 2 -#define O_HOUR 3 -#define O_MIN 4 -#define O_SEC 5 -#define O_WDAY 6 +#define O_YEAR 2 +#define O_HOUR 3 +#define O_MIN 4 +#define O_SEC 5 +#define O_WDAY 6 #define O_FLAGS 7 #define O_ZONE 8 #define O_UTCHOFFSET 9 diff --git a/contrib/ntp/kernel/Makefile.in b/contrib/ntp/kernel/Makefile.in index 5c85def062fd..2147529a1a83 100644 --- a/contrib/ntp/kernel/Makefile.in +++ b/contrib/ntp/kernel/Makefile.in @@ -38,8 +38,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -68,6 +67,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -324,6 +325,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/kernel/sys/Makefile.in b/contrib/ntp/kernel/sys/Makefile.in index 83334765ee47..2e8f990bbb41 100644 --- a/contrib/ntp/kernel/sys/Makefile.in +++ b/contrib/ntp/kernel/sys/Makefile.in @@ -40,8 +40,7 @@ DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -70,6 +69,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -289,6 +290,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/kernel/sys/parsestreams.h b/contrib/ntp/kernel/sys/parsestreams.h index e784f9e8b37a..bd40093d362c 100644 --- a/contrib/ntp/kernel/sys/parsestreams.h +++ b/contrib/ntp/kernel/sys/parsestreams.h @@ -4,7 +4,7 @@ * parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/contrib/ntp/lib/isc/inet_ntop.c b/contrib/ntp/lib/isc/inet_ntop.c index 26d5dcad1f0a..773018031b9d 100644 --- a/contrib/ntp/lib/isc/inet_ntop.c +++ b/contrib/ntp/lib/isc/inet_ntop.c @@ -135,6 +135,7 @@ inet_ntop6(const unsigned char *src, char *dst, size_t size) words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); best.base = -1; cur.base = -1; + best.len = cur.len = 0; for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { if (words[i] == 0) { if (cur.base == -1) diff --git a/contrib/ntp/lib/isc/log.c b/contrib/ntp/lib/isc/log.c index ce98303fecaf..38f0c4ff51e6 100644 --- a/contrib/ntp/lib/isc/log.c +++ b/contrib/ntp/lib/isc/log.c @@ -1143,7 +1143,7 @@ sync_channellist(isc_logconfig_t *lcfg) { static isc_result_t greatest_version(isc_logchannel_t *channel, int *greatestp) { /* XXXDCL HIGHLY NT */ - char *basename, *digit_end; + char *basenam, *digit_end; const char *dirname; int version, greatest = -1; unsigned int basenamelen; @@ -1160,23 +1160,23 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) { * It is safe to DE_CONST the file.name because it was copied * with isc_mem_strdup in isc_log_createchannel. */ - basename = strrchr(FILE_NAME(channel), sep); + basenam = strrchr(FILE_NAME(channel), sep); #ifdef _WIN32 basename2 = strrchr(FILE_NAME(channel), '\\'); - if ((basename != NULL && basename2 != NULL && basename2 > basename) || - (basename == NULL && basename2 != NULL)) { - basename = basename2; + if ((basenam != NULL && basename2 != NULL && basename2 > basenam) || + (basenam == NULL && basename2 != NULL)) { + basenam = basename2; sep = '\\'; } #endif - if (basename != NULL) { - *basename++ = '\0'; + if (basenam != NULL) { + *basenam++ = '\0'; dirname = FILE_NAME(channel); } else { - DE_CONST(FILE_NAME(channel), basename); + DE_CONST(FILE_NAME(channel), basenam); dirname = "."; } - basenamelen = strlen(basename); + basenamelen = strlen(basenam); isc_dir_init(&dir); result = isc_dir_open(&dir, dirname); @@ -1184,8 +1184,8 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) { /* * Replace the file separator if it was taken out. */ - if (basename != FILE_NAME(channel)) - *(basename - 1) = sep; + if (basenam != FILE_NAME(channel)) + *(basenam - 1) = sep; /* * Return if the directory open failed. @@ -1195,7 +1195,7 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) { while (isc_dir_read(&dir) == ISC_R_SUCCESS) { if (dir.entry.length > basenamelen && - strncmp(dir.entry.name, basename, basenamelen) == 0 && + strncmp(dir.entry.name, basenam, basenamelen) == 0 && dir.entry.name[basenamelen] == '.') { version = strtol(&dir.entry.name[basenamelen + 1], diff --git a/contrib/ntp/lib/isc/result.c b/contrib/ntp/lib/isc/result.c index 520f1613acd1..da57272dfc27 100644 --- a/contrib/ntp/lib/isc/result.c +++ b/contrib/ntp/lib/isc/result.c @@ -172,7 +172,7 @@ const char * isc_result_totext(isc_result_t result) { resulttable *table; const char *txt, *default_text; - int index; + int idx; initialize(); @@ -183,15 +183,15 @@ isc_result_totext(isc_result_t result) { table != NULL; table = ISC_LIST_NEXT(table, link)) { if (result >= table->base && result <= table->last) { - index = (int)(result - table->base); - default_text = table->text[index]; + idx = (int)(result - table->base); + default_text = table->text[idx]; /* - * Note: we use 'index + 1' as the message number - * instead of index because isc_msgcat_get() requires + * Note: we use 'idx + 1' as the message number + * instead of idx because isc_msgcat_get() requires * the message number to be > 0. */ txt = isc_msgcat_get(table->msgcat, table->set, - index + 1, default_text); + idx + 1, default_text); break; } } diff --git a/contrib/ntp/lib/isc/unix/file.c b/contrib/ntp/lib/isc/unix/file.c index 3b59e86b0755..9eda4a33bc80 100644 --- a/contrib/ntp/lib/isc/unix/file.c +++ b/contrib/ntp/lib/isc/unix/file.c @@ -508,7 +508,7 @@ isc_file_safecreate(const char *filename, FILE **fp) { } isc_result_t -isc_file_splitpath(isc_mem_t *mctx, char *path, char **dirname, char **basename) +isc_file_splitpath(isc_mem_t *mctx, char *path, char **dirnam, char **basenam) { char *dir, *file, *slash; @@ -537,8 +537,8 @@ isc_file_splitpath(isc_mem_t *mctx, char *path, char **dirname, char **basename) return (ISC_R_INVALIDFILE); } - *dirname = dir; - *basename = file; + *dirnam = dir; + *basenam = file; return (ISC_R_SUCCESS); } diff --git a/contrib/ntp/lib/isc/unix/ifiter_getifaddrs.c b/contrib/ntp/lib/isc/unix/ifiter_getifaddrs.c index c2e4044ac008..425b9b4c3d35 100644 --- a/contrib/ntp/lib/isc/unix/ifiter_getifaddrs.c +++ b/contrib/ntp/lib/isc/unix/ifiter_getifaddrs.c @@ -212,6 +212,9 @@ internal_current(isc_interfaceiter_t *iter) { get_addr(family, &iter->current.broadcast, ifa->ifa_broadaddr, ifa->ifa_name); +#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX + iter->current.ifindex = if_nametoindex(iter->current.name); +#endif return (ISC_R_SUCCESS); } diff --git a/contrib/ntp/lib/isc/unix/ifiter_ioctl.c b/contrib/ntp/lib/isc/unix/ifiter_ioctl.c index a684867ce71f..c8e4970e6b33 100644 --- a/contrib/ntp/lib/isc/unix/ifiter_ioctl.c +++ b/contrib/ntp/lib/isc/unix/ifiter_ioctl.c @@ -109,6 +109,10 @@ struct isc_interfaceiter { #endif #endif +/* Silence a warning when this file is #included */ +int +isc_ioctl(int fildes, int req, char *arg); + int isc_ioctl(int fildes, int req, char *arg) { int trys; @@ -588,6 +592,9 @@ internal_current4(isc_interfaceiter_t *iter) { } iter->current.netmask.type.in6.s6_addr[i] = (~0 << bits) & 0xff; } +#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX + iter->current.ifindex = if_nametoindex(iter->current.name); +#endif return (ISC_R_SUCCESS); inet: @@ -664,6 +671,9 @@ internal_current4(isc_interfaceiter_t *iter) { } get_addr(family, &iter->current.netmask, (struct sockaddr *)&ifreq.ifr_addr, ifreq.ifr_name); +#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX + iter->current.ifindex = if_nametoindex(iter->current.name); +#endif return (ISC_R_SUCCESS); } @@ -704,7 +714,6 @@ internal_current6(isc_interfaceiter_t *iter) { get_addr(family, &iter->current.address, (struct sockaddr *)&lifreq.lifr_addr, lifreq.lifr_name); - iter->current.ifindex = lifreq.lifr_index; if (isc_netaddr_islinklocal(&iter->current.address)) isc_netaddr_setzone(&iter->current.address, (isc_uint32_t)lifreq.lifr_index); @@ -844,7 +853,9 @@ internal_current6(isc_interfaceiter_t *iter) { iter->current.netmask.type.in6.s6_addr[i / 8] = (~0 << bits) & 0xff; } - +#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX + iter->current.ifindex = if_nametoindex(iter->current.name); +#endif return (ISC_R_SUCCESS); } #endif @@ -867,6 +878,9 @@ internal_current6(isc_interfaceiter_t *iter) { get_addr(family, &iter->current.netmask, (struct sockaddr *)&lifreq.lifr_addr, lifreq.lifr_name); +#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX + iter->current.ifindex = if_nametoindex(iter->current.name); +#endif return (ISC_R_SUCCESS); } #endif diff --git a/contrib/ntp/lib/isc/unix/net.c b/contrib/ntp/lib/isc/unix/net.c index 2ba17d165067..7056668ca0cd 100644 --- a/contrib/ntp/lib/isc/unix/net.c +++ b/contrib/ntp/lib/isc/unix/net.c @@ -106,7 +106,8 @@ const struct in6_addr isc_net_in6addrloop = IN6ADDR_LOOPBACK_INIT; static isc_once_t once_ipv6only = ISC_ONCE_INIT; # endif -# if defined(ISC_PLATFORM_HAVEIN6PKTINFO) +# if defined(ISC_PLATFORM_HAVEIPV6) && \ + defined(WANT_IPV6) && defined(ISC_PLATFORM_HAVEIN6PKTINFO) static isc_once_t once_ipv6pktinfo = ISC_ONCE_INIT; # endif #endif /* ISC_PLATFORM_HAVEIPV6 */ diff --git a/contrib/ntp/libntp/Makefile.in b/contrib/ntp/libntp/Makefile.in index 0ff8c52e88ed..1b451169e171 100644 --- a/contrib/ntp/libntp/Makefile.in +++ b/contrib/ntp/libntp/Makefile.in @@ -41,8 +41,7 @@ subdir = libntp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -71,6 +70,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -444,6 +445,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/libntp/ntp_calendar.c b/contrib/ntp/libntp/ntp_calendar.c index 94ca0e9ee154..ff91fcfc678d 100644 --- a/contrib/ntp/libntp/ntp_calendar.c +++ b/contrib/ntp/libntp/ntp_calendar.c @@ -29,7 +29,7 @@ ntpcal_set_timefunc( ) { systime_func_ptr res; - + res = systime_func; if (NULL == nfunc) nfunc = &time; @@ -118,7 +118,7 @@ vint64_to_time( #endif return res; -} +} /* *--------------------------------------------------------------------- @@ -170,7 +170,7 @@ ntpcal_get_build_date( #ifdef DEBUG static int ignore = 0; #endif - + ZERO(*jd); jd->year = 1970; jd->month = 1; @@ -255,7 +255,7 @@ static const uint16_t real_month_table[2][13] = { * in the proleptic Gregorian calendar. The begin of the Christian Era * (0001-01-01) is RD(1). * - * + * * Some notes on the implementation: * * Calendar algorithms thrive on the division operation, which is one of @@ -351,7 +351,7 @@ ntpcal_periodic_extend( char cpl = 0; /* modulo complement flag */ char neg = 0; /* sign change flag */ - /* make the cycle positive and adjust the flags */ + /* make the cycle positive and adjust the flags */ if (cycle < 0) { cycle = - cycle; neg ^= 1; @@ -407,21 +407,21 @@ ntpcal_ntp_to_time( #ifdef HAVE_INT64 - res.q_s = (pivot != NULL) + res.q_s = (pivot != NULL) ? *pivot - : now(); + : now(); res.Q_s -= 0x80000000; /* unshift of half range */ ntp -= (uint32_t)JAN_1970; /* warp into UN*X domain */ ntp -= res.D_s.lo; /* cycle difference */ res.Q_s += (uint64_t)ntp; /* get expanded time */ #else /* no 64bit scalars */ - + time_t tmp; - - tmp = (pivot != NULL) + + tmp = (pivot != NULL) ? *pivot - : now(); + : now(); res = time_to_vint64(&tmp); M_SUB(res.D_s.hi, res.D_s.lo, 0, 0x80000000); ntp -= (uint32_t)JAN_1970; /* warp into UN*X domain */ @@ -465,9 +465,9 @@ ntpcal_ntp_to_ntp( res.Q_s += (uint64_t)ntp; /* get expanded time */ #else /* no 64bit scalars */ - + time_t tmp; - + tmp = (pivot) ? *pivot : now(); @@ -492,7 +492,7 @@ ntpcal_ntp_to_ntp( */ /* - *------------------------------------------------------------------- + *------------------------------------------------------------------- * Split a 64bit seconds value into elapsed days in 'res.hi' and * elapsed seconds since midnight in 'res.lo' using explicit floor * division. This function happily accepts negative time values as @@ -532,7 +532,7 @@ ntpcal_daysplit( isneg = M_ISNEG(op.D_s.hi); if (isneg) M_NEG(op.D_s.hi, op.D_s.lo); - + /* save remainder of DIV 128, shift for divide */ r = op.D_s.lo & 127; /* save remainder bits */ op.D_s.lo = (op.D_s.lo >> 7) | (op.D_s.hi << 25); @@ -572,16 +572,16 @@ ntpcal_daysplit( } else q = ~q + 1; } - + res.hi = q; res.lo = r; -#endif +#endif return res; } /* - *------------------------------------------------------------------- + *------------------------------------------------------------------- * Split a 32bit seconds value into h/m/s and excessive days. This * function happily accepts negative time values as timestamps before * midnight. @@ -632,7 +632,7 @@ ntpcal_split_eradays( { ntpcal_split res; int32_t n400, n100, n004, n001, yday; /* calendar year cycles */ - + /* * Split off calendar cycles, using floor division in the first * step. After that first step, simple division does it because @@ -652,7 +652,7 @@ ntpcal_split_eradays( yday = yday % GREGORIAN_NORMAL_LEAP_CYCLE_DAYS; n001 = yday / DAYSPERYEAR; yday = yday % DAYSPERYEAR; - + /* * check for leap cycle overflows and calculate the leap flag * if needed @@ -665,11 +665,11 @@ ntpcal_split_eradays( *isleapyear = 1; } else if (isleapyear) *isleapyear = (n001 == 3) && ((n004 != 24) || (n100 == 3)); - + /* now merge the cycles to elapsed years, using horner scheme */ res.hi = ((4*n400 + n100)*25 + n004)*4 + n001; res.lo = yday; - + return res; } @@ -724,7 +724,13 @@ ntpcal_rd_to_date( leaps = 0; retv = 0; - /* get day-of-week first */ + /* Get day-of-week first. Since rd is signed, the remainder can + * be in the range [-6..+6], but the assignment to an unsigned + * variable maps the negative values to positive values >=7. + * This makes the sign correction look strange, but adding 7 + * causes the needed wrap-around into the desired value range of + * zero to six, both inclusive. + */ jd->weekday = rd % 7; if (jd->weekday >= 7) /* unsigned! */ jd->weekday += 7; @@ -794,7 +800,7 @@ ntpcal_daysec_to_date( { int32_t days; int ts[3]; - + days = priv_timesplit(ts, sec); jd->hour = (uint8_t)ts[0]; jd->minute = (uint8_t)ts[1]; @@ -817,7 +823,7 @@ ntpcal_daysec_to_tm( { int32_t days; int32_t ts[3]; - + days = priv_timesplit(ts, sec); utm->tm_hour = ts[0]; utm->tm_min = ts[1]; @@ -946,7 +952,7 @@ ntpcal_dayjoin( /* fix sign */ if (isneg) M_NEG(res.D_s.hi, res.D_s.lo); - + /* properly add seconds */ p2 = 0; if (secs < 0) { @@ -957,7 +963,7 @@ ntpcal_dayjoin( } M_ADD(res.D_s.hi, res.D_s.lo, p2, p1); -#endif +#endif return res; } @@ -1279,7 +1285,7 @@ ntpcal_ntp64_to_date( ) { ntpcal_split ds; - + ds = ntpcal_daysplit(ntp); ds.hi += ntpcal_daysec_to_date(jd, ds.lo); @@ -1294,7 +1300,7 @@ ntpcal_ntp_to_date( ) { vint64 ntp64; - + /* * Unfold ntp time around current time into NTP domain. Split * into days and seconds, shift days into CE domain and @@ -1516,12 +1522,12 @@ isocal_split_eraweeks( res.lo += (res.lo >= 10435); cents = res.lo / 5218; res.lo %= 5218; /* res.lo is weeks in century now */ - + /* convert elapsed weeks in century to elapsed years and weeks */ res.lo = res.lo * 157 + bctab[cents]; res.hi += cents * 100 + res.lo / 8192; - res.lo = (res.lo % 8192) / 157; - + res.lo = (res.lo % 8192) / 157; + return res; } @@ -1538,7 +1544,7 @@ isocal_ntp64_to_date( { ntpcal_split ds; int32_t ts[3]; - + /* * Split NTP time into days and seconds, shift days into CE * domain and process the parts. @@ -1576,7 +1582,7 @@ isocal_ntp_to_date( ) { vint64 ntp64; - + /* * Unfold ntp time around current time into NTP domain, then * convert the full time stamp. diff --git a/contrib/ntp/libntp/work_fork.c b/contrib/ntp/libntp/work_fork.c index 10329e70be8f..dab02bc6af14 100644 --- a/contrib/ntp/libntp/work_fork.c +++ b/contrib/ntp/libntp/work_fork.c @@ -382,7 +382,7 @@ fork_blocking_child( int rc; int was_pipe; int is_pipe; - int saved_errno; + int saved_errno = 0; int childpid; int keep_fd; int fd; diff --git a/contrib/ntp/libparse/Makefile.in b/contrib/ntp/libparse/Makefile.in index 1594eb13865b..d473a77e76d0 100644 --- a/contrib/ntp/libparse/Makefile.in +++ b/contrib/ntp/libparse/Makefile.in @@ -43,8 +43,7 @@ subdir = libparse ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -73,6 +72,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -352,6 +353,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/libparse/clk_computime.c b/contrib/ntp/libparse/clk_computime.c index 1068576f88aa..5026232ea5f0 100644 --- a/contrib/ntp/libparse/clk_computime.c +++ b/contrib/ntp/libparse/clk_computime.c @@ -7,15 +7,15 @@ * /src/NTP/ntp4-dev/libparse/clk_computime.c,v 4.10 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * clk_computime.c,v 4.10 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * Supports Diem's Computime Radio Clock - * + * * Used the Meinberg clock as a template for Diem's Computime Radio Clock * * adapted by Alois Camenzind - * + * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -59,22 +59,22 @@ extern int printf (const char *, ...); /* * The Computime receiver sends a datagram in the following format every minute - * - * Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLF + * + * Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLF * Pos 0123456789012345678901 2 3 * 0000000000111111111122 2 2 * Parse T: : : : : : : rn - * - * T Startcharacter "T" specifies start of the timestamp - * YY Year MM Month 1-12 - * MD Day of the month - * WD Day of week - * HH Hour - * MM Minute + * + * T Startcharacter "T" specifies start of the timestamp + * YY Year MM Month 1-12 + * MD Day of the month + * WD Day of week + * HH Hour + * MM Minute * SS Second - * CR Carriage return + * CR Carriage return * LF Linefeed - * + * */ static struct format computime_fmt = @@ -88,10 +88,10 @@ static struct format computime_fmt = 0 }; -static u_long cvt_computime (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_computime (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_computime; +static parse_inp_fnc_t inp_computime; -clockformat_t clock_computime = +clockformat_t clock_computime = { inp_computime, /* Computime input handling */ cvt_computime, /* Computime conversion */ @@ -99,15 +99,15 @@ clockformat_t clock_computime = (void *)&computime_fmt, /* conversion configuration */ "Diem's Computime Radio Clock", /* Computime Radio Clock */ 24, /* string buffer */ - 0 /* no private data (complete pakets) */ + 0 /* no private data (complete packets) */ }; /* - * cvt_computime - * + * parse_cvt_fnc_t cvt_computime + * * convert simple type format */ -static u_long +static u_long cvt_computime( unsigned char *buffer, int size, @@ -117,7 +117,7 @@ cvt_computime( ) { - if (!Strok(buffer, format->fixed_string)) { + if (!Strok(buffer, format->fixed_string)) { return CVT_NONE; } else { if (Stoi(&buffer[format->field_offsets[O_DAY].offset], &clock_time->day, @@ -131,7 +131,7 @@ cvt_computime( Stoi(&buffer[format->field_offsets[O_MIN].offset], &clock_time->minute, format->field_offsets[O_MIN].length) || Stoi(&buffer[format->field_offsets[O_SEC].offset], &clock_time->second, - format->field_offsets[O_SEC].length)) { + format->field_offsets[O_SEC].length)) { return CVT_FAIL | CVT_BADFMT; } else { @@ -144,31 +144,31 @@ cvt_computime( } /* - * inp_computime + * parse_inp_fnc_t inp_computime * - * grep data from input stream + * grab data from input stream */ static u_long inp_computime( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_computime(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case 'T': parseprintf(DD_PARSE, ("inp_computime: START seen\n")); - + parseio->parse_index = 1; parseio->parse_data[0] = ch; parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */ return PARSE_INP_SKIP; - + case '\n': parseprintf(DD_PARSE, ("inp_computime: END seen\n")); if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP) diff --git a/contrib/ntp/libparse/clk_dcf7000.c b/contrib/ntp/libparse/clk_dcf7000.c index bfd9a744acb3..f1da9ef8484e 100644 --- a/contrib/ntp/libparse/clk_dcf7000.c +++ b/contrib/ntp/libparse/clk_dcf7000.c @@ -1,12 +1,12 @@ /* * /src/NTP/ntp4-dev/libparse/clk_dcf7000.c,v 4.10 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * clk_dcf7000.c,v 4.10 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * ELV DCF7000 module * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -63,9 +63,10 @@ static struct format dcf7000_fmt = }, (const unsigned char *)" - - - - - - - \r", 0 -}; -static u_long cvt_dcf7000 (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_dcf7000 (parse_t *, unsigned int, timestamp_t *); +}; + +static parse_cvt_fnc_t cvt_dcf7000; +static parse_inp_fnc_t inp_dcf7000; clockformat_t clock_dcf7000 = { @@ -75,11 +76,11 @@ clockformat_t clock_dcf7000 = (void *)&dcf7000_fmt, /* conversion configuration */ "ELV DCF7000", /* ELV clock */ 24, /* string buffer */ - 0 /* no private data (complete pakets) */ + 0 /* no private data (complete packets) */ }; /* - * cvt_dcf7000 + * parse_cvt_fnc_t cvt_dcf7000 * * convert dcf7000 type format */ @@ -117,7 +118,7 @@ cvt_dcf7000( { unsigned char *f = &buffer[format->field_offsets[O_FLAGS].offset]; long flags; - + clock_time->flags = 0; clock_time->usecond = 0; @@ -144,21 +145,21 @@ cvt_dcf7000( } /* - * inp_dcf700 + * parse_inp_fnc_t inp_dcf700 * - * grep data from input stream + * grab data from input stream */ static u_long inp_dcf7000( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_dcf7000(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case '\r': diff --git a/contrib/ntp/libparse/clk_hopf6021.c b/contrib/ntp/libparse/clk_hopf6021.c index 033d2d2ca4e7..357ac2ec0f15 100644 --- a/contrib/ntp/libparse/clk_hopf6021.c +++ b/contrib/ntp/libparse/clk_hopf6021.c @@ -37,10 +37,10 @@ extern int printf (const char *, ...); #endif -/* - * hopf Funkuhr 6021 +/* + * hopf Funkuhr 6021 * used with 9600,8N1, - * UTC ueber serielle Schnittstelle + * UTC ueber serielle Schnittstelle * Sekundenvorlauf ON * ETX zum Sekundenvorlauf ON * Datenstring 6021 @@ -71,7 +71,7 @@ extern int printf (const char *, ...); * x x 0 x - Wintertime * x x 1 x - Summertime * 0 0 x x - Time/Date invalid - * 0 1 x x - Internal clock used + * 0 1 x x - Internal clock used * 1 0 x x - Radio clock * 1 1 x x - Radio clock highprecision * @@ -90,10 +90,10 @@ extern int printf (const char *, ...); #define HOPF_DSTWARN 0x01 /* DST switch warning */ #define HOPF_DST 0x02 /* DST in effect */ -#define HOPF_MODE 0x0C /* operation mode mask */ +#define HOPF_MODE 0x0C /* operation mode mask */ #define HOPF_INVALID 0x00 /* no time code available */ #define HOPF_INTERNAL 0x04 /* internal clock */ -#define HOPF_RADIO 0x08 /* radio clock */ +#define HOPF_RADIO 0x08 /* radio clock */ #define HOPF_RADIOHP 0x0C /* high precision radio clock */ #define HOPF_UTC 0x08 /* time code in UTC */ @@ -102,13 +102,13 @@ extern int printf (const char *, ...); static struct format hopf6021_fmt = { { - { 9, 2 }, {11, 2}, { 13, 2}, /* Day, Month, Year */ - { 3, 2 }, { 5, 2}, { 7, 2}, /* Hour, Minute, Second */ + { 9, 2 }, {11, 2}, { 13, 2}, /* Day, Month, Year */ + { 3, 2 }, { 5, 2}, { 7, 2}, /* Hour, Minute, Second */ { 2, 1 }, { 1, 1}, { 0, 0}, /* Weekday, Flags, Zone */ /* ... */ }, (const unsigned char *)"\002 \n\r\003", - 0 + 0 }; #define OFFS(x) format->field_offsets[(x)].offset @@ -118,8 +118,8 @@ static struct format hopf6021_fmt = ('A' <= (x) && (x) <= 'F') ? (x) - 'A' + 10 : \ -1) -static unsigned long cvt_hopf6021 (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_hopf6021 (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_hopf6021; +static parse_inp_fnc_t inp_hopf6021; clockformat_t clock_hopf6021 = { @@ -132,7 +132,8 @@ clockformat_t clock_hopf6021 = 0 /* private data length, no private data */ }; -static unsigned long +/* parse_cvt_fnc_t cvt_hopf6021 */ +static u_long cvt_hopf6021( unsigned char *buffer, int size, @@ -162,8 +163,8 @@ cvt_hopf6021( clock_time->usecond = 0; clock_time->utcoffset = 0; - status = hexval(buffer[OFFS(O_FLAGS)]); - weekday= hexval(buffer[OFFS(O_WDAY)]); + status = (u_char) hexval(buffer[OFFS(O_FLAGS)]); + weekday= (u_char) hexval(buffer[OFFS(O_WDAY)]); if ((status == 0xFF) || (weekday == 0xFF)) { @@ -213,21 +214,21 @@ cvt_hopf6021( } /* - * inp_hopf6021 + * parse_inp_fnc_t inp_hopf6021 * - * grep data from input stream + * grab data from input stream */ static u_long inp_hopf6021( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_hopf6021(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case ETX: diff --git a/contrib/ntp/libparse/clk_meinberg.c b/contrib/ntp/libparse/clk_meinberg.c index a94c3f7a2edd..4047be5e7314 100644 --- a/contrib/ntp/libparse/clk_meinberg.c +++ b/contrib/ntp/libparse/clk_meinberg.c @@ -1,12 +1,12 @@ /* * /src/NTP/REPOSITORY/ntp4-dev/libparse/clk_meinberg.c,v 4.12.2.1 2005/09/25 10:22:35 kardel RELEASE_20050925_A - * + * * clk_meinberg.c,v 4.12.2.1 2005/09/25 10:22:35 kardel RELEASE_20050925_A * * Meinberg clock support * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -65,7 +65,7 @@ /* * The Meinberg receiver every second sends a datagram of the following form * (Standard Format) - * + * * D:
..;T:;U:::; * pos: 0 00 00 0 00 0 11 111 1 111 12 2 22 2 22 2 2 2 3 3 3 * 1 23 45 6 78 9 01 234 5 678 90 1 23 4 56 7 8 9 0 1 2 @@ -105,12 +105,14 @@ * = '!' during the hour preceeding an daylight saving time * start/end change * = 'A' LEAP second announcement - * = 'R' alternate antenna + * = 'R' "call bit" used to signalize irregularities in the control facilities, + * usually ' ', until 2003 indicated transmission via alternate antenna * - * Meinberg GPS166 receiver + * Meinberg GPS receivers * - * You must get the Uni-Erlangen firmware for the GPS receiver support + * For very old devices you must get the Uni-Erlangen firmware for the GPS receiver support * to work to full satisfaction ! + * With newer GPS receiver types the Uni Erlangen string format can be configured at the device. * *
..; ; ::; <+/-><00:00>; ; * @@ -118,7 +120,7 @@ * 123456789012345678901234567890123456789012345678901234567890123456 * \x0209.07.93; 5; 08:48:26; +00:00; #*S!A L; 49.5736N 11.0280E 373m\x03 * - * + * * = '\002' ASCII start of text * = '\003' ASCII end of text *
,, = day, month, year(2 digits!!) @@ -131,8 +133,10 @@ * = '!' during the hour preceeding an daylight saving time * start/end change * = 'A' LEAP second announcement - * = 'R' alternate antenna (reminiscent of PZF535) usually ' ' - * = 'L' on 23:59:60 + * = 'R' "call bit" used to signalize irregularities in the control facilities, + * usually ' ', until 2003 indicated transmission via alternate antenna + * (reminiscent of PZF receivers) + * = 'L' on 23:59:60 * * Binary messages have a lead in for a fixed header of SOH */ @@ -150,19 +154,20 @@ /* Ret val: the checksum */ /*+-------------------------------------------------------------*/ -unsigned long +CSUM mbg_csum( unsigned char *p, unsigned int n ) { - unsigned long sum = 0; + unsigned int sum = 0; unsigned int i; - + for ( i = 0; i < n; i++ ) sum += *p++; - - return( sum ); + + return (CSUM) sum; + } /* csum */ void @@ -171,10 +176,10 @@ get_mbg_header( GPS_MSG_HDR *headerp ) { - headerp->gps_cmd = get_lsb_short(bufpp); - headerp->gps_len = get_lsb_short(bufpp); - headerp->gps_data_csum = get_lsb_short(bufpp); - headerp->gps_hdr_csum = get_lsb_short(bufpp); + headerp->cmd = (GPS_CMD) get_lsb_short(bufpp); + headerp->len = get_lsb_uint16(bufpp); + headerp->data_csum = (CSUM) get_lsb_short(bufpp); + headerp->hdr_csum = (CSUM) get_lsb_short(bufpp); } static struct format meinberg_fmt[] = @@ -209,10 +214,10 @@ static struct format meinberg_fmt[] = } }; -static u_long cvt_meinberg (unsigned char *, int, struct format *, clocktime_t *, void *); -static u_long cvt_mgps (unsigned char *, int, struct format *, clocktime_t *, void *); -static u_long mbg_input (parse_t *, unsigned int, timestamp_t *); -static u_long gps_input (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_meinberg; +static parse_cvt_fnc_t cvt_mgps; +static parse_inp_fnc_t mbg_input; +static parse_inp_fnc_t gps_input; struct msg_buf { @@ -224,7 +229,7 @@ struct msg_buf #define MBG_HEADER 1 /* receiving header */ #define MBG_DATA 2 /* receiving data */ #define MBG_STRING 3 /* receiving standard data message */ - + clockformat_t clock_meinberg[] = { { @@ -234,7 +239,7 @@ clockformat_t clock_meinberg[] = 0, /* conversion configuration */ "Meinberg Standard", /* Meinberg simple format - beware */ 32, /* string buffer */ - 0 /* no private data (complete pakets) */ + 0 /* no private data (complete packets) */ }, { mbg_input, /* normal input handling */ @@ -243,21 +248,21 @@ clockformat_t clock_meinberg[] = 0, /* conversion configuration */ "Meinberg Extended", /* Meinberg enhanced format */ 32, /* string buffer */ - 0 /* no private data (complete pakets) */ + 0 /* no private data (complete packets) */ }, { gps_input, /* no input handling */ - cvt_mgps, /* Meinberg GPS166 conversion */ + cvt_mgps, /* Meinberg GPS receiver conversion */ pps_one, /* easy PPS monitoring */ (void *)&meinberg_fmt[2], /* conversion configuration */ - "Meinberg GPS Extended", /* Meinberg FAU GPS format */ + "Meinberg GPS Extended", /* Meinberg FAU GPS format */ 512, /* string buffer */ - sizeof(struct msg_buf) /* no private data (complete pakets) */ + sizeof(struct msg_buf) /* no private data (complete packets) */ } }; /* - * cvt_meinberg + * parse_cvt_fnc_t cvt_meinberg * * convert simple type format */ @@ -271,7 +276,7 @@ cvt_meinberg( ) { struct format *format; - + /* * select automagically correct data format */ @@ -312,7 +317,7 @@ cvt_meinberg( else { unsigned char *f = &buffer[format->field_offsets[O_FLAGS].offset]; - + clock_time->usecond = 0; clock_time->flags = PARSEB_S_LEAP; @@ -348,7 +353,7 @@ cvt_meinberg( case ' ': clock_time->utcoffset = -1*60*60; /* MET */ break; - + case 'S': clock_time->utcoffset = -2*60*60; /* MED */ break; @@ -360,27 +365,27 @@ cvt_meinberg( clock_time->utcoffset = 0; /* UTC */ clock_time->flags |= PARSEB_UTC; break; - + default: return CVT_FAIL|CVT_BADFMT; } } - + /* * gather status flags */ if (buffer[format->field_offsets[O_ZONE].offset] == 'S') clock_time->flags |= PARSEB_DST; - + if (f[0] == '#') clock_time->flags |= PARSEB_POWERUP; - + if (f[1] == '*') clock_time->flags |= PARSEB_NOSYNC; - + if (f[3] == '!') clock_time->flags |= PARSEB_ANNOUNCE; - + /* * oncoming leap second * 'a' code not confirmed - earth is not @@ -388,27 +393,27 @@ cvt_meinberg( */ if (f[3] == 'A') clock_time->flags |= PARSEB_LEAPADD; - + if (f[3] == 'a') clock_time->flags |= PARSEB_LEAPDEL; - - + + if (format->flags & MBG_EXTENDED) { clock_time->flags |= PARSEB_S_ANTENNA; - + /* * DCF77 does not encode the direction - * so we take the current default - * earth slowing down */ clock_time->flags &= ~PARSEB_LEAPDEL; - + if (f[4] == 'A') clock_time->flags |= PARSEB_LEAPADD; - + if (f[5] == 'R') - clock_time->flags |= PARSEB_ALTERNATE; + clock_time->flags |= PARSEB_CALLBIT; } return CVT_OK; } @@ -416,31 +421,31 @@ cvt_meinberg( /* - * mbg_input + * parse_inp_fnc_t mbg_input * - * grep data from input stream + * grab data from input stream */ static u_long mbg_input( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("mbg_input(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case STX: parseprintf(DD_PARSE, ("mbg_input: STX seen\n")); - + parseio->parse_index = 1; parseio->parse_data[0] = ch; parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */ return PARSE_INP_SKIP; - + case ETX: parseprintf(DD_PARSE, ("mbg_input: ETX seen\n")); if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP) @@ -455,7 +460,7 @@ mbg_input( /* - * cvt_mgps + * parse_cvt_fnc_t cvt_mgps * * convert Meinberg GPS format */ @@ -493,9 +498,9 @@ cvt_mgps( { long h; unsigned char *f = &buffer[format->field_offsets[O_FLAGS].offset]; - + clock_time->flags = PARSEB_S_LEAP|PARSEB_S_POSITION; - + clock_time->usecond = 0; /* @@ -522,22 +527,22 @@ cvt_mgps( clock_time->utcoffset = -clock_time->utcoffset; } } - + /* * gather status flags */ if (buffer[format->field_offsets[O_ZONE].offset] == 'S') clock_time->flags |= PARSEB_DST; - + if (clock_time->utcoffset == 0) clock_time->flags |= PARSEB_UTC; - + /* * no sv's seen - no time & position */ if (f[0] == '#') clock_time->flags |= PARSEB_POWERUP; - + /* * at least one sv seen - time (for last position) */ @@ -546,13 +551,13 @@ cvt_mgps( else if (!(clock_time->flags & PARSEB_POWERUP)) clock_time->flags |= PARSEB_POSITION; - + /* * oncoming zone switch */ if (f[3] == '!') clock_time->flags |= PARSEB_ANNOUNCE; - + /* * oncoming leap second * 'a' code not confirmed - earth is not @@ -560,14 +565,14 @@ cvt_mgps( */ if (f[4] == 'A') clock_time->flags |= PARSEB_LEAPADD; - + if (f[4] == 'a') clock_time->flags |= PARSEB_LEAPDEL; /* * f[5] == ' ' */ - + /* * this is the leap second */ @@ -580,35 +585,35 @@ cvt_mgps( } /* - * gps_input + * parse_inp_fnc_t gps_input * * grep binary data from input stream */ static u_long gps_input( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { CSUM calc_csum; /* used to compare the incoming csums */ GPS_MSG_HDR header; struct msg_buf *msg_buf; - + msg_buf = (struct msg_buf *)parseio->parse_pdata; parseprintf(DD_PARSE, ("gps_input(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); if (!msg_buf) return PARSE_INP_SKIP; - + if ( msg_buf->phase == MBG_NONE ) { /* not receiving yet */ switch (ch) { case SOH: parseprintf(DD_PARSE, ("gps_input: SOH seen\n")); - + msg_buf->len = sizeof( header ); /* prepare to receive msg header */ msg_buf->phase = MBG_HEADER; /* receiving header */ break; @@ -621,7 +626,7 @@ gps_input( parseio->parse_index = 1; parseio->parse_data[0] = ch; break; - + default: return PARSE_INP_SKIP; /* keep searching */ } @@ -638,7 +643,7 @@ gps_input( if ((msg_buf->phase == MBG_STRING) && (parseio->parse_index < parseio->parse_dsize)) parseio->parse_data[parseio->parse_index++] = ch; - + parseio->parse_dtime.parse_msg[parseio->parse_dtime.parse_msglen++] = ch; if (parseio->parse_dtime.parse_msglen > sizeof(parseio->parse_dtime.parse_msg)) @@ -649,7 +654,7 @@ gps_input( parseio->parse_ldsize = parseio->parse_index; return PARSE_INP_DATA; } - + switch (msg_buf->phase) { case MBG_HEADER: @@ -685,41 +690,41 @@ gps_input( if ( msg_buf->phase == MBG_HEADER ) { /* header complete now */ unsigned char *datap = parseio->parse_dtime.parse_msg + 1; - + get_mbg_header(&datap, &header); - + parseprintf(DD_PARSE, ("gps_input: header: cmd 0x%x, len %d, dcsum 0x%x, hcsum 0x%x\n", - (int)header.gps_cmd, (int)header.gps_len, (int)header.gps_data_csum, - (int)header.gps_hdr_csum)); - + (int)header.cmd, (int)header.len, (int)header.data_csum, + (int)header.hdr_csum)); + calc_csum = mbg_csum( (unsigned char *) parseio->parse_dtime.parse_msg + 1, (unsigned short)6 ); - if ( calc_csum != header.gps_hdr_csum ) + if ( calc_csum != header.hdr_csum ) { parseprintf(DD_PARSE, ("gps_input: header checksum mismatch expected 0x%x, got 0x%x\n", (int)calc_csum, (int)mbg_csum( (unsigned char *) parseio->parse_dtime.parse_msg, (unsigned short)6 ))); - + msg_buf->phase = MBG_NONE; /* back to hunting mode */ return PARSE_INP_DATA; /* invalid header checksum received - pass up for detection */ } - if ((header.gps_len == 0) || /* no data to wait for */ - (header.gps_len >= (sizeof (parseio->parse_dtime.parse_msg) - sizeof(header) - 1))) /* blows anything we have space for */ + if ((header.len == 0) || /* no data to wait for */ + (header.len >= (sizeof (parseio->parse_dtime.parse_msg) - sizeof(header) - 1))) /* blows anything we have space for */ { msg_buf->phase = MBG_NONE; /* back to hunting mode */ - return (header.gps_len == 0) ? PARSE_INP_DATA : PARSE_INP_SKIP; /* message complete/throwaway */ + return (header.len == 0) ? PARSE_INP_DATA : PARSE_INP_SKIP; /* message complete/throwaway */ } - - parseprintf(DD_PARSE, ("gps_input: expecting %d bytes of data message\n", (int)header.gps_len)); - - msg_buf->len = header.gps_len;/* save number of bytes to wait for */ + + parseprintf(DD_PARSE, ("gps_input: expecting %d bytes of data message\n", (int)header.len)); + + msg_buf->len = header.len;/* save number of bytes to wait for */ msg_buf->phase = MBG_DATA; /* flag header already complete */ return PARSE_INP_SKIP; } parseprintf(DD_PARSE, ("gps_input: message data complete\n")); - + /* Header and data have been received. The header checksum has been */ /* checked */ diff --git a/contrib/ntp/libparse/clk_rawdcf.c b/contrib/ntp/libparse/clk_rawdcf.c index d6e4b184c050..132fbc33146e 100644 --- a/contrib/ntp/libparse/clk_rawdcf.c +++ b/contrib/ntp/libparse/clk_rawdcf.c @@ -1,12 +1,12 @@ /* * /src/NTP/REPOSITORY/ntp4-dev/libparse/clk_rawdcf.c,v 4.18 2006/06/22 18:40:01 kardel RELEASE_20060622_A - * + * * clk_rawdcf.c,v 4.18 2006/06/22 18:40:01 kardel RELEASE_20060622_A * * Raw DCF77 pulse clock support * * Copyright (c) 1995-2006 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -75,7 +75,8 @@ * Second Contents * 0 - 10 AM: free, FM: 0 * 11 - 14 free - * 15 R - alternate antenna + * 15 R - "call bit" used to signalize irregularities in the control facilities + * (until 2003 indicated transmission via alternate antenna) * 16 A1 - expect zone change (1 hour before) * 17 - 18 Z1,Z2 - time zone * 0 0 illegal @@ -101,9 +102,9 @@ * 59 - usually missing (minute indication), except for leap insertion */ -static u_long pps_rawdcf (parse_t *, int, timestamp_t *); -static u_long cvt_rawdcf (unsigned char *, int, struct format *, clocktime_t *, void *); -static u_long inp_rawdcf (parse_t *, unsigned int, timestamp_t *); +static parse_pps_fnc_t pps_rawdcf; +static parse_cvt_fnc_t cvt_rawdcf; +static parse_inp_fnc_t inp_rawdcf; typedef struct last_tcode { time_t tcode; /* last converted time code */ @@ -127,13 +128,13 @@ static struct dcfparam { const unsigned char *onebits; const unsigned char *zerobits; -} dcfparameter = +} dcfparameter = { (const unsigned char *)"###############RADMLS1248124P124812P1248121241248112481248P??", /* 'ONE' representation */ (const unsigned char *)"--------------------s-------p------p----------------------p__" /* 'ZERO' representation */ }; -static struct rawdcfcode +static struct rawdcfcode { char offset; /* start bit */ } rawdcfcode[] = @@ -189,7 +190,7 @@ ext_bf( int i, first; first = rawdcfcode[idx].offset; - + for (i = rawdcfcode[idx+1].offset - 1; i >= first; i--) { sum <<= 1; @@ -238,7 +239,7 @@ convert_rawdcf( #endif return CVT_NONE; } - + for (i = 0; i < size; i++) { if ((*s != *b) && (*s != *c)) @@ -307,7 +308,7 @@ convert_rawdcf( clock_time->flags |= PARSEB_LEAPADD; /* default: DCF77 data format deficiency */ if (ext_bf(buffer, DCF_R, dcfprm->zerobits)) - clock_time->flags |= PARSEB_ALTERNATE; + clock_time->flags |= PARSEB_CALLBIT; parseprintf(DD_RAWDCF,("parse: convert_rawdcf: TIME CODE OK: %d:%d, %d.%d.%d, flags 0x%lx\n", (int)clock_time->hour, (int)clock_time->minute, (int)clock_time->day, (int)clock_time->month,(int) clock_time->year, @@ -327,6 +328,7 @@ convert_rawdcf( } /* + * parse_cvt_fnc_t cvt_rawdcf * raw dcf input routine - needs to fix up 50 baud * characters for 1/0 decision */ @@ -379,7 +381,7 @@ cvt_rawdcf( ch >>= 1; } - *s = i; + *s = (unsigned char) i; histbuf[i]++; cutoff += i; lowmax++; @@ -504,12 +506,12 @@ cvt_rawdcf( } } } - + return rtc; } /* - * pps_rawdcf + * parse_pps_fnc_t pps_rawdcf * * currently a very stupid version - should be extended to decode * also ones and zeros (which is easy) @@ -546,30 +548,30 @@ snt_rawdcf( #else parseio->parse_dtime.parse_time.fp.l_ui++; #endif - + parseprintf(DD_RAWDCF,("parse: snt_rawdcf: time stamp synthesized offset %d seconds\n", parseio->parse_index - 1)); - + return updatetimeinfo(parseio, parseio->parse_lstate); } return CVT_NONE; } /* - * inp_rawdcf + * parse_inp_fnc_t inp_rawdcf * * grab DCF77 data from input stream */ static u_long inp_rawdcf( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { static struct timeval timeout = { 1, 500000 }; /* 1.5 secongs denote second #60 */ - + parseprintf(DD_PARSE, ("inp_rawdcf(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */ if (parse_timedout(parseio, tstamp, &timeout)) @@ -583,7 +585,7 @@ inp_rawdcf( else { unsigned int rtc; - + rtc = parse_addchar(parseio, ch); if (rtc == PARSE_INP_SKIP) { diff --git a/contrib/ntp/libparse/clk_rcc8000.c b/contrib/ntp/libparse/clk_rcc8000.c index 6dca1660d445..a690e588b91b 100644 --- a/contrib/ntp/libparse/clk_rcc8000.c +++ b/contrib/ntp/libparse/clk_rcc8000.c @@ -1,6 +1,6 @@ /* * /src/NTP/ntp4-dev/libparse/clk_rcc8000.c,v 4.9 2004/11/14 15:29:41 kardel RELEASE_20050508_A - * + * * clk_rcc8000.c,v 4.9 2004/11/14 15:29:41 kardel RELEASE_20050508_A * * Radiocode Clocks Ltd RCC 8000 Intelligent Off-Air Master Clock support @@ -49,16 +49,16 @@ extern int printf (const char *, ...); #define O_USEC O_WDAY static struct format rcc8000_fmt = -{ { { 13, 2 }, {16, 2}, { 19, 2}, /* Day, Month, Year */ - { 0, 2 }, { 3, 2}, { 6, 2}, /* Hour, Minute, Second */ +{ { { 13, 2 }, {16, 2}, { 19, 2}, /* Day, Month, Year */ + { 0, 2 }, { 3, 2}, { 6, 2}, /* Hour, Minute, Second */ { 9, 3 }, {28, 1}, { 0, 0}, /* uSec, Status (Valid,Reject,BST,Leapyear) */ }, - (const unsigned char *)" : : . / / \r\n", + (const unsigned char *)" : : . / / \r\n", /*"15:50:36.534 30/09/94 273 5 A\x0d\x0a" */ - 0 + 0 }; -static unsigned long cvt_rcc8000 (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_rcc8000 (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_rcc8000; +static parse_inp_fnc_t inp_rcc8000; clockformat_t clock_rcc8000 = { @@ -71,7 +71,8 @@ clockformat_t clock_rcc8000 = 0 /* no private data */ }; -static unsigned long +/* parse_cvt_fnc_t cvt_rcc8000 */ +static u_long cvt_rcc8000( unsigned char *buffer, int size, @@ -121,27 +122,27 @@ cvt_rcc8000( clock_time->flags |= PARSEB_POWERUP; clock_time->flags |= PARSEB_UTC; /* British special - guess why 8-) */ - + /* other flags not used */ } return CVT_OK; } /* - * inp_rcc8000 + * parse_inp_fnc_t inp_rcc8000 * - * grep data from input stream + * grab data from input stream */ static u_long inp_rcc8000( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_rcc8000(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case '\n': @@ -150,7 +151,7 @@ inp_rcc8000( return parse_end(parseio); else return rtc; - + default: if (parseio->parse_index == 0) /* take sample at start of message */ diff --git a/contrib/ntp/libparse/clk_schmid.c b/contrib/ntp/libparse/clk_schmid.c index 045f0fcf5a8f..5e303b94c29a 100644 --- a/contrib/ntp/libparse/clk_schmid.c +++ b/contrib/ntp/libparse/clk_schmid.c @@ -1,13 +1,13 @@ /* * /src/NTP/ntp4-dev/libparse/clk_schmid.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * clk_schmid.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * Schmid clock support * based on information and testing from Adam W. Feigin et. al (Swisstime iis.ethz.ch) * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -61,7 +61,7 @@ extern int printf (const char *, ...); * The command to Schmid's DCF77 clock is a single byte; each bit * allows the user to select some part of the time string, as follows (the * output for the lsb is sent first). - * + * * Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths * Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy * Bit 2: week day, 1 byte (unused here) @@ -82,15 +82,15 @@ extern int printf (const char *, ...); #define WS_TIME 0x01 #define WS_SIGNAL 0x02 -#define WS_ALTERNATE 0x01 +#define WS_CALLBIT 0x01 /* "call bit" used to signalize irregularities in the control facilities */ #define WS_ANNOUNCE 0x02 #define WS_TZ 0x0c #define WS_MET 0x08 #define WS_MEST 0x04 #define WS_LEAP 0x10 -static u_long cvt_schmid (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_schmid (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_schmid; +static parse_inp_fnc_t inp_schmid; clockformat_t clock_schmid = { @@ -103,7 +103,7 @@ clockformat_t clock_schmid = 0, /* no private data (complete messages) */ }; - +/* parse_cvt_fnc_t */ static u_long cvt_schmid( unsigned char *buffer, @@ -155,7 +155,7 @@ cvt_schmid( default: return CVT_FAIL|CVT_BADFMT; } - + if (!(buffer[7] & WS_TIME)) { clock_time->flags |= PARSEB_POWERUP; @@ -168,9 +168,9 @@ cvt_schmid( if (buffer[7] & WS_SIGNAL) { - if (buffer[8] & WS_ALTERNATE) + if (buffer[8] & WS_CALLBIT) { - clock_time->flags |= PARSEB_ALTERNATE; + clock_time->flags |= PARSEB_CALLBIT; } if (buffer[8] & WS_ANNOUNCE) @@ -185,32 +185,32 @@ cvt_schmid( } clock_time->flags |= PARSEB_S_LEAP|PARSEB_S_ANTENNA; - + return CVT_OK; } } } /* - * inp_schmid + * parse_inp_fnc_t inp_schmid * - * grep data from input stream + * grab data from input stream */ static u_long inp_schmid( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_schmid(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - - switch (ch) + + switch ((uint8_t)ch) { case 0xFD: /* */ - parseprintf(DD_PARSE, ("mbg_input: ETX seen\n")); + parseprintf(DD_PARSE, ("inp_schmid: 0xFD seen\n")); if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP) return parse_end(parseio); else diff --git a/contrib/ntp/libparse/clk_sel240x.c b/contrib/ntp/libparse/clk_sel240x.c index a09d3478dbf6..b1390b4cefb1 100644 --- a/contrib/ntp/libparse/clk_sel240x.c +++ b/contrib/ntp/libparse/clk_sel240x.c @@ -3,7 +3,7 @@ // Schweitzer Engineering Laboratories, Inc. ////////////////////////////////////////////////////////////////////////////// -// Need to have _XOPEN_SOURCE defined for time.h to give the +// Need to have _XOPEN_SOURCE defined for time.h to give the // correct strptime signature. As per feature_test_macros(7), // define this before including any header files. @@ -51,14 +51,8 @@ // a '?'. But we are only going to call it synced when we receive a ' ' ////////////////////////////////////////////////////////////////////////////// -static unsigned long inp_sel240x( parse_t *parseio, - unsigned int ch, - timestamp_t *tstamp); -static unsigned long cvt_sel240x( unsigned char *buffer, - int size, - struct format *format, - clocktime_t *clock_time, - void *local ); +static parse_inp_fnc_t inp_sel240x; +static parse_cvt_fnc_t cvt_sel240x; // Parse clock format structure describing the message above static struct format sel240x_fmt = @@ -94,7 +88,7 @@ clockformat_t clock_sel240x = ////////////////////////////////////////////////////////////////////////////// static unsigned long inp_sel240x( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { @@ -139,7 +133,7 @@ cvt_sel240x( unsigned char *buffer, { struct tm ptime; buffer++; - buffer = (unsigned char *) strptime( + buffer = (unsigned char *) strptime( (const char *)buffer, "%Y:%j:%H:%M:%S", &ptime ); if( *(buffer+1) != '\x0d' ) { diff --git a/contrib/ntp/libparse/clk_trimtaip.c b/contrib/ntp/libparse/clk_trimtaip.c index 322d0fa08e89..426e897bec97 100644 --- a/contrib/ntp/libparse/clk_trimtaip.c +++ b/contrib/ntp/libparse/clk_trimtaip.c @@ -6,7 +6,7 @@ * Trimble SV6 clock support - several collected codepieces * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -78,8 +78,8 @@ extern int printf (const char *, ...); 0 }; -static unsigned long cvt_trimtaip (unsigned char *, int, struct format *, clocktime_t *, void *); -static unsigned long inp_trimtaip (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_trimtaip; +static parse_inp_fnc_t inp_trimtaip; clockformat_t clock_trimtaip = { @@ -92,7 +92,8 @@ clockformat_t clock_trimtaip = 0 /* no private data */ }; -static unsigned long +/* parse_cvt_fnc_t cvt_trimtaip */ +static u_long cvt_trimtaip( unsigned char *buffer, int size, @@ -141,31 +142,31 @@ cvt_trimtaip( } /* - * inp_trimtaip + * parse_inp_fnc_t inp_trimtaip * - * grep data from input stream + * grab data from input stream */ static u_long inp_trimtaip( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { unsigned int rtc; - + parseprintf(DD_PARSE, ("inp_trimtaip(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - + switch (ch) { case '>': parseprintf(DD_PARSE, ("inp_trimptaip: START seen\n")); - + parseio->parse_index = 1; parseio->parse_data[0] = ch; parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */ return PARSE_INP_SKIP; - + case '<': parseprintf(DD_PARSE, ("inp_trimtaip: END seen\n")); if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP) diff --git a/contrib/ntp/libparse/clk_trimtsip.c b/contrib/ntp/libparse/clk_trimtsip.c index 743e39c3bc74..6c71d75627ac 100644 --- a/contrib/ntp/libparse/clk_trimtsip.c +++ b/contrib/ntp/libparse/clk_trimtsip.c @@ -7,7 +7,7 @@ * Thanks to Sven Dietrich for providing test hardware * * Copyright (c) 1995-2009 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -116,7 +116,7 @@ struct trimble #define STATUS_UNSAFE 1 /* not enough receivers for full precision */ #define STATUS_SYNC 2 /* enough information for good operation */ -static unsigned long inp_tsip (parse_t *, unsigned int, timestamp_t *); +static unsigned long inp_tsip (parse_t *, char, timestamp_t *); static unsigned long cvt_trimtsip (unsigned char *, int, struct format *, clocktime_t *, void *); struct clockformat clock_trimtsip = @@ -136,7 +136,7 @@ struct clockformat clock_trimtsip = static unsigned long inp_tsip( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { @@ -183,7 +183,7 @@ inp_tsip( /* DLE,ETX -> end of packet */ parseio->parse_data[parseio->parse_index++] = DLE; parseio->parse_data[parseio->parse_index] = ch; - parseio->parse_ldsize = parseio->parse_index+1; + parseio->parse_ldsize = (u_short) (parseio->parse_index + 1); memcpy(parseio->parse_ldata, parseio->parse_data, parseio->parse_ldsize); parseio->parse_dtime.parse_msg[parseio->parse_dtime.parse_msglen++] = DLE; parseio->parse_dtime.parse_msg[parseio->parse_dtime.parse_msglen++] = ch; @@ -200,13 +200,13 @@ inp_tsip( return PARSE_INP_SKIP; } - -static int + +static short getshort( unsigned char *p ) { - return get_msb_short(&p); + return (short) get_msb_short(&p); } /* @@ -245,7 +245,7 @@ cvt_trimtsip( { unsigned char *bp; cmd = buffer[1]; - + switch(cmd) { case CMD_RCURTIME: @@ -258,15 +258,15 @@ cvt_trimtsip( bp = &mb(0); if (fetch_ieee754(&bp, IEEE_SINGLE, &secs, trim_offsets) != IEEE_OK) return CVT_FAIL|CVT_BADFMT; - + if ((secs.l_i <= 0) || (t->t_utcknown == 0)) { clock_time->flags = PARSEB_POWERUP; return CVT_OK; } - if (week < 990) { - week += 1024; + if (week < GPSWRAP) { + week += GPSWEEKS; } /* time OK */ @@ -275,7 +275,7 @@ cvt_trimtsip( bp = &mb(6); if (fetch_ieee754(&bp, IEEE_SINGLE, &utcoffset, trim_offsets) != IEEE_OK) return CVT_FAIL|CVT_BADFMT; - + L_SUB(&secs, &utcoffset); /* adjust GPS time to UTC time */ gpstolfp((unsigned short)week, (unsigned short)0, @@ -289,10 +289,10 @@ cvt_trimtsip( if (t->t_leap == ADDSECOND) clock_time->flags |= PARSEB_LEAPADD; - + if (t->t_leap == DELSECOND) clock_time->flags |= PARSEB_LEAPDEL; - + switch (t->t_operable) { case STATUS_SYNC: @@ -307,12 +307,12 @@ cvt_trimtsip( clock_time->flags |= PARSEB_NOSYNC|PARSEB_POWERUP; break; } - + if (t->t_mode == 0) clock_time->flags |= PARSEB_POSITION; - + clock_time->flags |= PARSEB_S_LEAP|PARSEB_S_POSITION; - + return CVT_OK; } /* case 0x41 */ @@ -346,26 +346,26 @@ cvt_trimtsip( { l_fp t0t; unsigned char *lbp; - + /* UTC correction data - derive a leap warning */ - int tls = t->t_gpsutc = getshort((unsigned char *)&mb(12)); /* current leap correction (GPS-UTC) */ - int tlsf = t->t_gpsutcleap = getshort((unsigned char *)&mb(24)); /* new leap correction */ + int tls = t->t_gpsutc = (u_short) getshort((unsigned char *)&mb(12)); /* current leap correction (GPS-UTC) */ + int tlsf = t->t_gpsutcleap = (u_short) getshort((unsigned char *)&mb(24)); /* new leap correction */ - t->t_weekleap = getshort((unsigned char *)&mb(20)); /* week no of leap correction */ - if (t->t_weekleap < 990) - t->t_weekleap += 1024; + t->t_weekleap = (u_short) getshort((unsigned char *)&mb(20)); /* week no of leap correction */ + if (t->t_weekleap < GPSWRAP) + t->t_weekleap = (u_short)(t->t_weekleap + GPSWEEKS); + + t->t_dayleap = (u_short) getshort((unsigned char *)&mb(22)); /* day in week of leap correction */ + t->t_week = (u_short) getshort((unsigned char *)&mb(18)); /* current week no */ + if (t->t_week < GPSWRAP) + t->t_week = (u_short)(t->t_weekleap + GPSWEEKS); - t->t_dayleap = getshort((unsigned char *)&mb(22)); /* day in week of leap correction */ - t->t_week = getshort((unsigned char *)&mb(18)); /* current week no */ - if (t->t_week < 990) - t->t_week += 1024; - lbp = (unsigned char *)&mb(14); /* last update time */ if (fetch_ieee754(&lbp, IEEE_SINGLE, &t0t, trim_offsets) != IEEE_OK) return CVT_FAIL|CVT_BADFMT; t->t_utcknown = t0t.l_ui != 0; - + if ((t->t_utcknown) && /* got UTC information */ (tlsf != tls) && /* something will change */ ((t->t_weekleap - t->t_week) < 5)) /* and close in the future */ diff --git a/contrib/ntp/libparse/clk_varitext.c b/contrib/ntp/libparse/clk_varitext.c index 295ce0af7589..022549e82f4a 100644 --- a/contrib/ntp/libparse/clk_varitext.c +++ b/contrib/ntp/libparse/clk_varitext.c @@ -9,14 +9,14 @@ * clk_varitext.c,v 1.5 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * Varitext code variant by A.McConnell 1997/01/19 - * + * * Supports Varitext's Radio Clock - * + * * Used the Meinberg/Computime clock as a template for Varitext Radio Clock * * Codebase: * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -67,31 +67,31 @@ static const u_char VT_LAST_TELEGRAM_OK = 0x20; /* * The Varitext receiver sends a datagram in the following format every minute - * - * Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLFSTXXX + * + * Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLFSTXXX * Pos 0123456789012345678901 2 3 4567 * 0000000000111111111122 2 2 2222 - * Parse T: : : : : : : \r\n - * - * T Startcharacter "T" specifies start of the timestamp - * YY Year MM Month 1-12 - * MD Day of the month - * WD Day of week - * HH Hour - * MM Minute - * SS Second - * CR Carriage return - * LF Linefeed + * Parse T: : : : : : : \r\n + * + * T Startcharacter "T" specifies start of the timestamp + * YY Year MM Month 1-12 + * MD Day of the month + * WD Day of week + * HH Hour + * MM Minute + * SS Second + * CR Carriage return + * LF Linefeed * ST Status character * Bit 0 - Set= Initialised; Reset=Time Invalid (DO NOT USE) - * Bit 1 - Set= Synchronised; Reset= Unsynchronised - * Bit 2 - Set= Alarm state; Reset= No alarm - * Bit 3 - Set= BST; Reset= GMT - * Bit 4 - Set= Seasonal change in approx hour; Reset= No seasonal change expected + * Bit 1 - Set= Synchronised; Reset= Unsynchronised + * Bit 2 - Set= Alarm state; Reset= No alarm + * Bit 3 - Set= BST; Reset= GMT + * Bit 4 - Set= Seasonal change in approx hour; Reset= No seasonal change expected * Bit 5 - Set= Last MSF telegram was OK; Reset= Last telegram was in error; - * Bit 6 - Always set + * Bit 6 - Always set * Bit 7 - Unused - * XXX Checksum calculated using Fletcher's method (ignored for now). + * XXX Checksum calculated using Fletcher's method (ignored for now). */ static struct format varitext_fmt = @@ -105,8 +105,8 @@ static struct format varitext_fmt = 0 }; -static u_long cvt_varitext (unsigned char *, int, struct format *, clocktime_t *, void *); -static u_long inp_varitext (parse_t *, unsigned int, timestamp_t *); +static parse_cvt_fnc_t cvt_varitext; +static parse_inp_fnc_t inp_varitext; struct varitext { unsigned char start_found; @@ -128,11 +128,11 @@ clockformat_t clock_varitext = }; /* - * cvt_varitext - * + * parse_cvt_fnc_t cvt_varitext + * * convert simple type format */ -static u_long +static u_long cvt_varitext( unsigned char *buffer, int size, @@ -142,7 +142,7 @@ cvt_varitext( ) { - if (!Strok(buffer, format->fixed_string)) { + if (!Strok(buffer, format->fixed_string)) { return CVT_NONE; } else { if (Stoi(&buffer[format->field_offsets[O_DAY].offset], &clock_time->day, @@ -156,7 +156,7 @@ cvt_varitext( Stoi(&buffer[format->field_offsets[O_MIN].offset], &clock_time->minute, format->field_offsets[O_MIN].length) || Stoi(&buffer[format->field_offsets[O_SEC].offset], &clock_time->second, - format->field_offsets[O_SEC].length)) { + format->field_offsets[O_SEC].length)) { return CVT_FAIL | CVT_BADFMT; } else { u_char *f = (u_char*) &buffer[format->field_offsets[O_FLAGS].offset]; @@ -170,24 +170,25 @@ cvt_varitext( clock_time->flags |= PARSEB_DST; } /* - if (!((*f) & VT_INITIALISED)) Clock not initialised + if (!((*f) & VT_INITIALISED)) Clock not initialised clock_time->flags |= PARSEB_POWERUP; - - if (!((*f) & VT_SYNCHRONISED)) Clock not synchronised + + if (!((*f) & VT_SYNCHRONISED)) Clock not synchronised clock_time->flags |= PARSEB_NOSYNC; - - if (((*f) & VT_SEASON_CHANGE)) Seasonal change expected in the next hour + + if (((*f) & VT_SEASON_CHANGE)) Seasonal change expected in the next hour clock_time->flags |= PARSEB_ANNOUNCE; */ - return CVT_OK; + return CVT_OK; } } } -static u_long +/* parse_inp_fnc_t inp_varitext */ +static u_long inp_varitext( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { @@ -196,10 +197,10 @@ inp_varitext( parseprintf(DD_PARSE, ("inp_varitext(0x%lx, 0x%x, ...)\n", (long)parseio, ch)); - if (!t) + if (!t) return PARSE_INP_SKIP; /* local data not allocated - sigh! */ - if (ch == 'T') + if (ch == 'T') t->tstamp = *tstamp; if ((t->previous_ch == 'T') && (ch == ':')) @@ -224,7 +225,7 @@ inp_varitext( return rtc; } - if (t->end_found) + if (t->end_found) { if (++(t->end_count) == 4) /* Finally found the end of the message */ { @@ -235,16 +236,16 @@ inp_varitext( return parse_end(parseio); else return rtc; - } + } } - if ((t->previous_ch == '\r') && (ch == '\n')) + if ((t->previous_ch == '\r') && (ch == '\n')) { t->end_found = 1; } } - + t->previous_ch = ch; return PARSE_INP_SKIP; diff --git a/contrib/ntp/libparse/clk_wharton.c b/contrib/ntp/libparse/clk_wharton.c index 55ab43a9b574..a65bc53860e6 100644 --- a/contrib/ntp/libparse/clk_wharton.c +++ b/contrib/ntp/libparse/clk_wharton.c @@ -74,8 +74,11 @@ extern void printf (const char *, ...); * */ +static parse_cvt_fnc_t cvt_wharton_400a; +static parse_inp_fnc_t inp_wharton_400a; + /* - * cvt_wharton_400a + * parse_cvt_fnc_t cvt_wharton_400a * * convert simple type format */ @@ -121,14 +124,14 @@ cvt_wharton_400a( } /* - * inp_wharton_400a + * parse_inp_fnc_t inp_wharton_400a * - * grep data from input stream + * grab data from input stream */ static u_long inp_wharton_400a( parse_t *parseio, - unsigned int ch, + char ch, timestamp_t *tstamp ) { @@ -166,7 +169,7 @@ clockformat_t clock_wharton_400a = 0, /* conversion configuration */ "WHARTON 400A Series clock Output Format 1", /* String format name */ 15, /* string buffer */ - 0 /* no private data (complete pakets) */ + 0 /* no private data (complete packets) */ }; #else /* not (REFCLOCK && CLOCK_PARSE && CLOCK_WHARTON_400A) */ diff --git a/contrib/ntp/libparse/data_mbg.c b/contrib/ntp/libparse/data_mbg.c index 23ca75509180..0b3808c8ba64 100644 --- a/contrib/ntp/libparse/data_mbg.c +++ b/contrib/ntp/libparse/data_mbg.c @@ -43,6 +43,7 @@ #include "ntp_types.h" #include "ntp_stdlib.h" #include "ntp_fp.h" +#include "ntp_calendar.h" #include "mbg_gps166.h" #include "binio.h" #include "ieee754io.h" @@ -63,10 +64,10 @@ put_mbg_header( GPS_MSG_HDR *headerp ) { - put_lsb_short(bufpp, headerp->gps_cmd); - put_lsb_short(bufpp, headerp->gps_len); - put_lsb_short(bufpp, headerp->gps_data_csum); - put_lsb_short(bufpp, headerp->gps_hdr_csum); + put_lsb_short(bufpp, headerp->cmd); + put_lsb_short(bufpp, headerp->len); + put_lsb_short(bufpp, headerp->data_csum); + put_lsb_short(bufpp, headerp->hdr_csum); } void @@ -75,7 +76,7 @@ get_mbg_sw_rev( SW_REV *sw_revp ) { - sw_revp->code = get_lsb_short(bufpp); + sw_revp->code = get_lsb_uint16(bufpp); memcpy(sw_revp->name, *bufpp, sizeof(sw_revp->name)); *bufpp += sizeof(sw_revp->name); } @@ -86,8 +87,8 @@ get_mbg_ascii_msg( ASCII_MSG *ascii_msgp ) { - ascii_msgp->csum = get_lsb_short(bufpp); - ascii_msgp->valid = get_lsb_short(bufpp); + ascii_msgp->csum = (CSUM) get_lsb_short(bufpp); + ascii_msgp->valid = get_lsb_int16(bufpp); memcpy(ascii_msgp->s, *bufpp, sizeof(ascii_msgp->s)); *bufpp += sizeof(ascii_msgp->s); } @@ -98,7 +99,7 @@ get_mbg_svno( SVNO *svnop ) { - *svnop = get_lsb_short(bufpp); + *svnop = (SVNO) get_lsb_short(bufpp); } void @@ -107,7 +108,7 @@ get_mbg_health( HEALTH *healthp ) { - *healthp = get_lsb_short(bufpp); + *healthp = (HEALTH) get_lsb_short(bufpp); } void @@ -116,7 +117,7 @@ get_mbg_cfg( CFG *cfgp ) { - *cfgp = get_lsb_short(bufpp); + *cfgp = (CFG) get_lsb_short(bufpp); } void @@ -125,7 +126,7 @@ get_mbg_tgps( T_GPS *tgpsp ) { - tgpsp->wn = get_lsb_short(bufpp); + tgpsp->wn = get_lsb_uint16(bufpp); tgpsp->sec = get_lsb_long(bufpp); tgpsp->tick = get_lsb_long(bufpp); } @@ -133,20 +134,20 @@ get_mbg_tgps( void get_mbg_tm( unsigned char **buffpp, - TM *tmp + TM_GPS *tmp ) { - tmp->year = get_lsb_short(buffpp); + tmp->year = get_lsb_int16(buffpp); tmp->month = *(*buffpp)++; - tmp->mday = *(*buffpp)++; - tmp->yday = get_lsb_short(buffpp); - tmp->wday = *(*buffpp)++; - tmp->hour = *(*buffpp)++; - tmp->minute = *(*buffpp)++; - tmp->second = *(*buffpp)++; - tmp->frac = get_lsb_long(buffpp); + tmp->mday = *(*buffpp)++; + tmp->yday = get_lsb_int16(buffpp); + tmp->wday = *(*buffpp)++; + tmp->hour = *(*buffpp)++; + tmp->min = *(*buffpp)++; + tmp->sec = *(*buffpp)++; + tmp->frac = get_lsb_long(buffpp); tmp->offs_from_utc = get_lsb_long(buffpp); - tmp->status= get_lsb_short(buffpp); + tmp->status = get_lsb_uint16(buffpp); } void @@ -155,7 +156,7 @@ get_mbg_ttm( TTM *ttmp ) { - ttmp->channel = get_lsb_short(buffpp); + ttmp->channel = get_lsb_int16(buffpp); get_mbg_tgps(buffpp, &ttmp->t); get_mbg_tm(buffpp, &ttmp->tm); } @@ -166,9 +167,9 @@ get_mbg_synth( SYNTH *synthp ) { - synthp->freq = get_lsb_short(buffpp); - synthp->range = get_lsb_short(buffpp); - synthp->phase = get_lsb_short(buffpp); + synthp->freq = get_lsb_int16(buffpp); + synthp->range = get_lsb_int16(buffpp); + synthp->phase = get_lsb_int16(buffpp); } static void @@ -201,7 +202,7 @@ get_mbg_antinfo( ANT_INFO *antinfop ) { - antinfop->status = get_lsb_short(buffpp); + antinfop->status = get_lsb_int16(buffpp); get_mbg_tm(buffpp, &antinfop->tm_disconn); get_mbg_tm(buffpp, &antinfop->tm_reconn); antinfop->delta_t = get_lsb_long(buffpp); @@ -216,8 +217,8 @@ mbg_time_status_str( { static struct state { - int flag; /* bit flag */ - const char *string; /* bit name */ + int flag; /* bit flag */ + const char *string; /* bit name */ } states[] = { { TM_UTC, "UTC CORR" }, @@ -233,7 +234,7 @@ mbg_time_status_str( { char *start, *p; struct state *s; - + start = p = *buffpp; for (s = states; s->flag; s++) @@ -252,25 +253,27 @@ mbg_time_status_str( *buffpp = p; } } - + void mbg_tm_str( char **buffpp, - TM *tmp, - int size + TM_GPS *tmp, + int size, + int print_status ) { char *s = *buffpp; snprintf(*buffpp, size, "%04d-%02d-%02d %02d:%02d:%02d.%07ld (%c%02d%02d) ", tmp->year, tmp->month, tmp->mday, - tmp->hour, tmp->minute, tmp->second, tmp->frac, + tmp->hour, tmp->min, tmp->sec, (long) tmp->frac, (tmp->offs_from_utc < 0) ? '-' : '+', abs((int)tmp->offs_from_utc) / 3600, (abs((int)tmp->offs_from_utc) / 60) % 60); *buffpp += strlen(*buffpp); - mbg_time_status_str(buffpp, tmp->status, size - (*buffpp - s)); + if (print_status) + mbg_time_status_str(buffpp, tmp->status, size - (*buffpp - s)); } void @@ -281,8 +284,8 @@ mbg_tgps_str( ) { snprintf(*buffpp, size, "week %d + %ld days + %ld.%07ld sec", - tgpsp->wn, tgpsp->sec / 86400, - tgpsp->sec % 86400, tgpsp->tick); + tgpsp->wn, (long) tgpsp->sec / SECSPERDAY, + (long) tgpsp->sec % SECSPERDAY, (long) tgpsp->tick); *buffpp += strlen(*buffpp); } @@ -293,19 +296,19 @@ get_mbg_cfgh( ) { int i; - - cfghp->csum = get_lsb_short(buffpp); - cfghp->valid = get_lsb_short(buffpp); + + cfghp->csum = (CSUM) get_lsb_short(buffpp); + cfghp->valid = get_lsb_int16(buffpp); get_mbg_tgps(buffpp, &cfghp->tot_51); get_mbg_tgps(buffpp, &cfghp->tot_63); get_mbg_tgps(buffpp, &cfghp->t0a); - for (i = MIN_SVNO; i <= MAX_SVNO; i++) + for (i = 0; i < N_SVNO_GPS; i++) { get_mbg_cfg(buffpp, &cfghp->cfg[i]); } - - for (i = MIN_SVNO; i <= MAX_SVNO; i++) + + for (i = 0; i < N_SVNO_GPS; i++) { get_mbg_health(buffpp, &cfghp->health[i]); } @@ -317,23 +320,23 @@ get_mbg_utc( UTC *utcp ) { - utcp->csum = get_lsb_short(buffpp); - utcp->valid = get_lsb_short(buffpp); + utcp->csum = (CSUM) get_lsb_short(buffpp); + utcp->valid = get_lsb_int16(buffpp); get_mbg_tgps(buffpp, &utcp->t0t); - + if (fetch_ieee754(buffpp, IEEE_DOUBLE, &utcp->A0, mbg_double) != IEEE_OK) { L_CLR(&utcp->A0); } - + if (fetch_ieee754(buffpp, IEEE_DOUBLE, &utcp->A1, mbg_double) != IEEE_OK) { L_CLR(&utcp->A1); } - utcp->WNlsf = get_lsb_short(buffpp); - utcp->DNt = get_lsb_short(buffpp); + utcp->WNlsf = get_lsb_uint16(buffpp); + utcp->DNt = get_lsb_int16(buffpp); utcp->delta_tls = *(*buffpp)++; utcp->delta_tlsf = *(*buffpp)++; } @@ -345,7 +348,7 @@ get_mbg_lla( ) { int i; - + for (i = LAT; i <= ALT; i++) { if (fetch_ieee754(buffpp, IEEE_DOUBLE, &lla[i], mbg_double) != IEEE_OK) @@ -367,7 +370,7 @@ get_mbg_xyz( ) { int i; - + for (i = XP; i <= ZP; i++) { if (fetch_ieee754(buffpp, IEEE_DOUBLE, &xyz[i], mbg_double) != IEEE_OK) @@ -384,13 +387,13 @@ get_mbg_comparam( ) { size_t i; - + comparamp->baud_rate = get_lsb_long(buffpp); for (i = 0; i < sizeof(comparamp->framing); i++) { comparamp->framing[i] = *(*buffpp)++; } - comparamp->handshake = get_lsb_short(buffpp); + comparamp->handshake = get_lsb_int16(buffpp); } void @@ -400,12 +403,12 @@ get_mbg_portparam( ) { int i; - - for (i = 0; i < N_COM; i++) + + for (i = 0; i < DEFAULT_N_COM; i++) { get_mbg_comparam(buffpp, &portparamp->com[i]); } - for (i = 0; i < N_COM; i++) + for (i = 0; i < DEFAULT_N_COM; i++) { portparamp->mode[i] = *(*buffpp)++; } @@ -416,20 +419,20 @@ get_mbg_portparam( { \ L_CLR(addr); \ } - + void get_mbg_eph( unsigned char ** buffpp, EPH *ephp ) { - ephp->csum = get_lsb_short(buffpp); - ephp->valid = get_lsb_short(buffpp); - - ephp->health = get_lsb_short(buffpp); - ephp->IODC = get_lsb_short(buffpp); - ephp->IODE2 = get_lsb_short(buffpp); - ephp->IODE3 = get_lsb_short(buffpp); + ephp->csum = (CSUM) get_lsb_short(buffpp); + ephp->valid = get_lsb_int16(buffpp); + + ephp->health = (HEALTH) get_lsb_short(buffpp); + ephp->IODC = (IOD) get_lsb_short(buffpp); + ephp->IODE2 = (IOD) get_lsb_short(buffpp); + ephp->IODE3 = (IOD) get_lsb_short(buffpp); get_mbg_tgps(buffpp, &ephp->tt); get_mbg_tgps(buffpp, &ephp->t0c); @@ -456,7 +459,7 @@ get_mbg_eph( FETCH_DOUBLE(buffpp, &ephp->af2); FETCH_DOUBLE(buffpp, &ephp->tgd); - ephp->URA = get_lsb_short(buffpp); + ephp->URA = get_lsb_uint16(buffpp); ephp->L2code = *(*buffpp)++; ephp->L2flag = *(*buffpp)++; @@ -468,10 +471,10 @@ get_mbg_alm( ALM *almp ) { - almp->csum = get_lsb_short(buffpp); - almp->valid = get_lsb_short(buffpp); - - almp->health = get_lsb_short(buffpp); + almp->csum = (CSUM) get_lsb_short(buffpp); + almp->valid = get_lsb_int16(buffpp); + + almp->health = (HEALTH) get_lsb_short(buffpp); get_mbg_tgps(buffpp, &almp->t0a); @@ -493,8 +496,8 @@ get_mbg_iono( IONO *ionop ) { - ionop->csum = get_lsb_short(buffpp); - ionop->valid = get_lsb_short(buffpp); + ionop->csum = (CSUM) get_lsb_short(buffpp); + ionop->valid = get_lsb_int16(buffpp); FETCH_DOUBLE(buffpp, &ionop->alpha_0); FETCH_DOUBLE(buffpp, &ionop->alpha_1); diff --git a/contrib/ntp/libparse/gpstolfp.c b/contrib/ntp/libparse/gpstolfp.c index 5354dd3223aa..c162429ed92a 100644 --- a/contrib/ntp/libparse/gpstolfp.c +++ b/contrib/ntp/libparse/gpstolfp.c @@ -34,10 +34,8 @@ */ #include #include "ntp_fp.h" - -#define GPSORIGIN 2524953600UL /* NTP origin - GPS origin in seconds */ -#define SECSPERWEEK (unsigned)(604800) /* seconds per week - GPS tells us about weeks */ -#define GPSWRAP 990 /* assume week count less than this in the previous epoch */ +#include "ntp_calendar.h" +#include "parse.h" void gpstolfp( @@ -49,10 +47,10 @@ gpstolfp( { if (weeks < GPSWRAP) { - weeks += 1024; + weeks += GPSWEEKS; } - lfp->l_ui = weeks * SECSPERWEEK + days * 86400 + seconds + GPSORIGIN; /* convert to NTP time */ + lfp->l_ui = (uint32_t)(weeks * SECSPERWEEK + days * SECSPERDAY + seconds + GPSORIGIN); /* convert to NTP time */ lfp->l_uf = 0; } diff --git a/contrib/ntp/libparse/parse.c b/contrib/ntp/libparse/parse.c index 85e5299cb195..9e663f911f74 100644 --- a/contrib/ntp/libparse/parse.c +++ b/contrib/ntp/libparse/parse.c @@ -1,6 +1,6 @@ /* * /src/NTP/ntp4-dev/libparse/parse.c,v 4.20 2005/08/06 17:39:40 kardel RELEASE_20050806_A - * + * * parse.c,v 4.20 2005/08/06 17:39:40 kardel RELEASE_20050806_A * * Parser module for reference clock @@ -12,7 +12,7 @@ * when PARSEKERNEL is not defined NTP time stamps will be used. * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -106,7 +106,7 @@ Strcmp( while (!(c = *s++ - *t++) && *s && *t) /* empty loop */; - + return c; } @@ -154,10 +154,10 @@ parse_ioinit( ) { parseprintf(DD_PARSE, ("parse_iostart\n")); - + parseio->parse_plen = 0; parseio->parse_pdata = (void *)0; - + parseio->parse_data = 0; parseio->parse_ldata = 0; parseio->parse_dsize = 0; @@ -166,7 +166,7 @@ parse_ioinit( parseio->parse_ioflags = PARSE_IO_CS7; /* usual unix default */ parseio->parse_index = 0; parseio->parse_ldsize = 0; - + return 1; } @@ -188,15 +188,15 @@ parse_ioend( unsigned int parse_restart( parse_t *parseio, - unsigned int ch + char ch ) { unsigned int updated = PARSE_INP_SKIP; - + /* * re-start packet - timeout - overflow - start symbol */ - + if (parseio->parse_index) { /* @@ -208,17 +208,17 @@ parse_restart( parseio->parse_ldsize = parseio->parse_index; updated = PARSE_INP_TIME; } - + parseio->parse_index = 1; parseio->parse_data[0] = ch; parseprintf(DD_PARSE, ("parse: parse_restart: buffer start (updated = %x)\n", updated)); return updated; } - + unsigned int parse_addchar( parse_t *parseio, - unsigned int ch + char ch ) { /* @@ -239,7 +239,7 @@ parse_addchar( */ return parse_restart(parseio, ch); } - + unsigned int parse_end( parse_t *parseio @@ -260,11 +260,11 @@ parse_end( int parse_ioread( register parse_t *parseio, - register unsigned int ch, + register char ch, register timestamp_t *tstamp ) { - register unsigned updated = CVT_NONE; + register u_int updated = CVT_NONE; /* * within STREAMS CSx (x < 8) chars still have the upper bits set * so we normalize the characters by masking unecessary bits off. @@ -282,9 +282,9 @@ parse_ioread( case PARSE_IO_CS7: ch &= 0x7F; break; - + case PARSE_IO_CS8: - ch &= 0xFF; + ch &= (char) 0xFFU; break; } @@ -306,18 +306,18 @@ parse_ioread( { updated = CVT_OK; } - + if (input_status & PARSE_INP_TIME) /* time sample is available */ { - updated = timepacket(parseio); + updated = (u_int) timepacket(parseio); } - + if (input_status & PARSE_INP_DATA) /* got additional data */ { updated |= CVT_ADDITIONAL; } } - + /* * remember last character time @@ -353,7 +353,7 @@ parse_iopps( register timestamp_t *ptime ) { - register unsigned updated = CVT_NONE; + register u_int updated = CVT_NONE; /* * PPS pulse information will only be delivered to ONE clock format @@ -364,7 +364,7 @@ parse_iopps( if (clockformats[parseio->parse_lformat]->syncpps) { - updated = clockformats[parseio->parse_lformat]->syncpps(parseio, status == SYNC_ONE, ptime); + updated = (u_int) clockformats[parseio->parse_lformat]->syncpps(parseio, status == SYNC_ONE, ptime); parseprintf(DD_PARSE, ("parse_iopps: updated = 0x%x\n", updated)); } @@ -403,13 +403,13 @@ parse_to_unixtime( ) { #define SETRTC(_X_) { if (cvtrtc) *cvtrtc = (_X_); } - static int days_of_month[] = + static int days_of_month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; register int i; time_t t; - + if (clock_time->utctime) return clock_time->utctime; /* if the conversion routine gets it right away - why not */ @@ -423,12 +423,12 @@ parse_to_unixtime( SETRTC(CVT_FAIL|CVT_BADDATE); return -1; } - + /* * sorry, slow section here - but it's not time critical anyway */ t = julian0(clock_time->year) - julian0(1970); /* Y2kFixes */ - /* month */ + /* month */ if (clock_time->month <= 0 || clock_time->month > 12) { SETRTC(CVT_FAIL|CVT_BADDATE); @@ -466,7 +466,7 @@ parse_to_unixtime( t = TIMES24(t) + clock_time->hour; - /* min */ + /* min */ if (clock_time->minute < 0 || clock_time->minute > 59) { SETRTC(CVT_FAIL|CVT_BADTIME); @@ -475,7 +475,7 @@ parse_to_unixtime( t = TIMES60(t) + clock_time->minute; /* sec */ - + if (clock_time->second < 0 || clock_time->second > 60) /* allow for LEAPs */ { SETRTC(CVT_FAIL|CVT_BADTIME); @@ -510,7 +510,7 @@ Stoi( while(*s == ' ') s++; - + if (*s == '-') { s++; @@ -519,7 +519,7 @@ Stoi( else if (*s == '+') s++; - + for(;;) { c = *s++; @@ -573,16 +573,16 @@ updatetimeinfo( { int s = splhigh(); #endif - + parseio->parse_lstate = parseio->parse_dtime.parse_state | flags | PARSEB_TIMECODE; - + parseio->parse_dtime.parse_state = parseio->parse_lstate; #ifdef PARSEKERNEL (void)splx((unsigned int)s); } #endif - + #ifdef PARSEKERNEL parseprintf(DD_PARSE, ("updatetimeinfo status=0x%x, time=%x\n", parseio->parse_dtime.parse_state, @@ -591,7 +591,7 @@ updatetimeinfo( parseprintf(DD_PARSE, ("updatetimeinfo status=0x%lx, time=%x\n", (long)parseio->parse_dtime.parse_state, parseio->parse_dtime.parse_time.fp.l_ui)); #endif - + return CVT_OK; /* everything fine and dandy... */ } @@ -614,7 +614,7 @@ syn_simple( } /* - * pps_simple + * parse_pps_fnc_t pps_simple * * handle a pps time stamp */ @@ -628,12 +628,12 @@ pps_simple( { parseio->parse_dtime.parse_ptime = *ptime; parseio->parse_dtime.parse_state |= PARSEB_PPS|PARSEB_S_PPS; - + return CVT_NONE; } /* - * pps_one + * parse_pps_fnc_t pps_one * * handle a pps time stamp in ONE edge */ @@ -647,12 +647,12 @@ pps_one( { if (status) return pps_simple(parseio, status, ptime); - + return CVT_NONE; } /* - * pps_zero + * parse_pps_fnc_t pps_zero * * handle a pps time stamp in ZERO edge */ @@ -666,7 +666,7 @@ pps_zero( { if (!status) return pps_simple(parseio, status, ptime); - + return CVT_NONE; } @@ -684,13 +684,13 @@ timepacket( register time_t t; u_long cvtrtc; /* current conversion result */ clocktime_t clock_time; - + memset((char *)&clock_time, 0, sizeof clock_time); format = parseio->parse_lformat; if (format == (unsigned short)~0) return CVT_NONE; - + switch ((cvtrtc = clockformats[format]->convert ? clockformats[format]->convert((unsigned char *)parseio->parse_ldata, parseio->parse_ldsize, (struct format *)(clockformats[format]->data), &clock_time, parseio->parse_pdata) : CVT_NONE) & CVT_MASK) @@ -698,17 +698,17 @@ timepacket( case CVT_FAIL: parseio->parse_badformat++; break; - + case CVT_NONE: /* * too bad - pretend bad format */ parseio->parse_badformat++; break; - + case CVT_OK: break; - + case CVT_SKIP: return CVT_NONE; @@ -716,7 +716,7 @@ timepacket( /* shouldn't happen */ #ifndef PARSEKERNEL msyslog(LOG_WARNING, "parse: INTERNAL error: bad return code of convert routine \"%s\"", clockformats[format]->name); -#endif +#endif return CVT_FAIL|cvtrtc; } @@ -724,7 +724,7 @@ timepacket( { return CVT_FAIL|cvtrtc; } - + /* * time stamp */ @@ -732,7 +732,7 @@ timepacket( parseio->parse_dtime.parse_time.tv.tv_sec = t; parseio->parse_dtime.parse_time.tv.tv_usec = clock_time.usecond; #else - parseio->parse_dtime.parse_time.fp.l_ui = t + JAN_1970; + parseio->parse_dtime.parse_time.fp.l_ui = (uint32_t) (t + JAN_1970); TVUTOTSF(clock_time.usecond, parseio->parse_dtime.parse_time.fp.l_uf); #endif @@ -758,7 +758,7 @@ parse_timecode( */ dct->parsegettc.parse_badformat = parse->parse_badformat; parse->parse_badformat = 0; - + if (parse->parse_ldsize <= PARSE_TCMAX) { dct->parsegettc.parse_count = parse->parse_ldsize; @@ -771,7 +771,7 @@ parse_timecode( } } - + /*ARGSUSED*/ int parse_setfmt( @@ -792,7 +792,7 @@ parse_setfmt( if (parse->parse_pdata) FREE(parse->parse_pdata, parse->parse_plen); parse->parse_pdata = 0; - + parse->parse_plen = clockformats[i]->plen; if (parse->parse_plen) @@ -809,9 +809,9 @@ parse_setfmt( if (parse->parse_data) FREE(parse->parse_data, (unsigned)(parse->parse_dsize * 2 + 2)); parse->parse_ldata = parse->parse_data = 0; - + parse->parse_dsize = clockformats[i]->length; - + if (parse->parse_dsize) { parse->parse_data = (char*)MALLOC((unsigned)(parse->parse_dsize * 2 + 2)); @@ -820,20 +820,20 @@ parse_setfmt( if (parse->parse_pdata) FREE(parse->parse_pdata, parse->parse_plen); parse->parse_pdata = 0; - + parseprintf(DD_PARSE, ("init failed: malloc for data area failed\n")); return 0; } } - + /* * leave room for '\0' */ parse->parse_ldata = parse->parse_data + parse->parse_dsize + 1; - + parse->parse_lformat = i; - + return 1; } } @@ -852,7 +852,7 @@ parse_getfmt( if (dct->parseformat.parse_format < nformats && Strlen(clockformats[dct->parseformat.parse_format]->name) <= PARSE_TCMAX) { - dct->parseformat.parse_count = Strlen(clockformats[dct->parseformat.parse_format]->name)+1; + dct->parseformat.parse_count = (unsigned short) (Strlen(clockformats[dct->parseformat.parse_format]->name) + 1); memcpy(dct->parseformat.parse_buffer, clockformats[dct->parseformat.parse_format]->name, dct->parseformat.parse_count); return 1; } @@ -870,7 +870,7 @@ parse_setcs( ) { parse->parse_ioflags &= ~PARSE_IO_CSIZE; - parse->parse_ioflags |= dct->parsesetcs.parse_cs & PARSE_IO_CSIZE; + parse->parse_ioflags |= (int) (dct->parsesetcs.parse_cs & PARSE_IO_CSIZE); return 1; } diff --git a/contrib/ntp/libparse/parse_conf.c b/contrib/ntp/libparse/parse_conf.c index b7234dd419b7..37871c9de887 100644 --- a/contrib/ntp/libparse/parse_conf.c +++ b/contrib/ntp/libparse/parse_conf.c @@ -1,6 +1,6 @@ /* * /src/NTP/ntp4-dev/libparse/parse_conf.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * parse_conf.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * Parser configuration module for reference clocks @@ -12,7 +12,7 @@ * when STREAM is not defined NTP time stamps will be used. * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/contrib/ntp/libparse/parsesolaris.c b/contrib/ntp/libparse/parsesolaris.c index d3756af882a3..8c91257b4482 100644 --- a/contrib/ntp/libparse/parsesolaris.c +++ b/contrib/ntp/libparse/parsesolaris.c @@ -1,12 +1,12 @@ /* * /src/NTP/ntp4-dev/libparse/parsesolaris.c,v 4.11 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * parsesolaris.c,v 4.11 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * STREAMS module for reference clocks * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -74,7 +74,7 @@ static struct fmodsw fmod_templ = extern struct mod_ops mod_strmodops; -static struct modlstrmod modlstrmod = +static struct modlstrmod modlstrmod = { &mod_strmodops, /* a STREAMS module */ "PARSE - NTP reference", /* name this baby - keep room for revision number */ @@ -100,13 +100,13 @@ _init( ) { static char revision[] = "4.6"; - char *s, *S; + char *s, *S; char *t; - + #ifndef lint t = rcsid; #endif - + /* * copy RCS revision into Drv_name * @@ -125,20 +125,20 @@ _init( } if (*s == ' ') s++; } - - t = modlstrmod.strmod_linkinfo; + + t = modlstrmod.strmod_linkinfo; while (*t && (*t != ' ')) { t++; } if (*t == ' ') t++; - + S = s; while (*S && (((*S >= '0') && (*S <= '9')) || (*S == '.'))) { S++; } - + if (*s && *t && (S > s)) { if (strlen(t) >= (S - s)) @@ -308,7 +308,7 @@ setup_stream( } else { - pprintf(DD_OPEN, "parse: setup_stream - FAILED - no MEMORY for allocb\n"); + pprintf(DD_OPEN, "parse: setup_stream - FAILED - no MEMORY for allocb\n"); return 0; } } @@ -325,18 +325,18 @@ parseopen( { register parsestream_t *parse; static int notice = 0; - - pprintf(DD_OPEN, "parse: OPEN - q=%x\n", q); - + + pprintf(DD_OPEN, "parse: OPEN - q=%x\n", q); + if (sflag != MODOPEN) { /* open only for modules */ - pprintf(DD_OPEN, "parse: OPEN - FAILED - not MODOPEN\n"); + pprintf(DD_OPEN, "parse: OPEN - FAILED - not MODOPEN\n"); return EIO; } if (q->q_ptr != (caddr_t)NULL) { - pprintf(DD_OPEN, "parse: OPEN - FAILED - EXCLUSIVE ONLY\n"); + pprintf(DD_OPEN, "parse: OPEN - FAILED - EXCLUSIVE ONLY\n"); return EBUSY; } @@ -346,10 +346,10 @@ parseopen( return ENOMEM; } - pprintf(DD_OPEN, "parse: OPEN - parse area q=%x, q->q_ptr=%x\n", q, q->q_ptr); + pprintf(DD_OPEN, "parse: OPEN - parse area q=%x, q->q_ptr=%x\n", q, q->q_ptr); WR(q)->q_ptr = q->q_ptr; - pprintf(DD_OPEN, "parse: OPEN - WQ parse area q=%x, q->q_ptr=%x\n", WR(q), WR(q)->q_ptr); - + pprintf(DD_OPEN, "parse: OPEN - WQ parse area q=%x, q->q_ptr=%x\n", WR(q), WR(q)->q_ptr); + parse = (parsestream_t *) q->q_ptr; bzero((caddr_t)parse, sizeof(*parse)); parse->parse_queue = q; @@ -360,7 +360,7 @@ parseopen( qprocson(q); - pprintf(DD_OPEN, "parse: OPEN - initializing io subsystem q=%x\n", q); + pprintf(DD_OPEN, "parse: OPEN - initializing io subsystem q=%x\n", q); if (!parse_ioinit(&parse->parse_io)) { @@ -374,12 +374,12 @@ parseopen( return EIO; } - pprintf(DD_OPEN, "parse: OPEN - initializing stream q=%x\n", q); + pprintf(DD_OPEN, "parse: OPEN - initializing stream q=%x\n", q); if (setup_stream(q, M_PARSE)) { (void) init_linemon(q); /* hook up PPS ISR routines if possible */ - pprintf(DD_OPEN, "parse: OPEN - SUCCEEDED\n"); + pprintf(DD_OPEN, "parse: OPEN - SUCCEEDED\n"); /* * I know that you know the delete key, but you didn't write this @@ -412,19 +412,19 @@ parseclose( { register parsestream_t *parse = (parsestream_t *)q->q_ptr; register unsigned long s; - + pprintf(DD_CLOSE, "parse: CLOSE\n"); - + qprocsoff(q); s = splhigh(); - + if (parse->parse_dqueue) close_linemon(parse->parse_dqueue, q); parse->parse_dqueue = (queue_t *)0; (void) splx(s); - + parse_ioend(&parse->parse_io); kmem_free((caddr_t)parse, sizeof(parsestream_t)); @@ -444,7 +444,7 @@ parsersvc( ) { mblk_t *mp; - + while ((mp = getq(q))) { if (canputnext(q) || (mp->b_datap->db_type > QPCTL)) @@ -477,15 +477,15 @@ parsewput( register mblk_t *datap; register struct iocblk *iocp; parsestream_t *parse = (parsestream_t *)q->q_ptr; - + pprintf(DD_WPUT, "parse: parsewput\n"); - + switch (mp->b_datap->db_type) { default: putnext(q, mp); break; - + case M_IOCTL: iocp = (void *)mp->b_rptr; switch (iocp->ioc_cmd) @@ -519,7 +519,7 @@ parsewput( iocp->ioc_count = sizeof(struct ppsclockev); qreply(q, mp); break; - + case PARSEIOC_ENABLE: case PARSEIOC_DISABLE: { @@ -537,7 +537,7 @@ parsewput( } qreply(q, mp); break; - } + } case PARSEIOC_TIMECODE: case PARSEIOC_SETFMT: @@ -553,7 +553,7 @@ parsewput( pprintf(DD_WPUT, "parse: parsewput - PARSEIOC_TIMECODE\n"); ok = parse_timecode(dct, &parse->parse_io); break; - + case PARSEIOC_SETFMT: pprintf(DD_WPUT, "parse: parsewput - PARSEIOC_SETFMT\n"); ok = parse_setfmt(dct, &parse->parse_io); @@ -600,7 +600,7 @@ rdchar( else { register mblk_t *mmp = *mp; - + *mp = (*mp)->b_cont; freeb(mmp); } @@ -619,7 +619,7 @@ parserput( { register unsigned char type; mblk_t *mp = imp; - + switch (type = mp->b_datap->db_type) { default: @@ -636,7 +636,7 @@ parserput( else putq(q, mp); break; - + case M_BREAK: case M_DATA: { @@ -691,7 +691,7 @@ parserput( if (nmp) freemsg(nmp); parse_iodone(&parse->parse_io); } - } + } } else { @@ -733,7 +733,7 @@ parserput( gethrestime(&hres_time); c_time.tv.tv_sec = hres_time.tv_sec; c_time.tv.tv_usec = hres_time.tv_nsec / 1000; - + pprintf(DD_RPUT, "parse: parserput - M_%sHANGUP\n", (type == M_HANGUP) ? "" : "UN"); if ((parse->parse_status & PARSE_ENABLE) && @@ -758,7 +758,7 @@ parserput( } else putq(q, mp); - + if (status) { parse->parse_ppsclockev.tv = c_time.tv; @@ -780,7 +780,7 @@ init_linemon( ) { register queue_t *dq; - + dq = WR(q); /* * we ARE doing very bad things down here (basically stealing ISR @@ -916,14 +916,14 @@ init_zs_linemon( szs->zsops.zsop_xsint = (void (*) (struct zscom *))zs_xsisr; /* place our bastard */ szs->oldzsops = zs->zs_ops; emergencyzs = zs->zs_ops; - + zs->zs_ops = &szs->zsops; /* hook it up */ /* - * XXX: this is usually done via zsopinit() + * XXX: this is usually done via zsopinit() * - have yet to find a way to call that routine */ zs->zs_xsint = (void (*) (struct zscom *))zs_xsisr; - + mutex_exit(zs->zs_excl); pprintf(DD_INSTALL, "init_zs_linemon: CD monitor installed\n"); @@ -934,7 +934,7 @@ init_zs_linemon( } /* - * unregister our ISR routine - must call under splhigh() (or + * unregister our ISR routine - must call under splhigh() (or * whatever block ZS status interrupts) */ static void @@ -970,7 +970,7 @@ close_zs_linemon( mutex_exit(zs->zs_excl); kmem_free((caddr_t)szs, sizeof (struct savedzsops)); - + pprintf(DD_INSTALL, "close_zs_linemon: CD monitor deleted\n"); return; } @@ -1005,7 +1005,7 @@ zs_xsisr( { timestamp_t cdevent; register int status; - + /* * time stamp */ @@ -1024,7 +1024,7 @@ zs_xsisr( * ok - now the hard part - find ourself */ loopcheck = MAXDEPTH; - + while (q) { if (q->q_qinfo && q->q_qinfo->qi_minfo) @@ -1052,7 +1052,7 @@ zs_xsisr( */ parse_iodone(&((parsestream_t *)q->q_ptr)->parse_io); } - + if (status) { ((parsestream_t *)q->q_ptr)->parse_ppsclockev.tv = cdevent.tv; @@ -1091,9 +1091,9 @@ zs_xsisr( SCC_WRITE0(ZSWR0_RESET_STATUS); /* might kill other conditions here */ return; } - } + } - pprintf(DD_ISR, "zs_xsisr: non CD event 0x%x for \"%s\"\n", + pprintf(DD_ISR, "zs_xsisr: non CD event 0x%x for \"%s\"\n", (za->za_rr0 ^ zsstatus) & ~ZSRR0_CD,dname); /* * we are now gathered here to process some unusual external status @@ -1108,7 +1108,7 @@ zs_xsisr( q = za->za_ttycommon.t_readq; loopcheck = MAXDEPTH; - + /* * the real thing for everything else ... */ @@ -1120,7 +1120,7 @@ zs_xsisr( if (!strcmp(dname, parseinfo.st_rdinit->qi_minfo->mi_idname)) { register void (*zsisr) (struct zscom *); - + /* * back home - phew (hopping along stream queues might * prove dangerous to your health) @@ -1129,7 +1129,7 @@ zs_xsisr( zsisr(zs); else panic("zs_xsisr: unable to locate original ISR"); - + pprintf(DD_ISR, "zs_xsisr: non CD event was processed for \"%s\"\n", dname); /* * now back to our program ... @@ -1151,7 +1151,7 @@ zs_xsisr( * corrupted TTY structures */ printf("zs_zsisr: looking for \"%s\" - found \"%s\" - taking EMERGENCY path\n", parseinfo.st_rdinit->qi_minfo->mi_idname, dname ? dname : "-NIL-"); - + if (emergencyzs && emergencyzs->zsop_xsint) emergencyzs->zsop_xsint(zs); else diff --git a/contrib/ntp/libparse/parsestreams.c b/contrib/ntp/libparse/parsestreams.c index 3fb4cc3511aa..6cd9d8ff904e 100644 --- a/contrib/ntp/libparse/parsestreams.c +++ b/contrib/ntp/libparse/parsestreams.c @@ -1,13 +1,13 @@ /* * /src/NTP/ntp4-dev/libparse/parsestreams.c,v 4.11 2005/04/16 17:32:10 kardel RELEASE_20050508_A - * + * * parsestreams.c,v 4.11 2005/04/16 17:32:10 kardel RELEASE_20050508_A * * STREAMS module for reference clocks * (SunOS4.x) * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -110,7 +110,7 @@ static char mnam[] = "PARSEPPS "; /* name this baby - keep room for revision #else static char mnam[] = "PARSE "; /* name this baby - keep room for revision number */ #endif -struct vdldrv parsesync_vd = +struct vdldrv parsesync_vd = { VDMAGIC_PSEUDO, /* nothing like a real driver - a STREAMS module */ mnam, @@ -166,7 +166,7 @@ Strcmp( while (!(c = *s++ - *t++) && *s && *t) /* empty loop */; - + return c; } @@ -186,10 +186,10 @@ Strncmp( while (n-- && !(c = *s++ - *t++) && *s && *t) /* empty loop */; - + return c; } - + void ntp_memset( char *a, @@ -217,12 +217,12 @@ xxxinit( { extern struct fmodsw fmodsw[]; extern int fmodcnt; - + struct fmodsw *fm = fmodsw; struct fmodsw *fmend = &fmodsw[fmodcnt]; struct fmodsw *ifm = (struct fmodsw *)0; char *mname = parseinfo.st_rdinit->qi_minfo->mi_idname; - + switch (fc) { case VDLOAD: @@ -233,13 +233,13 @@ xxxinit( */ while (fm <= fmend) { - if (!Strncmp(fm->f_name, mname, FMNAMESZ)) + if (!Strncmp(fm->f_name, mname, FMNAMESZ)) { printf("vddrinit[%s]: STREAMS module already loaded.\n", mname); return(EBUSY); } else - if ((ifm == (struct fmodsw *)0) && + if ((ifm == (struct fmodsw *)0) && (fm->f_name[0] == '\0') && (fm->f_str == (struct streamtab *)0)) { @@ -261,7 +261,7 @@ xxxinit( { static char revision[] = "4.7"; char *s, *S, *t; - + s = rcsid; /* NOOP - keep compilers happy */ Strncpy(ifm->f_name, mname, FMNAMESZ); @@ -285,20 +285,20 @@ xxxinit( } if (*s == ' ') s++; } - - t = parsesync_vd.Drv_name; + + t = parsesync_vd.Drv_name; while (*t && (*t != ' ')) { t++; } if (*t == ' ') t++; - + S = s; while (*S && (((*S >= '0') && (*S <= '9')) || (*S == '.'))) { S++; } - + if (*s && *t && (S > s)) { if (Strlen(t) >= (S - s)) @@ -307,9 +307,9 @@ xxxinit( } } return (0); - } + } break; - + case VDUNLOAD: if (parsebusy > 0) { @@ -328,7 +328,7 @@ xxxinit( fm->f_name[0] = '\0'; fm->f_str = (struct streamtab *)0; fm++; - + break; } fm++; @@ -341,14 +341,14 @@ xxxinit( else return (0); } - + case VDSTAT: return (0); default: return (EIO); - + } return EIO; } @@ -460,7 +460,7 @@ setup_stream( } else { - parseprintf(DD_OPEN,("parse: setup_stream - FAILED - no MEMORY for allocb\n")); + parseprintf(DD_OPEN,("parse: setup_stream - FAILED - no MEMORY for allocb\n")); return 0; } } @@ -476,37 +476,37 @@ parseopen( { register parsestream_t *parse; static int notice = 0; - - parseprintf(DD_OPEN,("parse: OPEN\n")); - + + parseprintf(DD_OPEN,("parse: OPEN\n")); + if (sflag != MODOPEN) { /* open only for modules */ - parseprintf(DD_OPEN,("parse: OPEN - FAILED - not MODOPEN\n")); + parseprintf(DD_OPEN,("parse: OPEN - FAILED - not MODOPEN\n")); return OPENFAIL; } if (q->q_ptr != (caddr_t)NULL) { u.u_error = EBUSY; - parseprintf(DD_OPEN,("parse: OPEN - FAILED - EXCLUSIVE ONLY\n")); + parseprintf(DD_OPEN,("parse: OPEN - FAILED - EXCLUSIVE ONLY\n")); return OPENFAIL; } #ifdef VDDRV parsebusy++; #endif - + q->q_ptr = (caddr_t)kmem_alloc(sizeof(parsestream_t)); if (q->q_ptr == (caddr_t)0) { - parseprintf(DD_OPEN,("parse: OPEN - FAILED - no memory\n")); + parseprintf(DD_OPEN,("parse: OPEN - FAILED - no memory\n")); #ifdef VDDRV parsebusy--; #endif return OPENFAIL; } WR(q)->q_ptr = q->q_ptr; - + parse = (parsestream_t *)(void *)q->q_ptr; bzero((caddr_t)parse, sizeof(*parse)); parse->parse_queue = q; @@ -531,7 +531,7 @@ parseopen( { (void) init_linemon(q); /* hook up PPS ISR routines if possible */ - parseprintf(DD_OPEN,("parse: OPEN - SUCCEEDED\n")); + parseprintf(DD_OPEN,("parse: OPEN - SUCCEEDED\n")); /* * I know that you know the delete key, but you didn't write this @@ -569,17 +569,17 @@ parseclose( { register parsestream_t *parse = (parsestream_t *)(void *)q->q_ptr; register unsigned long s; - + parseprintf(DD_CLOSE,("parse: CLOSE\n")); - + s = splhigh(); - + if (parse->parse_dqueue) close_linemon(parse->parse_dqueue, q); parse->parse_dqueue = (queue_t *)0; (void) splx(s); - + parse_ioend(&parse->parse_io); kmem_free((caddr_t)parse, sizeof(parsestream_t)); @@ -602,7 +602,7 @@ parsersvc( ) { mblk_t *mp; - + while ((mp = getq(q))) { if (canput(q->q_next) || (mp->b_datap->db_type > QPCTL)) @@ -635,15 +635,15 @@ parsewput( register mblk_t *datap; register struct iocblk *iocp; parsestream_t *parse = (parsestream_t *)(void *)q->q_ptr; - + parseprintf(DD_WPUT,("parse: parsewput\n")); - + switch (mp->b_datap->db_type) { default: putnext(q, mp); break; - + case M_IOCTL: iocp = (struct iocblk *)(void *)mp->b_rptr; switch (iocp->ioc_cmd) @@ -676,7 +676,7 @@ parsewput( iocp->ioc_count = sizeof(struct ppsclockev); qreply(q, mp); break; - + case PARSEIOC_ENABLE: case PARSEIOC_DISABLE: { @@ -694,7 +694,7 @@ parsewput( } qreply(q, mp); break; - } + } case PARSEIOC_TIMECODE: case PARSEIOC_SETFMT: @@ -710,7 +710,7 @@ parsewput( parseprintf(DD_WPUT,("parse: parsewput - PARSEIOC_TIMECODE\n")); ok = parse_timecode(dct, &parse->parse_io); break; - + case PARSEIOC_SETFMT: parseprintf(DD_WPUT,("parse: parsewput - PARSEIOC_SETFMT\n")); ok = parse_setfmt(dct, &parse->parse_io); @@ -757,7 +757,7 @@ rdchar( else { register mblk_t *mmp = *mp; - + *mp = (*mp)->b_cont; freeb(mmp); } @@ -775,7 +775,7 @@ parserput( ) { unsigned char type; - + switch (type = mp->b_datap->db_type) { default: @@ -791,7 +791,7 @@ parserput( else putq(q, mp); break; - + case M_BREAK: case M_DATA: { @@ -844,7 +844,7 @@ parserput( if (nmp) freemsg(nmp); parse_iodone(&parse->parse_io); } - } + } } else { @@ -883,7 +883,7 @@ parserput( register int status = cd_invert ^ (type == M_UNHANGUP); uniqtime(&ctime.tv); - + parseprintf(DD_RPUT,("parse: parserput - M_%sHANGUP\n", (type == M_HANGUP) ? "" : "UN")); if ((parse->parse_status & PARSE_ENABLE) && @@ -908,7 +908,7 @@ parserput( } else putq(q, mp); - + if (status) { parse->parse_ppsclockev.tv = ctime.tv; @@ -930,7 +930,7 @@ init_linemon( ) { register queue_t *dq; - + dq = WR(q); /* * we ARE doing very bad things down here (basically stealing ISR @@ -1038,7 +1038,7 @@ init_zs_linemon( else { unsigned long s; - + /* * we do a direct replacement, in case others fiddle also * if somebody else grabs our hook and we disconnect @@ -1064,9 +1064,9 @@ init_zs_linemon( szs->zsops.zsop_xsint = zs_xsisr; /* place our bastard */ szs->oldzsops = zs->zs_ops; emergencyzs = zs->zs_ops; - + zsopinit(zs, &szs->zsops); /* hook it up */ - + (void) splx(s); parseprintf(DD_INSTALL, ("init_zs_linemon: CD monitor installed\n")); @@ -1099,11 +1099,11 @@ close_zs_linemon( else { register struct savedzsops *szs = (struct savedzsops *)parsestream->parse_data; - + zsopinit(zs, szs->oldzsops); /* reset to previous handler functions */ kmem_free((caddr_t)szs, sizeof (struct savedzsops)); - + parseprintf(DD_INSTALL, ("close_zs_linemon: CD monitor deleted\n")); return; } @@ -1148,7 +1148,7 @@ zs_xsisr( { timestamp_t cdevent; register int status; - + za->za_rr0 = (za->za_rr0 & ~(cdmask)) | (zsstatus & (cdmask)); #ifdef PPS_SYNC @@ -1163,7 +1163,7 @@ zs_xsisr( * time stamp */ uniqtime(&cdevent.tv); - + #ifdef PPS_SYNC (void)splx(s); #endif @@ -1190,7 +1190,7 @@ zs_xsisr( * ok - now the hard part - find ourself */ loopcheck = MAXDEPTH; - + while (q) { if (q->q_qinfo && q->q_qinfo->qi_minfo) @@ -1218,7 +1218,7 @@ zs_xsisr( */ parse_iodone(&((parsestream_t *)(void *)q->q_ptr)->parse_io); } - + if (status) { ((parsestream_t *)(void *)q->q_ptr)->parse_ppsclockev.tv = cdevent.tv; @@ -1251,13 +1251,13 @@ zs_xsisr( zsaddr->zscc_control = ZSWR0_RESET_STATUS; /* might kill other conditions here */ return 0; } - } + } if (zsstatus & cdmask) /* fake CARRIER status */ za->za_flags |= ZAS_CARR_ON; else za->za_flags &= ~ZAS_CARR_ON; - + /* * we are now gathered here to process some unusual external status * interrupts. @@ -1271,7 +1271,7 @@ zs_xsisr( q = za->za_ttycommon.t_readq; loopcheck = MAXDEPTH; - + /* * the real thing for everything else ... */ @@ -1283,7 +1283,7 @@ zs_xsisr( if (!Strcmp(dname, parseinfo.st_rdinit->qi_minfo->mi_idname)) { register int (*zsisr) (struct zscom *); - + /* * back home - phew (hopping along stream queues might * prove dangerous to your health) @@ -1292,7 +1292,7 @@ zs_xsisr( return zsisr(zs); else panic("zs_xsisr: unable to locate original ISR"); - + parseprintf(DD_ISR, ("zs_xsisr: non CD event was processed for \"%s\"\n", dname)); /* * now back to our program ... @@ -1314,7 +1314,7 @@ zs_xsisr( * corrupted TTY structures */ printf("zs_zsisr: looking for \"%s\" - found \"%s\" - taking EMERGENCY path\n", parseinfo.st_rdinit->qi_minfo->mi_idname, dname ? dname : "-NIL-"); - + if (emergencyzs && emergencyzs->zsop_xsint) emergencyzs->zsop_xsint(zs); else diff --git a/contrib/ntp/libparse/trim_info.c b/contrib/ntp/libparse/trim_info.c index 619e23861aef..4178209e5c01 100644 --- a/contrib/ntp/libparse/trim_info.c +++ b/contrib/ntp/libparse/trim_info.c @@ -6,7 +6,7 @@ * $Created: Sun Aug 2 20:20:34 1998 $ * * Copyright (c) 1995-2005 by Frank Kardel ntp.org> - * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany + * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/contrib/ntp/ntpd/Makefile.in b/contrib/ntp/ntpd/Makefile.in index 09af628ca387..ed489f632109 100644 --- a/contrib/ntp/ntpd/Makefile.in +++ b/contrib/ntp/ntpd/Makefile.in @@ -52,8 +52,7 @@ subdir = ntpd ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/libopts/m4/stdnoreturn.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap-thread-check.m4 \ - $(top_srcdir)/sntp/libevent/m4/openldap.m4 \ + $(top_srcdir)/sntp/m4/ax_c99_struct_init.m4 \ $(top_srcdir)/sntp/m4/define_dir.m4 \ $(top_srcdir)/sntp/m4/hms_search_lib.m4 \ $(top_srcdir)/sntp/m4/libtool.m4 \ @@ -82,6 +81,8 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ntp_sntp.m4 \ $(top_srcdir)/sntp/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/sntp/m4/ntp_vpathhack.m4 \ + $(top_srcdir)/sntp/m4/openldap-thread-check.m4 \ + $(top_srcdir)/sntp/m4/openldap.m4 \ $(top_srcdir)/sntp/m4/os_cflags.m4 \ $(top_srcdir)/sntp/m4/snprintf.m4 \ $(top_srcdir)/sntp/m4/version.m4 $(top_srcdir)/configure.ac @@ -431,6 +432,11 @@ TIMETRIM_DL = @TIMETRIM_DL@ TIMETRIM_DS = @TIMETRIM_DS@ TIMETRIM_MS = @TIMETRIM_MS@ TIMETRIM_NI = @TIMETRIM_NI@ +UPDATE_LEAP_DB = @UPDATE_LEAP_DB@ +UPDATE_LEAP_DL = @UPDATE_LEAP_DL@ +UPDATE_LEAP_DS = @UPDATE_LEAP_DS@ +UPDATE_LEAP_MS = @UPDATE_LEAP_MS@ +UPDATE_LEAP_NI = @UPDATE_LEAP_NI@ VERSION = @VERSION@ VER_SUFFIX = @VER_SUFFIX@ YACC = @YACC@ diff --git a/contrib/ntp/ntpd/cmd_args.c b/contrib/ntp/ntpd/cmd_args.c index 045c0a98e233..14e86f7e87ca 100644 --- a/contrib/ntp/ntpd/cmd_args.c +++ b/contrib/ntp/ntpd/cmd_args.c @@ -76,6 +76,9 @@ getCmdOpts( if (HAVE_OPT( PANICGATE )) allow_panic = TRUE; + if (HAVE_OPT( FORCE_STEP_ONCE )) + force_step_once = TRUE; + #ifdef HAVE_DROPROOT if (HAVE_OPT( JAILDIR )) { droproot = 1; @@ -175,14 +178,14 @@ getCmdOpts( if (HAVE_OPT( UPDATEINTERVAL )) { long val = OPT_VALUE_UPDATEINTERVAL; - + if (val >= 0) interface_interval = val; else { - fprintf(stderr, + fprintf(stderr, "command line interface update interval %ld must not be negative\n", val); - msyslog(LOG_ERR, + msyslog(LOG_ERR, "command line interface update interval %ld must not be negative", val); errflg++; diff --git a/contrib/ntp/ntpd/invoke-ntp.conf.texi b/contrib/ntp/ntpd/invoke-ntp.conf.texi index 23569fc52f6f..7151efb82e14 100644 --- a/contrib/ntp/ntpd/invoke-ntp.conf.texi +++ b/contrib/ntp/ntpd/invoke-ntp.conf.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi) # -# It has been AutoGen-ed February 4, 2015 at 02:41:59 AM by AutoGen 5.18.5pre4 +# It has been AutoGen-ed April 7, 2015 at 04:25:50 AM by AutoGen 5.18.5pre4 # From the definitions ntp.conf.def # and the template file agtexi-file.tpl @end ignore @@ -2482,7 +2482,7 @@ holds the names of all peer variables and the @code{clock_var_list} holds the names of the reference clock variables. -@item @code{tinker} @code{[@code{allan} @kbd{allan} | @code{dispersion} @kbd{dispersion} | @code{freq} @kbd{freq} | @code{huffpuff} @kbd{huffpuff} | @code{panic} @kbd{panic} | @code{step} @kbd{srep} | @code{stepout} @kbd{stepout}]} +@item @code{tinker} @code{[@code{allan} @kbd{allan} | @code{dispersion} @kbd{dispersion} | @code{freq} @kbd{freq} | @code{huffpuff} @kbd{huffpuff} | @code{panic} @kbd{panic} | @code{step} @kbd{step} | @code{stepback} @kbd{stepback} | @code{stepfwd} @kbd{stepfwd} | @code{stepout} @kbd{stepout}]} This command can be used to alter several system variables in very exceptional circumstances. It should occur in the @@ -2539,6 +2539,19 @@ adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. +@item @code{stepback} @kbd{stepback} +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +@item @code{stepfwd} @kbd{stepfwd} +As for stepback, but for the forward direction. @item @code{stepout} @kbd{stepout} The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/invoke-ntp.keys.texi b/contrib/ntp/ntpd/invoke-ntp.keys.texi index dbafe1c733e9..b0d494040e79 100644 --- a/contrib/ntp/ntpd/invoke-ntp.keys.texi +++ b/contrib/ntp/ntpd/invoke-ntp.keys.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi) # -# It has been AutoGen-ed February 4, 2015 at 02:42:02 AM by AutoGen 5.18.5pre4 +# It has been AutoGen-ed April 7, 2015 at 04:25:52 AM by AutoGen 5.18.5pre4 # From the definitions ntp.keys.def # and the template file agtexi-file.tpl @end ignore diff --git a/contrib/ntp/ntpd/invoke-ntpd.texi b/contrib/ntp/ntpd/invoke-ntpd.texi index 75a525702309..b6c69db8a1da 100644 --- a/contrib/ntp/ntpd/invoke-ntpd.texi +++ b/contrib/ntp/ntpd/invoke-ntpd.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi) # -# It has been AutoGen-ed February 4, 2015 at 02:42:04 AM by AutoGen 5.18.5pre4 +# It has been AutoGen-ed April 7, 2015 at 04:25:54 AM by AutoGen 5.18.5pre4 # From the definitions ntpd-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -95,6 +95,7 @@ This software is released under the NTP license, . * ntpd configfile:: configfile option (-c) * ntpd driftfile:: driftfile option (-f) * ntpd panicgate:: panicgate option (-g) +* ntpd force-step-once:: force-step-once option (-G) * ntpd jaildir:: jaildir option (-i) * ntpd interface:: interface option (-I) * ntpd keyfile:: keyfile option (-k) @@ -141,7 +142,7 @@ with a status code of 0. @exampleindent 0 @example -ntpd - NTP daemon program - Ver. 4.2.8p1 +ntpd - NTP daemon program - Ver. 4.2.8p2 Usage: ntpd [ - [] | --[@{=| @}] ]... \ [ ... ] Flg Arg Option-Name Description @@ -162,6 +163,7 @@ Usage: ntpd [ - [] | --[@{=| @}] ]... \ -f Str driftfile frequency drift file name -g no panicgate Allow the first adjustment to be Big - may appear multiple times + -G no force-step-once Step any initial offset correction. -i Str jaildir Jail directory -I Str interface Listen on an interface name or address - may appear multiple times @@ -298,7 +300,7 @@ The name and path of the frequency file, by default. This is the same operation as the @code{driftfile} @kbd{driftfile} -configuration specification in the +configuration specification in the @file{/etc/ntp.conf} file. @node ntpd panicgate @@ -326,6 +328,21 @@ options. See the @code{tinker} configuration file directive for other options. +@node ntpd force-step-once +@subsection force-step-once option (-G) +@cindex ntpd-force-step-once + +This is the ``step any initial offset correction.'' option. +Normally, +@code{ntpd} +steps the time if the time offset exceeds the step threshold, +which is 128 ms by default, and otherwise slews the time. +This option forces the initial offset correction to be stepped, +so the highest time accuracy can be achieved quickly. +However, this may also cause the time to be stepped back +so this option must not be used if +applications requiring monotonic time are running. +See the @code{tinker} configuration file directive for other options. @node ntpd jaildir @subsection jaildir option (-i) @cindex ntpd-jaildir @@ -370,7 +387,7 @@ Open the network address given, or all the addresses associated with the given interface name. This option may appear multiple times. This option also implies not opening other addresses, except wildcard and localhost. This option is deprecated. Please consider using the configuration file -@code{interface} command, which is more versatile. +@code{interface} command, which is more versatile. @node ntpd keyfile @subsection keyfile option (-k) @cindex ntpd-keyfile diff --git a/contrib/ntp/ntpd/keyword-gen-utd b/contrib/ntp/ntpd/keyword-gen-utd index 0485feecca0c..b9b59bd4739f 100644 --- a/contrib/ntp/ntpd/keyword-gen-utd +++ b/contrib/ntp/ntpd/keyword-gen-utd @@ -1 +1 @@ - * Generated 2015-01-03 23:51:10 UTC diff_ignore_line + * Generated 2015-03-16 09:05:44 UTC diff_ignore_line diff --git a/contrib/ntp/ntpd/keyword-gen.c b/contrib/ntp/ntpd/keyword-gen.c index bb593aba2e20..5872e2a5cc1f 100644 --- a/contrib/ntp/ntpd/keyword-gen.c +++ b/contrib/ntp/ntpd/keyword-gen.c @@ -206,6 +206,8 @@ struct key_tok ntp_keywords[] = { { "filenum", T_Filenum, FOLLBY_TOKEN }, /* tinker_option */ { "step", T_Step, FOLLBY_TOKEN }, +{ "stepback", T_Stepback, FOLLBY_TOKEN }, +{ "stepfwd", T_Stepfwd, FOLLBY_TOKEN }, { "panic", T_Panic, FOLLBY_TOKEN }, { "dispersion", T_Dispersion, FOLLBY_TOKEN }, { "stepout", T_Stepout, FOLLBY_TOKEN }, diff --git a/contrib/ntp/ntpd/ntp.conf.5man b/contrib/ntp/ntpd/ntp.conf.5man index 1e9ba668fe4d..f1ed4b298fd9 100644 --- a/contrib/ntp/ntpd/ntp.conf.5man +++ b/contrib/ntp/ntpd/ntp.conf.5man @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp.conf 5man "04 Feb 2015" "4.2.8p1" "File Formats" +.TH ntp.conf 5man "07 Apr 2015" "4.2.8p2" "File Formats" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gKaW.1/ag-tKaO91) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:37 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.conf.def .\" and the template file agman-cmd.tpl .SH NAME @@ -2786,7 +2786,7 @@ the names of all peer variables and the \fIclock_var_list\f[] holds the names of the reference clock variables. .TP 7 -.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]srep\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]] +.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]] This command can be used to alter several system variables in very exceptional circumstances. It should occur in the @@ -2852,6 +2852,21 @@ Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. .TP 7 +.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +.TP 7 +.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] +As for stepback, but for the forward direction. +.TP 7 .NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[] The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/ntp.conf.5mdoc b/contrib/ntp/ntpd/ntp.conf.5mdoc index 069a543cf2ea..1a52a1257c4e 100644 --- a/contrib/ntp/ntpd/ntp.conf.5mdoc +++ b/contrib/ntp/ntpd/ntp.conf.5mdoc @@ -1,9 +1,9 @@ -.Dd February 4 2015 +.Dd April 7 2015 .Dt NTP_CONF 5mdoc File Formats .Os .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:57 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.conf.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -2618,7 +2618,9 @@ holds the names of the reference clock variables. .Cm freq Ar freq | .Cm huffpuff Ar huffpuff | .Cm panic Ar panic | -.Cm step Ar srep | +.Cm step Ar step | +.Cm stepback Ar stepback | +.Cm stepfwd Ar stepfwd | .Cm stepout Ar stepout .Oc .Xc @@ -2678,6 +2680,19 @@ adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. +.It Cm stepback Ar stepback +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +.It Cm stepfwd Ar stepfwd +As for stepback, but for the forward direction. .It Cm stepout Ar stepout The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/ntp.conf.def b/contrib/ntp/ntpd/ntp.conf.def index 6f0bae12b3f5..e5c44b7565c7 100644 --- a/contrib/ntp/ntpd/ntp.conf.def +++ b/contrib/ntp/ntpd/ntp.conf.def @@ -2620,7 +2620,9 @@ holds the names of the reference clock variables. .Cm freq Ar freq | .Cm huffpuff Ar huffpuff | .Cm panic Ar panic | -.Cm step Ar srep | +.Cm step Ar step | +.Cm stepback Ar stepback | +.Cm stepfwd Ar stepfwd | .Cm stepout Ar stepout .Oc .Xc @@ -2680,6 +2682,19 @@ adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. +.It Cm stepback Ar stepback +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +.It Cm stepfwd Ar stepfwd +As for stepback, but for the forward direction. .It Cm stepout Ar stepout The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/ntp.conf.html b/contrib/ntp/ntpd/ntp.conf.html index b237cc025085..7ab25e3756f4 100644 --- a/contrib/ntp/ntpd/ntp.conf.html +++ b/contrib/ntp/ntpd/ntp.conf.html @@ -33,7 +33,7 @@ Up: (dir)

This document describes the configuration file for the NTP Project's ntpd program. -

This document applies to version 4.2.8p1 of ntp.conf. +

This document applies to version 4.2.8p2 of ntp.conf.

Short Contents

@@ -2463,7 +2463,7 @@ holds the names of all peer variables and the clock_var_list holds the names of the reference clock variables. -
tinker [allan allan | dispersion dispersion | freq freq | huffpuff huffpuff | panic panic | step srep | stepout stepout]
This command can be used to alter several system variables in +
tinker [allan allan | dispersion dispersion | freq freq | huffpuff huffpuff | panic panic | step step | stepback stepback | stepfwd stepfwd | stepout stepout]
This command can be used to alter several system variables in very exceptional circumstances. It should occur in the configuration file before any other configuration options. @@ -2513,6 +2513,17 @@ adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. +
stepback stepback
The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +
stepfwd stepfwd
As for stepback, but for the forward direction.
stepout stepout
The argument is the stepout timeout, which by default is 900 s. It can be set to any positive number in seconds. diff --git a/contrib/ntp/ntpd/ntp.conf.man.in b/contrib/ntp/ntpd/ntp.conf.man.in index ec2c866c750a..548151d334c7 100644 --- a/contrib/ntp/ntpd/ntp.conf.man.in +++ b/contrib/ntp/ntpd/ntp.conf.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp.conf 5 "04 Feb 2015" "4.2.8p1" "File Formats" +.TH ntp.conf 5 "07 Apr 2015" "4.2.8p2" "File Formats" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gKaW.1/ag-tKaO91) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:37 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.conf.def .\" and the template file agman-cmd.tpl .SH NAME @@ -2786,7 +2786,7 @@ the names of all peer variables and the \fIclock_var_list\f[] holds the names of the reference clock variables. .TP 7 -.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]srep\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]] +.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]] This command can be used to alter several system variables in very exceptional circumstances. It should occur in the @@ -2852,6 +2852,21 @@ Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. .TP 7 +.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +.TP 7 +.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] +As for stepback, but for the forward direction. +.TP 7 .NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[] The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/ntp.conf.mdoc.in b/contrib/ntp/ntpd/ntp.conf.mdoc.in index ec45a749c3a0..da935ed697ee 100644 --- a/contrib/ntp/ntpd/ntp.conf.mdoc.in +++ b/contrib/ntp/ntpd/ntp.conf.mdoc.in @@ -1,9 +1,9 @@ -.Dd February 4 2015 +.Dd April 7 2015 .Dt NTP_CONF 5 File Formats .Os .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:57 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.conf.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -2618,7 +2618,9 @@ holds the names of the reference clock variables. .Cm freq Ar freq | .Cm huffpuff Ar huffpuff | .Cm panic Ar panic | -.Cm step Ar srep | +.Cm step Ar step | +.Cm stepback Ar stepback | +.Cm stepfwd Ar stepfwd | .Cm stepout Ar stepout .Oc .Xc @@ -2678,6 +2680,19 @@ adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than the default. +.It Cm stepback Ar stepback +The argument is the step threshold for the backward direction, +which by default is 0.128 s. +It can +be set to any positive number in seconds. +If both the forward and backward step thresholds are set to zero, step +adjustments will never occur. +Note: The kernel time discipline is +disabled if +each direction of step threshold are either +set to zero or greater than .5 second. +.It Cm stepfwd Ar stepfwd +As for stepback, but for the forward direction. .It Cm stepout Ar stepout The argument is the stepout timeout, which by default is 900 s. It can diff --git a/contrib/ntp/ntpd/ntp.keys.5man b/contrib/ntp/ntpd/ntp.keys.5man index 7ba8b5815f04..a505afb90dc6 100644 --- a/contrib/ntp/ntpd/ntp.keys.5man +++ b/contrib/ntp/ntpd/ntp.keys.5man @@ -1,8 +1,8 @@ -.TH ntp.keys 5man "04 Feb 2015" "4.2.8p1" "File Formats" +.TH ntp.keys 5man "07 Apr 2015" "4.2.8p2" "File Formats" .\" .\" EDIT THIS FILE WITH CAUTION (ntp.man) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:41:51 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:42 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.keys.def .\" and the template file agman-file.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/ntp.keys.5mdoc b/contrib/ntp/ntpd/ntp.keys.5mdoc index 8d7dacc0f1b1..a7157ec4e394 100644 --- a/contrib/ntp/ntpd/ntp.keys.5mdoc +++ b/contrib/ntp/ntpd/ntp.keys.5mdoc @@ -1,9 +1,9 @@ -.Dd February 4 2015 +.Dd April 7 2015 .Dt NTP_KEYS 5mdoc File Formats .Os SunOS 5.10 .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:42:10 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:26:00 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.keys.def .\" and the template file agmdoc-file.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/ntp.keys.html b/contrib/ntp/ntpd/ntp.keys.html index 2329476e15ff..98a22ef0aedb 100644 --- a/contrib/ntp/ntpd/ntp.keys.html +++ b/contrib/ntp/ntpd/ntp.keys.html @@ -33,7 +33,7 @@ Up: (dir)

This document describes the symmetric key file for the NTP Project's ntpd program. -

This document applies to version 4.2.8p1 of ntp.keys. +

This document applies to version 4.2.8p2 of ntp.keys.

Short Contents

diff --git a/contrib/ntp/ntpd/ntp.keys.man.in b/contrib/ntp/ntpd/ntp.keys.man.in index b1ec652d989f..c7585afa16f3 100644 --- a/contrib/ntp/ntpd/ntp.keys.man.in +++ b/contrib/ntp/ntpd/ntp.keys.man.in @@ -1,8 +1,8 @@ -.TH ntp.keys 5 "04 Feb 2015" "4.2.8p1" "File Formats" +.TH ntp.keys 5 "07 Apr 2015" "4.2.8p2" "File Formats" .\" .\" EDIT THIS FILE WITH CAUTION (ntp.man) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:41:51 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:42 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.keys.def .\" and the template file agman-file.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/ntp.keys.mdoc.in b/contrib/ntp/ntpd/ntp.keys.mdoc.in index 1f3fea54ab96..e6590db72fbb 100644 --- a/contrib/ntp/ntpd/ntp.keys.mdoc.in +++ b/contrib/ntp/ntpd/ntp.keys.mdoc.in @@ -1,9 +1,9 @@ -.Dd February 4 2015 +.Dd April 7 2015 .Dt NTP_KEYS 5 File Formats .Os SunOS 5.10 .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:42:10 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:26:00 AM by AutoGen 5.18.5pre4 .\" From the definitions ntp.keys.def .\" and the template file agmdoc-file.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/ntp_config.c b/contrib/ntp/ntpd/ntp_config.c index b9f0e24e3ee1..a224579d1cce 100644 --- a/contrib/ntp/ntpd/ntp_config.c +++ b/contrib/ntp/ntpd/ntp_config.c @@ -2705,6 +2705,14 @@ config_tinker( item = LOOP_MAX; break; + case T_Stepback: + item = LOOP_MAX_BACK; + break; + + case T_Stepfwd: + item = LOOP_MAX_FWD; + break; + case T_Stepout: item = LOOP_MINSTEP; break; diff --git a/contrib/ntp/ntpd/ntp_control.c b/contrib/ntp/ntpd/ntp_control.c index 22460927204a..91ab39a83363 100644 --- a/contrib/ntp/ntpd/ntp_control.c +++ b/contrib/ntp/ntpd/ntp_control.c @@ -228,7 +228,8 @@ static const struct ctl_proc control_codes[] = { #define CS_TIMER_OVERRUNS 86 #define CS_TIMER_XMTS 87 #define CS_FUZZ 88 -#define CS_MAX_NOAUTOKEY CS_FUZZ +#define CS_WANDER_THRESH 89 +#define CS_MAX_NOAUTOKEY CS_WANDER_THRESH #ifdef AUTOKEY #define CS_FLAGS (1 + CS_MAX_NOAUTOKEY) #define CS_HOST (2 + CS_MAX_NOAUTOKEY) @@ -423,6 +424,7 @@ static const struct ctl_var sys_var[] = { { CS_TIMER_OVERRUNS, RO, "timer_overruns" }, /* 86 */ { CS_TIMER_XMTS, RO, "timer_xmts" }, /* 87 */ { CS_FUZZ, RO, "fuzz" }, /* 88 */ + { CS_WANDER_THRESH, RO, "clk_wander_threshold" }, /* 89 */ #ifdef AUTOKEY { CS_FLAGS, RO, "flags" }, /* 1 + CS_MAX_NOAUTOKEY */ { CS_HOST, RO, "host" }, /* 2 + CS_MAX_NOAUTOKEY */ @@ -485,7 +487,7 @@ static const struct ctl_var peer_var[] = { { 0, PADDING, "" }, /* 0 */ { CP_CONFIG, RO, "config" }, /* 1 */ { CP_AUTHENABLE, RO, "authenable" }, /* 2 */ - { CP_AUTHENTIC, RO, "authentic" }, /* 3 */ + { CP_AUTHENTIC, RO, "authentic" }, /* 3 */ { CP_SRCADR, RO, "srcadr" }, /* 4 */ { CP_SRCPORT, RO, "srcport" }, /* 5 */ { CP_DSTADR, RO, "dstadr" }, /* 6 */ @@ -537,7 +539,7 @@ static const struct ctl_var peer_var[] = { { CP_FLAGS, RO, "flags" }, /* 1 + CP_MAX_NOAUTOKEY */ { CP_HOST, RO, "host" }, /* 2 + CP_MAX_NOAUTOKEY */ { CP_VALID, RO, "valid" }, /* 3 + CP_MAX_NOAUTOKEY */ - { CP_INITSEQ, RO, "initsequence" }, /* 4 + CP_MAX_NOAUTOKEY */ + { CP_INITSEQ, RO, "initsequence" }, /* 4 + CP_MAX_NOAUTOKEY */ { CP_INITKEY, RO, "initkey" }, /* 5 + CP_MAX_NOAUTOKEY */ { CP_INITTSP, RO, "timestamp" }, /* 6 + CP_MAX_NOAUTOKEY */ { CP_SIGNATURE, RO, "signature" }, /* 7 + CP_MAX_NOAUTOKEY */ @@ -690,37 +692,37 @@ int num_ctl_traps; */ #ifdef REFCLOCK static const u_char clocktypes[] = { - CTL_SST_TS_NTP, /* REFCLK_NONE (0) */ + CTL_SST_TS_NTP, /* REFCLK_NONE (0) */ CTL_SST_TS_LOCAL, /* REFCLK_LOCALCLOCK (1) */ - CTL_SST_TS_UHF, /* deprecated REFCLK_GPS_TRAK (2) */ + CTL_SST_TS_UHF, /* deprecated REFCLK_GPS_TRAK (2) */ CTL_SST_TS_HF, /* REFCLK_WWV_PST (3) */ CTL_SST_TS_LF, /* REFCLK_WWVB_SPECTRACOM (4) */ - CTL_SST_TS_UHF, /* REFCLK_TRUETIME (5) */ - CTL_SST_TS_UHF, /* REFCLK_IRIG_AUDIO (6) */ + CTL_SST_TS_UHF, /* REFCLK_TRUETIME (5) */ + CTL_SST_TS_UHF, /* REFCLK_IRIG_AUDIO (6) */ CTL_SST_TS_HF, /* REFCLK_CHU (7) */ CTL_SST_TS_LF, /* REFCLOCK_PARSE (default) (8) */ CTL_SST_TS_LF, /* REFCLK_GPS_MX4200 (9) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_AS2201 (10) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_ARBITER (11) */ - CTL_SST_TS_UHF, /* REFCLK_IRIG_TPRO (12) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_AS2201 (10) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_ARBITER (11) */ + CTL_SST_TS_UHF, /* REFCLK_IRIG_TPRO (12) */ CTL_SST_TS_ATOM, /* REFCLK_ATOM_LEITCH (13) */ CTL_SST_TS_LF, /* deprecated REFCLK_MSF_EES (14) */ - CTL_SST_TS_NTP, /* not used (15) */ - CTL_SST_TS_UHF, /* REFCLK_IRIG_BANCOMM (16) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_DATU (17) */ + CTL_SST_TS_NTP, /* not used (15) */ + CTL_SST_TS_UHF, /* REFCLK_IRIG_BANCOMM (16) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_DATU (17) */ CTL_SST_TS_TELEPHONE, /* REFCLK_NIST_ACTS (18) */ CTL_SST_TS_HF, /* REFCLK_WWV_HEATH (19) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_NMEA (20) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_VME (21) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_NMEA (20) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_VME (21) */ CTL_SST_TS_ATOM, /* REFCLK_ATOM_PPS (22) */ CTL_SST_TS_NTP, /* not used (23) */ CTL_SST_TS_NTP, /* not used (24) */ - CTL_SST_TS_NTP, /* not used (25) */ - CTL_SST_TS_UHF, /* REFCLK_GPS_HP (26) */ + CTL_SST_TS_NTP, /* not used (25) */ + CTL_SST_TS_UHF, /* REFCLK_GPS_HP (26) */ CTL_SST_TS_LF, /* REFCLK_ARCRON_MSF (27) */ CTL_SST_TS_UHF, /* REFCLK_SHM (28) */ - CTL_SST_TS_UHF, /* REFCLK_PALISADE (29) */ - CTL_SST_TS_UHF, /* REFCLK_ONCORE (30) */ + CTL_SST_TS_UHF, /* REFCLK_PALISADE (29) */ + CTL_SST_TS_UHF, /* REFCLK_ONCORE (30) */ CTL_SST_TS_UHF, /* REFCLK_JUPITER (31) */ CTL_SST_TS_LF, /* REFCLK_CHRONOLOG (32) */ CTL_SST_TS_LF, /* REFCLK_DUMBCLOCK (33) */ @@ -728,7 +730,7 @@ static const u_char clocktypes[] = { CTL_SST_TS_LF, /* REFCLK_PCF (35) */ CTL_SST_TS_HF, /* REFCLK_WWV (36) */ CTL_SST_TS_LF, /* REFCLK_FG (37) */ - CTL_SST_TS_UHF, /* REFCLK_HOPF_SERIAL (38) */ + CTL_SST_TS_UHF, /* REFCLK_HOPF_SERIAL (38) */ CTL_SST_TS_UHF, /* REFCLK_HOPF_PCI (39) */ CTL_SST_TS_LF, /* REFCLK_JJY (40) */ CTL_SST_TS_UHF, /* REFCLK_TT560 (41) */ @@ -759,17 +761,17 @@ static u_char ctl_sys_num_events; u_long ctltimereset; /* time stats reset */ u_long numctlreq; /* number of requests we've received */ u_long numctlbadpkts; /* number of bad control packets */ -u_long numctlresponses; /* number of resp packets sent with data */ -u_long numctlfrags; /* number of fragments sent */ +u_long numctlresponses; /* number of resp packets sent with data */ +u_long numctlfrags; /* number of fragments sent */ u_long numctlerrors; /* number of error responses sent */ u_long numctltooshort; /* number of too short input packets */ -u_long numctlinputresp; /* number of responses on input */ -u_long numctlinputfrag; /* number of fragments on input */ +u_long numctlinputresp; /* number of responses on input */ +u_long numctlinputfrag; /* number of fragments on input */ u_long numctlinputerr; /* number of input pkts with err bit set */ -u_long numctlbadoffset; /* number of input pkts with nonzero offset */ +u_long numctlbadoffset; /* number of input pkts with nonzero offset */ u_long numctlbadversion; /* number of input pkts with unknown version */ u_long numctldatatooshort; /* data too short for count */ -u_long numctlbadop; /* bad op code found in packet */ +u_long numctlbadop; /* bad op code found in packet */ u_long numasyncmsgs; /* number of async messages we've sent */ /* @@ -788,7 +790,7 @@ static int res_offset; /* offset of payload in response */ static u_char * datapt; static u_char * dataend; static int datalinelen; -static int datasent; /* flag to avoid initial ", " */ +static int datasent; /* flag to avoid initial ", " */ static int datanotbinflag; static sockaddr_u *rmt_addr; static struct interface *lcl_inter; @@ -852,7 +854,7 @@ ctl_error( * Fill in the fields. We assume rpkt.sequence and rpkt.associd * have already been filled in. */ - rpkt.r_m_e_op = (u_char)CTL_RESPONSE | CTL_ERROR | + rpkt.r_m_e_op = (u_char)CTL_RESPONSE | CTL_ERROR | (res_opcode & CTL_OP_MASK); rpkt.status = htons((u_short)(errcode << 8) & 0xff00); rpkt.count = 0; @@ -870,7 +872,7 @@ ctl_error( CTL_HEADER_LEN); } -/* +/* * save_config - Implements ntpq -c "saveconfig " * Writes current configuration including any runtime * changes by ntpq's :config or config-from-file @@ -934,7 +936,7 @@ save_config( if (0 == strftime(filename, sizeof(filename), filespec, localtime(&now))) strlcpy(filename, filespec, sizeof(filename)); - + /* * Conceptually we should be searching for DIRSEP in filename, * however Windows actually recognizes both forward and @@ -1324,7 +1326,7 @@ static void ctl_putdata( const char *dp, unsigned int dlen, - int bin /* set to 1 when data is binary */ + int bin /* set to 1 when data is binary */ ) { int overhead; @@ -1694,7 +1696,7 @@ ctl_putrefid( return; iptr = (char *)&refid; iplim = iptr + sizeof(refid); - for ( ; optr < oplim && iptr < iplim && '\0' != *iptr; + for ( ; optr < oplim && iptr < iplim && '\0' != *iptr; iptr++, optr++) if (isprint((int)*iptr)) *optr = *iptr; @@ -1762,7 +1764,7 @@ ctl_putsys( static const double to_ms = # ifdef STA_NANO - 1.0e-6; /* nsec to msec */ + 1.0e-6; /* nsec to msec */ # else 1.0e-3; /* usec to msec */ # endif @@ -1954,12 +1956,12 @@ ctl_putsys( ctl_putdata(buf, (unsigned)( buffp - buf ), 0); break; } - + case CS_TAI: if (sys_tai > 0) ctl_putuint(sys_var[CS_TAI].text, sys_tai); break; - + case CS_LEAPTAB: { leap_signature_t lsig; @@ -1968,7 +1970,7 @@ ctl_putsys( ctl_putfs(sys_var[CS_LEAPTAB].text, lsig.ttime); break; } - + case CS_LEAPEND: { leap_signature_t lsig; @@ -2113,7 +2115,7 @@ ctl_putsys( break; case CS_AUTHRESET: - ctl_putuint(sys_var[varid].text, + ctl_putuint(sys_var[varid].text, current_time - auth_timereset); break; @@ -2147,7 +2149,7 @@ ctl_putsys( case CS_K_OFFSET: CTL_IF_KERNLOOP( - ctl_putdblf, + ctl_putdblf, (sys_var[varid].text, 0, -1, to_ms * ntx.offset) ); break; @@ -2327,6 +2329,9 @@ ctl_putsys( case CS_FUZZ: ctl_putdbl(sys_var[varid].text, sys_fuzz * 1e3); break; + case CS_WANDER_THRESH: + ctl_putdbl(sys_var[varid].text, wander_threshold * 1e6); + break; #ifdef AUTOKEY case CS_FLAGS: if (crypto_flags) @@ -2633,7 +2638,7 @@ ctl_putpeer( memcpy(s, k->text, i); s += i; } - if (s + 2 < be) { + if (s + 2 < be) { *s++ = '"'; *s = '\0'; ctl_putdata(buf, (u_int)(s - buf), 0); @@ -2712,7 +2717,7 @@ ctl_putpeer( strlen(p->ident)); break; - + #endif /* AUTOKEY */ } } @@ -2821,7 +2826,7 @@ ctl_putclock( sizeof(buf)) break; /* really long var name */ - snprintf(s, sizeof(buf), "%s=\"", + snprintf(s, sizeof(buf), "%s=\"", clock_var[CC_VARLIST].text); s += strlen(s); t = s; @@ -3309,7 +3314,7 @@ static void configure( snprintf(remote_config.err_msg, sizeof(remote_config.err_msg), "runtime configuration prohibited by restrict ... nomodify"); - ctl_putdata(remote_config.err_msg, + ctl_putdata(remote_config.err_msg, strlen(remote_config.err_msg), 0); ctl_flushpkt(0); NLOG(NLOG_SYSINFO) @@ -3365,7 +3370,7 @@ static void configure( config_remotely(&rbufp->recv_srcadr); - /* + /* * Check if errors were reported. If not, output 'Config * Succeeded'. Else output the error count. It would be nice * to output any parser error messages. @@ -3374,10 +3379,10 @@ static void configure( retval = snprintf(remote_config.err_msg, sizeof(remote_config.err_msg), "Config Succeeded"); - if (retval > 0) + if (retval > 0) remote_config.err_pos += retval; } - + ctl_putdata(remote_config.err_msg, remote_config.err_pos, 0); ctl_flushpkt(0); @@ -3790,7 +3795,7 @@ static void read_mru_list( while (NULL != (v = ctl_getitem(in_parms, &val)) && !(EOV & v->flags)) { - int si; + int si; if (!strcmp(nonce_text, v->text)) { if (NULL != pnonce) @@ -3887,7 +3892,7 @@ static void read_mru_list( pch = sptoa(&mon->rmtadr); ctl_putunqstr("addr.older", pch, strlen(pch)); - /* + /* * Move on to the first entry the client doesn't have, * except in the special case of a limit of one. In * that case return the starting point entry. @@ -3897,7 +3902,7 @@ static void read_mru_list( } else { /* start with the oldest */ mon = TAIL_DLIST(mon_mru_list, mru); } - + /* * send up to limit= entries in up to frags= datagrams */ @@ -4656,7 +4661,7 @@ ctlfindtrap( for (n = 0; n < COUNTOF(ctl_traps); n++) if ((ctl_traps[n].tr_flags & TRAP_INUSE) && ADDR_PORT_EQ(raddr, &ctl_traps[n].tr_addr) - && (linter == ctl_traps[n].tr_localaddr)) + && (linter == ctl_traps[n].tr_localaddr)) return &ctl_traps[n]; return NULL; @@ -4713,7 +4718,7 @@ report_event( const char * src; u_char errlast; - errlast = (u_char)err & ~PEER_EVENT; + errlast = (u_char)err & ~PEER_EVENT; if (peer->last_event == errlast) peer->num_events = 0; if (peer->num_events >= CTL_PEER_MAXEVENTS) @@ -4985,7 +4990,7 @@ get_ext_sys_var(const char *tag) } } } - + return val; } diff --git a/contrib/ntp/ntpd/ntp_crypto.c b/contrib/ntp/ntpd/ntp_crypto.c index 8edc357f8ddd..7a5a1008e04e 100644 --- a/contrib/ntp/ntpd/ntp_crypto.c +++ b/contrib/ntp/ntpd/ntp_crypto.c @@ -1731,7 +1731,7 @@ crypto_args( tstamp_t tstamp; /* NTP timestamp */ struct exten *ep; /* extension field pointer */ u_int len; /* extension field length */ - size_t slen; + size_t slen = 0; tstamp = crypto_time(); len = sizeof(struct exten); diff --git a/contrib/ntp/ntpd/ntp_keyword.h b/contrib/ntp/ntpd/ntp_keyword.h index 131cf0fab1f9..723793636b7e 100644 --- a/contrib/ntp/ntpd/ntp_keyword.h +++ b/contrib/ntp/ntpd/ntp_keyword.h @@ -2,7 +2,7 @@ * ntp_keyword.h * * NOTE: edit this file with caution, it is generated by keyword-gen.c - * Generated 2015-01-03 23:51:10 UTC diff_ignore_line + * Generated 2015-03-16 09:05:44 UTC diff_ignore_line * */ #include "ntp_scanner.h" @@ -10,7 +10,7 @@ #define LOWEST_KEYWORD_ID 258 -const char * const keyword_text[187] = { +const char * const keyword_text[189] = { /* 0 258 T_Abbrev */ "abbrev", /* 1 259 T_Age */ "age", /* 2 260 T_All */ "all", @@ -160,49 +160,51 @@ const char * const keyword_text[187] = { /* 146 404 T_Stats */ "stats", /* 147 405 T_Statsdir */ "statsdir", /* 148 406 T_Step */ "step", - /* 149 407 T_Stepout */ "stepout", - /* 150 408 T_Stratum */ "stratum", - /* 151 409 T_String */ NULL, - /* 152 410 T_Sys */ "sys", - /* 153 411 T_Sysstats */ "sysstats", - /* 154 412 T_Tick */ "tick", - /* 155 413 T_Time1 */ "time1", - /* 156 414 T_Time2 */ "time2", - /* 157 415 T_Timer */ "timer", - /* 158 416 T_Timingstats */ "timingstats", - /* 159 417 T_Tinker */ "tinker", - /* 160 418 T_Tos */ "tos", - /* 161 419 T_Trap */ "trap", - /* 162 420 T_True */ "true", - /* 163 421 T_Trustedkey */ "trustedkey", - /* 164 422 T_Ttl */ "ttl", - /* 165 423 T_Type */ "type", - /* 166 424 T_U_int */ NULL, - /* 167 425 T_Unconfig */ "unconfig", - /* 168 426 T_Unpeer */ "unpeer", - /* 169 427 T_Version */ "version", - /* 170 428 T_WanderThreshold */ NULL, - /* 171 429 T_Week */ "week", - /* 172 430 T_Wildcard */ "wildcard", - /* 173 431 T_Xleave */ "xleave", - /* 174 432 T_Year */ "year", - /* 175 433 T_Flag */ NULL, - /* 176 434 T_EOC */ NULL, - /* 177 435 T_Simulate */ "simulate", - /* 178 436 T_Beep_Delay */ "beep_delay", - /* 179 437 T_Sim_Duration */ "simulation_duration", - /* 180 438 T_Server_Offset */ "server_offset", - /* 181 439 T_Duration */ "duration", - /* 182 440 T_Freq_Offset */ "freq_offset", - /* 183 441 T_Wander */ "wander", - /* 184 442 T_Jitter */ "jitter", - /* 185 443 T_Prop_Delay */ "prop_delay", - /* 186 444 T_Proc_Delay */ "proc_delay" + /* 149 407 T_Stepback */ "stepback", + /* 150 408 T_Stepfwd */ "stepfwd", + /* 151 409 T_Stepout */ "stepout", + /* 152 410 T_Stratum */ "stratum", + /* 153 411 T_String */ NULL, + /* 154 412 T_Sys */ "sys", + /* 155 413 T_Sysstats */ "sysstats", + /* 156 414 T_Tick */ "tick", + /* 157 415 T_Time1 */ "time1", + /* 158 416 T_Time2 */ "time2", + /* 159 417 T_Timer */ "timer", + /* 160 418 T_Timingstats */ "timingstats", + /* 161 419 T_Tinker */ "tinker", + /* 162 420 T_Tos */ "tos", + /* 163 421 T_Trap */ "trap", + /* 164 422 T_True */ "true", + /* 165 423 T_Trustedkey */ "trustedkey", + /* 166 424 T_Ttl */ "ttl", + /* 167 425 T_Type */ "type", + /* 168 426 T_U_int */ NULL, + /* 169 427 T_Unconfig */ "unconfig", + /* 170 428 T_Unpeer */ "unpeer", + /* 171 429 T_Version */ "version", + /* 172 430 T_WanderThreshold */ NULL, + /* 173 431 T_Week */ "week", + /* 174 432 T_Wildcard */ "wildcard", + /* 175 433 T_Xleave */ "xleave", + /* 176 434 T_Year */ "year", + /* 177 435 T_Flag */ NULL, + /* 178 436 T_EOC */ NULL, + /* 179 437 T_Simulate */ "simulate", + /* 180 438 T_Beep_Delay */ "beep_delay", + /* 181 439 T_Sim_Duration */ "simulation_duration", + /* 182 440 T_Server_Offset */ "server_offset", + /* 183 441 T_Duration */ "duration", + /* 184 442 T_Freq_Offset */ "freq_offset", + /* 185 443 T_Wander */ "wander", + /* 186 444 T_Jitter */ "jitter", + /* 187 445 T_Prop_Delay */ "prop_delay", + /* 188 446 T_Proc_Delay */ "proc_delay" }; -#define SCANNER_INIT_S 830 +#define SCANNER_INIT_S 837 -const scan_state sst[833] = { +const scan_state sst[840] = { /*SS_T( ch, f-by, match, other ), */ 0, /* 0 */ S_ST( '-', 3, 322, 0 ), /* 1 */ @@ -248,7 +250,7 @@ const scan_state sst[833] = { 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, 436, 0 ), /* 44 beep_del */ + S_ST( 'a', 3, 438, 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 */ @@ -346,7 +348,7 @@ const scan_state sst[833] = { S_ST( 'a', 3, 140, 0 ), /* 139 dur */ S_ST( 't', 3, 141, 0 ), /* 140 dura */ S_ST( 'i', 3, 142, 0 ), /* 141 durat */ - S_ST( 'o', 3, 439, 0 ), /* 142 durati */ + S_ST( 'o', 3, 441, 0 ), /* 142 durati */ S_ST( 'e', 3, 144, 105 ), /* 143 */ S_ST( 'n', 3, 292, 0 ), /* 144 e */ S_ST( 'a', 3, 146, 0 ), /* 145 en */ @@ -372,7 +374,7 @@ const scan_state sst[833] = { S_ST( 'f', 3, 166, 0 ), /* 165 freq_o */ S_ST( 'f', 3, 167, 0 ), /* 166 freq_of */ S_ST( 's', 3, 168, 0 ), /* 167 freq_off */ - S_ST( 'e', 3, 440, 0 ), /* 168 freq_offs */ + S_ST( 'e', 3, 442, 0 ), /* 168 freq_offs */ S_ST( 'u', 3, 170, 161 ), /* 169 f */ S_ST( 'd', 3, 171, 0 ), /* 170 fu */ S_ST( 'g', 3, 304, 0 ), /* 171 fud */ @@ -432,7 +434,7 @@ const scan_state sst[833] = { S_ST( 'i', 3, 226, 0 ), /* 225 j */ S_ST( 't', 3, 227, 0 ), /* 226 ji */ S_ST( 't', 3, 228, 0 ), /* 227 jit */ - S_ST( 'e', 3, 442, 0 ), /* 228 jitt */ + S_ST( 'e', 3, 444, 0 ), /* 228 jitt */ S_ST( 'k', 3, 236, 224 ), /* 229 */ S_ST( 'e', 3, 324, 0 ), /* 230 k */ S_ST( 'r', 3, 232, 0 ), /* 231 ke */ @@ -457,7 +459,7 @@ const scan_state sst[833] = { S_ST( 's', 3, 251, 249 ), /* 250 li */ S_ST( 't', 3, 252, 0 ), /* 251 lis */ S_ST( 'e', 3, 332, 0 ), /* 252 list */ - S_ST( 'o', 3, 447, 244 ), /* 253 l */ + S_ST( 'o', 3, 449, 244 ), /* 253 l */ S_ST( 'g', 3, 315, 0 ), /* 254 lo */ S_ST( 'c', 3, 256, 0 ), /* 255 log */ S_ST( 'o', 3, 257, 0 ), /* 256 logc */ @@ -521,7 +523,7 @@ const scan_state sst[833] = { S_ST( 'e', 1, 0, 0 ), /* 314 T_Includefile */ S_ST( 'f', 3, 317, 255 ), /* 315 log */ S_ST( 'e', 0, 0, 0 ), /* 316 T_Interface */ - S_ST( 'i', 3, 409, 0 ), /* 317 logf */ + S_ST( 'i', 3, 411, 0 ), /* 317 logf */ S_ST( 'o', 0, 0, 193 ), /* 318 T_Io */ S_ST( '4', 0, 0, 0 ), /* 319 T_Ipv4 */ S_ST( '4', 0, 0, 0 ), /* 320 T_Ipv4_flag */ @@ -551,7 +553,7 @@ const scan_state sst[833] = { S_ST( 'm', 0, 0, 0 ), /* 344 T_Maxmem */ S_ST( 'l', 0, 0, 0 ), /* 345 T_Maxpoll */ S_ST( 's', 0, 0, 0 ), /* 346 T_Mdnstries */ - S_ST( 'm', 0, 500, 0 ), /* 347 T_Mem */ + S_ST( 'm', 0, 502, 0 ), /* 347 T_Mem */ S_ST( 'k', 0, 0, 0 ), /* 348 T_Memlock */ S_ST( 'k', 0, 0, 0 ), /* 349 T_Minclock */ S_ST( 'h', 0, 0, 0 ), /* 350 T_Mindepth */ @@ -577,23 +579,23 @@ const scan_state sst[833] = { S_ST( 'e', 0, 0, 0 ), /* 370 T_Noserve */ S_ST( 'p', 0, 0, 0 ), /* 371 T_Notrap */ S_ST( 't', 0, 0, 0 ), /* 372 T_Notrust */ - S_ST( 'p', 0, 596, 0 ), /* 373 T_Ntp */ + S_ST( 'p', 0, 598, 0 ), /* 373 T_Ntp */ S_ST( 't', 0, 0, 0 ), /* 374 T_Ntpport */ S_ST( 't', 1, 0, 0 ), /* 375 T_NtpSignDsocket */ - S_ST( 'n', 0, 611, 0 ), /* 376 T_Orphan */ + S_ST( 'n', 0, 613, 0 ), /* 376 T_Orphan */ S_ST( 't', 0, 0, 0 ), /* 377 T_Orphanwait */ S_ST( 'c', 0, 0, 0 ), /* 378 T_Panic */ - S_ST( 'r', 1, 620, 0 ), /* 379 T_Peer */ + S_ST( 'r', 1, 622, 0 ), /* 379 T_Peer */ S_ST( 's', 0, 0, 0 ), /* 380 T_Peerstats */ S_ST( 'e', 2, 0, 0 ), /* 381 T_Phone */ - S_ST( 'd', 0, 628, 0 ), /* 382 T_Pid */ + S_ST( 'd', 0, 630, 0 ), /* 382 T_Pid */ S_ST( 'e', 1, 0, 0 ), /* 383 T_Pidfile */ S_ST( 'l', 1, 0, 0 ), /* 384 T_Pool */ S_ST( 't', 0, 0, 0 ), /* 385 T_Port */ S_ST( 't', 0, 0, 0 ), /* 386 T_Preempt */ S_ST( 'r', 0, 0, 0 ), /* 387 T_Prefer */ S_ST( 's', 0, 0, 0 ), /* 388 T_Protostats */ - S_ST( 'w', 1, 0, 634 ), /* 389 T_Pw */ + S_ST( 'w', 1, 0, 636 ), /* 389 T_Pw */ S_ST( 'e', 1, 0, 0 ), /* 390 T_Randfile */ S_ST( 's', 0, 0, 0 ), /* 391 T_Rawstats */ S_ST( 'd', 1, 0, 0 ), /* 392 T_Refid */ @@ -603,439 +605,446 @@ const scan_state sst[833] = { S_ST( 'e', 0, 0, 0 ), /* 396 T_Revoke */ S_ST( 't', 0, 0, 0 ), /* 397 T_Rlimit */ S_ST( 'r', 1, 0, 0 ), /* 398 T_Saveconfigdir */ - S_ST( 'r', 1, 711, 0 ), /* 399 T_Server */ + S_ST( 'r', 1, 713, 0 ), /* 399 T_Server */ S_ST( 'r', 1, 0, 0 ), /* 400 T_Setvar */ S_ST( 'e', 0, 0, 0 ), /* 401 T_Source */ S_ST( 'e', 0, 0, 0 ), /* 402 T_Stacksize */ S_ST( 's', 0, 0, 0 ), /* 403 T_Statistics */ - S_ST( 's', 0, 754, 749 ), /* 404 T_Stats */ + S_ST( 's', 0, 756, 751 ), /* 404 T_Stats */ S_ST( 'r', 1, 0, 0 ), /* 405 T_Statsdir */ - S_ST( 'p', 0, 757, 0 ), /* 406 T_Step */ - S_ST( 't', 0, 0, 0 ), /* 407 T_Stepout */ - S_ST( 'm', 0, 0, 0 ), /* 408 T_Stratum */ - S_ST( 'l', 3, 334, 0 ), /* 409 logfi */ - S_ST( 's', 0, 764, 0 ), /* 410 T_Sys */ - S_ST( 's', 0, 0, 0 ), /* 411 T_Sysstats */ - S_ST( 'k', 0, 0, 0 ), /* 412 T_Tick */ - S_ST( '1', 0, 0, 0 ), /* 413 T_Time1 */ - S_ST( '2', 0, 0, 413 ), /* 414 T_Time2 */ - S_ST( 'r', 0, 0, 414 ), /* 415 T_Timer */ - S_ST( 's', 0, 0, 0 ), /* 416 T_Timingstats */ - S_ST( 'r', 0, 0, 0 ), /* 417 T_Tinker */ - S_ST( 's', 0, 0, 0 ), /* 418 T_Tos */ - S_ST( 'p', 1, 0, 0 ), /* 419 T_Trap */ - S_ST( 'e', 0, 0, 0 ), /* 420 T_True */ - S_ST( 'y', 0, 0, 0 ), /* 421 T_Trustedkey */ - S_ST( 'l', 0, 0, 0 ), /* 422 T_Ttl */ - S_ST( 'e', 0, 0, 0 ), /* 423 T_Type */ - S_ST( 'o', 3, 428, 254 ), /* 424 lo */ - S_ST( 'g', 1, 0, 0 ), /* 425 T_Unconfig */ - S_ST( 'r', 1, 0, 0 ), /* 426 T_Unpeer */ - S_ST( 'n', 0, 0, 0 ), /* 427 T_Version */ - S_ST( 'p', 3, 433, 0 ), /* 428 loo */ - S_ST( 'k', 0, 0, 0 ), /* 429 T_Week */ - S_ST( 'd', 0, 0, 0 ), /* 430 T_Wildcard */ - S_ST( 'e', 0, 0, 0 ), /* 431 T_Xleave */ - S_ST( 'r', 0, 0, 0 ), /* 432 T_Year */ - S_ST( 's', 3, 434, 0 ), /* 433 loop */ - S_ST( 't', 3, 445, 0 ), /* 434 loops */ - S_ST( 'e', 0, 0, 0 ), /* 435 T_Simulate */ - S_ST( 'y', 0, 0, 0 ), /* 436 T_Beep_Delay */ - S_ST( 'n', 0, 0, 0 ), /* 437 T_Sim_Duration */ - S_ST( 't', 0, 0, 0 ), /* 438 T_Server_Offset */ - S_ST( 'n', 0, 0, 0 ), /* 439 T_Duration */ - S_ST( 't', 0, 0, 0 ), /* 440 T_Freq_Offset */ - S_ST( 'r', 0, 0, 0 ), /* 441 T_Wander */ - S_ST( 'r', 0, 0, 0 ), /* 442 T_Jitter */ - S_ST( 'y', 0, 0, 0 ), /* 443 T_Prop_Delay */ - S_ST( 'y', 0, 0, 0 ), /* 444 T_Proc_Delay */ - S_ST( 'a', 3, 446, 0 ), /* 445 loopst */ - S_ST( 't', 3, 335, 0 ), /* 446 loopsta */ - S_ST( 'w', 3, 448, 424 ), /* 447 lo */ - S_ST( 'p', 3, 449, 0 ), /* 448 low */ - S_ST( 'r', 3, 450, 0 ), /* 449 lowp */ - S_ST( 'i', 3, 451, 0 ), /* 450 lowpr */ - S_ST( 'o', 3, 452, 0 ), /* 451 lowpri */ - S_ST( 't', 3, 453, 0 ), /* 452 lowprio */ - S_ST( 'r', 3, 454, 0 ), /* 453 lowpriot */ - S_ST( 'a', 3, 336, 0 ), /* 454 lowpriotr */ - S_ST( 'm', 3, 536, 237 ), /* 455 */ - S_ST( 'a', 3, 474, 0 ), /* 456 m */ - S_ST( 'n', 3, 458, 0 ), /* 457 ma */ - S_ST( 'y', 3, 459, 0 ), /* 458 man */ - S_ST( 'c', 3, 460, 0 ), /* 459 many */ - S_ST( 'a', 3, 461, 0 ), /* 460 manyc */ - S_ST( 's', 3, 462, 0 ), /* 461 manyca */ - S_ST( 't', 3, 468, 0 ), /* 462 manycas */ - S_ST( 'c', 3, 464, 0 ), /* 463 manycast */ - S_ST( 'l', 3, 465, 0 ), /* 464 manycastc */ - S_ST( 'i', 3, 466, 0 ), /* 465 manycastcl */ - S_ST( 'e', 3, 467, 0 ), /* 466 manycastcli */ - S_ST( 'n', 3, 337, 0 ), /* 467 manycastclie */ - S_ST( 's', 3, 469, 463 ), /* 468 manycast */ - S_ST( 'e', 3, 470, 0 ), /* 469 manycasts */ - S_ST( 'r', 3, 471, 0 ), /* 470 manycastse */ - S_ST( 'v', 3, 472, 0 ), /* 471 manycastser */ - S_ST( 'e', 3, 338, 0 ), /* 472 manycastserv */ - S_ST( 's', 3, 339, 457 ), /* 473 ma */ - S_ST( 'x', 3, 489, 473 ), /* 474 ma */ - S_ST( 'a', 3, 476, 0 ), /* 475 max */ - S_ST( 'g', 3, 340, 0 ), /* 476 maxa */ - S_ST( 'c', 3, 478, 475 ), /* 477 max */ - S_ST( 'l', 3, 479, 0 ), /* 478 maxc */ - S_ST( 'o', 3, 480, 0 ), /* 479 maxcl */ - S_ST( 'c', 3, 341, 0 ), /* 480 maxclo */ - S_ST( 'd', 3, 485, 477 ), /* 481 max */ - S_ST( 'e', 3, 483, 0 ), /* 482 maxd */ - S_ST( 'p', 3, 484, 0 ), /* 483 maxde */ - S_ST( 't', 3, 342, 0 ), /* 484 maxdep */ - S_ST( 'i', 3, 486, 482 ), /* 485 maxd */ - S_ST( 's', 3, 343, 0 ), /* 486 maxdi */ - S_ST( 'm', 3, 488, 481 ), /* 487 max */ - S_ST( 'e', 3, 344, 0 ), /* 488 maxm */ - S_ST( 'p', 3, 490, 487 ), /* 489 max */ - S_ST( 'o', 3, 491, 0 ), /* 490 maxp */ - S_ST( 'l', 3, 345, 0 ), /* 491 maxpo */ - S_ST( 'd', 3, 493, 456 ), /* 492 m */ - S_ST( 'n', 3, 494, 0 ), /* 493 md */ - S_ST( 's', 3, 495, 0 ), /* 494 mdn */ - S_ST( 't', 3, 496, 0 ), /* 495 mdns */ - S_ST( 'r', 3, 497, 0 ), /* 496 mdnst */ - S_ST( 'i', 3, 498, 0 ), /* 497 mdnstr */ - S_ST( 'e', 3, 346, 0 ), /* 498 mdnstri */ - S_ST( 'e', 3, 347, 492 ), /* 499 m */ - S_ST( 'l', 3, 501, 0 ), /* 500 mem */ - S_ST( 'o', 3, 502, 0 ), /* 501 meml */ - S_ST( 'c', 3, 348, 0 ), /* 502 memlo */ - S_ST( 'i', 3, 504, 499 ), /* 503 m */ - S_ST( 'n', 3, 521, 0 ), /* 504 mi */ - S_ST( 'c', 3, 506, 0 ), /* 505 min */ - S_ST( 'l', 3, 507, 0 ), /* 506 minc */ - S_ST( 'o', 3, 508, 0 ), /* 507 mincl */ - S_ST( 'c', 3, 349, 0 ), /* 508 minclo */ - S_ST( 'd', 3, 513, 505 ), /* 509 min */ - S_ST( 'e', 3, 511, 0 ), /* 510 mind */ - S_ST( 'p', 3, 512, 0 ), /* 511 minde */ - S_ST( 't', 3, 350, 0 ), /* 512 mindep */ - S_ST( 'i', 3, 514, 510 ), /* 513 mind */ - S_ST( 's', 3, 351, 0 ), /* 514 mindi */ - S_ST( 'i', 3, 516, 509 ), /* 515 min */ - S_ST( 'm', 3, 517, 0 ), /* 516 mini */ - S_ST( 'u', 3, 352, 0 ), /* 517 minim */ - S_ST( 'p', 3, 519, 515 ), /* 518 min */ - S_ST( 'o', 3, 520, 0 ), /* 519 minp */ - S_ST( 'l', 3, 353, 0 ), /* 520 minpo */ - S_ST( 's', 3, 522, 518 ), /* 521 min */ - S_ST( 'a', 3, 523, 0 ), /* 522 mins */ - S_ST( 'n', 3, 354, 0 ), /* 523 minsa */ - S_ST( 'o', 3, 526, 503 ), /* 524 m */ - S_ST( 'd', 3, 355, 0 ), /* 525 mo */ - S_ST( 'n', 3, 530, 525 ), /* 526 mo */ - S_ST( 'i', 3, 528, 0 ), /* 527 mon */ - S_ST( 't', 3, 529, 0 ), /* 528 moni */ - S_ST( 'o', 3, 357, 0 ), /* 529 monit */ - S_ST( 't', 3, 358, 527 ), /* 530 mon */ - S_ST( 'r', 3, 359, 524 ), /* 531 m */ - S_ST( 's', 3, 533, 531 ), /* 532 m */ - S_ST( 's', 3, 534, 0 ), /* 533 ms */ - S_ST( 'n', 3, 535, 0 ), /* 534 mss */ - S_ST( 't', 3, 328, 0 ), /* 535 mssn */ - S_ST( 'u', 3, 537, 532 ), /* 536 m */ - S_ST( 'l', 3, 538, 0 ), /* 537 mu */ - S_ST( 't', 3, 539, 0 ), /* 538 mul */ - S_ST( 'i', 3, 540, 0 ), /* 539 mult */ - S_ST( 'c', 3, 541, 0 ), /* 540 multi */ - S_ST( 'a', 3, 542, 0 ), /* 541 multic */ - S_ST( 's', 3, 543, 0 ), /* 542 multica */ - S_ST( 't', 3, 544, 0 ), /* 543 multicas */ - S_ST( 'c', 3, 545, 0 ), /* 544 multicast */ - S_ST( 'l', 3, 546, 0 ), /* 545 multicastc */ - S_ST( 'i', 3, 547, 0 ), /* 546 multicastcl */ - S_ST( 'e', 3, 548, 0 ), /* 547 multicastcli */ - S_ST( 'n', 3, 360, 0 ), /* 548 multicastclie */ - S_ST( 'n', 3, 592, 455 ), /* 549 */ - S_ST( 'i', 3, 361, 0 ), /* 550 n */ - S_ST( 'o', 3, 587, 550 ), /* 551 n */ - S_ST( 'l', 3, 553, 0 ), /* 552 no */ - S_ST( 'i', 3, 554, 0 ), /* 553 nol */ - S_ST( 'n', 3, 362, 0 ), /* 554 noli */ - S_ST( 'm', 3, 560, 552 ), /* 555 no */ - S_ST( 'o', 3, 557, 0 ), /* 556 nom */ - S_ST( 'd', 3, 558, 0 ), /* 557 nomo */ - S_ST( 'i', 3, 559, 0 ), /* 558 nomod */ - S_ST( 'f', 3, 363, 0 ), /* 559 nomodi */ - S_ST( 'r', 3, 561, 556 ), /* 560 nom */ - S_ST( 'u', 3, 562, 0 ), /* 561 nomr */ - S_ST( 'l', 3, 563, 0 ), /* 562 nomru */ - S_ST( 'i', 3, 564, 0 ), /* 563 nomrul */ - S_ST( 's', 3, 364, 0 ), /* 564 nomruli */ - S_ST( 'n', 3, 566, 555 ), /* 565 no */ - S_ST( 'v', 3, 567, 365 ), /* 566 non */ - S_ST( 'o', 3, 568, 0 ), /* 567 nonv */ - S_ST( 'l', 3, 569, 0 ), /* 568 nonvo */ - S_ST( 'a', 3, 570, 0 ), /* 569 nonvol */ - S_ST( 't', 3, 571, 0 ), /* 570 nonvola */ - S_ST( 'i', 3, 572, 0 ), /* 571 nonvolat */ - S_ST( 'l', 3, 366, 0 ), /* 572 nonvolati */ - S_ST( 'p', 3, 574, 565 ), /* 573 no */ - S_ST( 'e', 3, 575, 0 ), /* 574 nop */ - S_ST( 'e', 3, 367, 0 ), /* 575 nope */ - S_ST( 'q', 3, 577, 573 ), /* 576 no */ - S_ST( 'u', 3, 578, 0 ), /* 577 noq */ - S_ST( 'e', 3, 579, 0 ), /* 578 noqu */ - S_ST( 'r', 3, 368, 0 ), /* 579 noque */ - S_ST( 's', 3, 581, 576 ), /* 580 no */ - S_ST( 'e', 3, 585, 0 ), /* 581 nos */ - S_ST( 'l', 3, 583, 0 ), /* 582 nose */ - S_ST( 'e', 3, 584, 0 ), /* 583 nosel */ - S_ST( 'c', 3, 369, 0 ), /* 584 nosele */ - S_ST( 'r', 3, 586, 582 ), /* 585 nose */ - S_ST( 'v', 3, 370, 0 ), /* 586 noser */ - S_ST( 't', 3, 588, 580 ), /* 587 no */ - S_ST( 'r', 3, 590, 0 ), /* 588 not */ - S_ST( 'a', 3, 371, 0 ), /* 589 notr */ - S_ST( 'u', 3, 591, 589 ), /* 590 notr */ - S_ST( 's', 3, 372, 0 ), /* 591 notru */ - S_ST( 't', 3, 373, 551 ), /* 592 n */ - S_ST( 'p', 3, 594, 0 ), /* 593 ntp */ - S_ST( 'o', 3, 595, 0 ), /* 594 ntpp */ - S_ST( 'r', 3, 374, 0 ), /* 595 ntppo */ - S_ST( 's', 3, 597, 593 ), /* 596 ntp */ - S_ST( 'i', 3, 598, 0 ), /* 597 ntps */ - S_ST( 'g', 3, 599, 0 ), /* 598 ntpsi */ - S_ST( 'n', 3, 600, 0 ), /* 599 ntpsig */ - S_ST( 'd', 3, 601, 0 ), /* 600 ntpsign */ - S_ST( 's', 3, 602, 0 ), /* 601 ntpsignd */ - S_ST( 'o', 3, 603, 0 ), /* 602 ntpsignds */ - S_ST( 'c', 3, 604, 0 ), /* 603 ntpsigndso */ - S_ST( 'k', 3, 605, 0 ), /* 604 ntpsigndsoc */ - S_ST( 'e', 3, 375, 0 ), /* 605 ntpsigndsock */ - S_ST( 'o', 3, 607, 549 ), /* 606 */ - S_ST( 'r', 3, 608, 0 ), /* 607 o */ - S_ST( 'p', 3, 609, 0 ), /* 608 or */ - S_ST( 'h', 3, 610, 0 ), /* 609 orp */ - S_ST( 'a', 3, 376, 0 ), /* 610 orph */ - S_ST( 'w', 3, 612, 0 ), /* 611 orphan */ - S_ST( 'a', 3, 613, 0 ), /* 612 orphanw */ - S_ST( 'i', 3, 377, 0 ), /* 613 orphanwa */ - S_ST( 'p', 3, 389, 606 ), /* 614 */ - S_ST( 'a', 3, 616, 0 ), /* 615 p */ - S_ST( 'n', 3, 617, 0 ), /* 616 pa */ - S_ST( 'i', 3, 378, 0 ), /* 617 pan */ - S_ST( 'e', 3, 619, 615 ), /* 618 p */ - S_ST( 'e', 3, 379, 0 ), /* 619 pe */ - S_ST( 's', 3, 621, 0 ), /* 620 peer */ - S_ST( 't', 3, 622, 0 ), /* 621 peers */ - S_ST( 'a', 3, 623, 0 ), /* 622 peerst */ - S_ST( 't', 3, 380, 0 ), /* 623 peersta */ - S_ST( 'h', 3, 625, 618 ), /* 624 p */ - S_ST( 'o', 3, 626, 0 ), /* 625 ph */ - S_ST( 'n', 3, 381, 0 ), /* 626 pho */ - S_ST( 'i', 3, 382, 624 ), /* 627 p */ - S_ST( 'f', 3, 629, 0 ), /* 628 pid */ - S_ST( 'i', 3, 630, 0 ), /* 629 pidf */ - S_ST( 'l', 3, 383, 0 ), /* 630 pidfi */ - S_ST( 'o', 3, 633, 627 ), /* 631 p */ - S_ST( 'o', 3, 384, 0 ), /* 632 po */ - S_ST( 'r', 3, 385, 632 ), /* 633 po */ - S_ST( 'r', 3, 641, 631 ), /* 634 p */ - S_ST( 'e', 3, 639, 0 ), /* 635 pr */ - S_ST( 'e', 3, 637, 0 ), /* 636 pre */ - S_ST( 'm', 3, 638, 0 ), /* 637 pree */ - S_ST( 'p', 3, 386, 0 ), /* 638 preem */ - S_ST( 'f', 3, 640, 636 ), /* 639 pre */ - S_ST( 'e', 3, 387, 0 ), /* 640 pref */ - S_ST( 'o', 3, 654, 635 ), /* 641 pr */ - S_ST( 'c', 3, 643, 0 ), /* 642 pro */ - S_ST( '_', 3, 644, 0 ), /* 643 proc */ - S_ST( 'd', 3, 645, 0 ), /* 644 proc_ */ - S_ST( 'e', 3, 646, 0 ), /* 645 proc_d */ - S_ST( 'l', 3, 647, 0 ), /* 646 proc_de */ - S_ST( 'a', 3, 444, 0 ), /* 647 proc_del */ - S_ST( 'p', 3, 649, 642 ), /* 648 pro */ - S_ST( '_', 3, 650, 0 ), /* 649 prop */ - S_ST( 'd', 3, 651, 0 ), /* 650 prop_ */ - S_ST( 'e', 3, 652, 0 ), /* 651 prop_d */ - S_ST( 'l', 3, 653, 0 ), /* 652 prop_de */ - S_ST( 'a', 3, 443, 0 ), /* 653 prop_del */ - S_ST( 't', 3, 655, 648 ), /* 654 pro */ - S_ST( 'o', 3, 656, 0 ), /* 655 prot */ - S_ST( 's', 3, 657, 0 ), /* 656 proto */ - S_ST( 't', 3, 658, 0 ), /* 657 protos */ - S_ST( 'a', 3, 659, 0 ), /* 658 protost */ - S_ST( 't', 3, 388, 0 ), /* 659 protosta */ - S_ST( 'r', 3, 691, 614 ), /* 660 */ - S_ST( 'a', 3, 667, 0 ), /* 661 r */ - S_ST( 'n', 3, 663, 0 ), /* 662 ra */ - S_ST( 'd', 3, 664, 0 ), /* 663 ran */ - S_ST( 'f', 3, 665, 0 ), /* 664 rand */ - S_ST( 'i', 3, 666, 0 ), /* 665 randf */ - S_ST( 'l', 3, 390, 0 ), /* 666 randfi */ - S_ST( 'w', 3, 668, 662 ), /* 667 ra */ - S_ST( 's', 3, 669, 0 ), /* 668 raw */ - S_ST( 't', 3, 670, 0 ), /* 669 raws */ - S_ST( 'a', 3, 671, 0 ), /* 670 rawst */ - S_ST( 't', 3, 391, 0 ), /* 671 rawsta */ - S_ST( 'e', 3, 688, 661 ), /* 672 r */ - S_ST( 'f', 3, 674, 0 ), /* 673 re */ - S_ST( 'i', 3, 392, 0 ), /* 674 ref */ - S_ST( 'q', 3, 676, 673 ), /* 675 re */ - S_ST( 'u', 3, 677, 0 ), /* 676 req */ - S_ST( 'e', 3, 678, 0 ), /* 677 requ */ - S_ST( 's', 3, 679, 0 ), /* 678 reque */ - S_ST( 't', 3, 680, 0 ), /* 679 reques */ - S_ST( 'k', 3, 681, 0 ), /* 680 request */ - S_ST( 'e', 3, 393, 0 ), /* 681 requestk */ - S_ST( 's', 3, 684, 675 ), /* 682 re */ - S_ST( 'e', 3, 394, 0 ), /* 683 res */ - S_ST( 't', 3, 685, 683 ), /* 684 res */ - S_ST( 'r', 3, 686, 0 ), /* 685 rest */ - S_ST( 'i', 3, 687, 0 ), /* 686 restr */ - S_ST( 'c', 3, 395, 0 ), /* 687 restri */ - S_ST( 'v', 3, 689, 682 ), /* 688 re */ - S_ST( 'o', 3, 690, 0 ), /* 689 rev */ - S_ST( 'k', 3, 396, 0 ), /* 690 revo */ - S_ST( 'l', 3, 692, 672 ), /* 691 r */ - S_ST( 'i', 3, 693, 0 ), /* 692 rl */ - S_ST( 'm', 3, 694, 0 ), /* 693 rli */ - S_ST( 'i', 3, 397, 0 ), /* 694 rlim */ - S_ST( 's', 3, 763, 660 ), /* 695 */ - S_ST( 'a', 3, 697, 0 ), /* 696 s */ - S_ST( 'v', 3, 698, 0 ), /* 697 sa */ - S_ST( 'e', 3, 699, 0 ), /* 698 sav */ - S_ST( 'c', 3, 700, 0 ), /* 699 save */ - S_ST( 'o', 3, 701, 0 ), /* 700 savec */ - S_ST( 'n', 3, 702, 0 ), /* 701 saveco */ - S_ST( 'f', 3, 703, 0 ), /* 702 savecon */ - S_ST( 'i', 3, 704, 0 ), /* 703 saveconf */ - S_ST( 'g', 3, 705, 0 ), /* 704 saveconfi */ - S_ST( 'd', 3, 706, 0 ), /* 705 saveconfig */ - S_ST( 'i', 3, 398, 0 ), /* 706 saveconfigd */ - S_ST( 'e', 3, 717, 696 ), /* 707 s */ - S_ST( 'r', 3, 709, 0 ), /* 708 se */ - S_ST( 'v', 3, 710, 0 ), /* 709 ser */ - S_ST( 'e', 3, 399, 0 ), /* 710 serv */ - S_ST( '_', 3, 712, 0 ), /* 711 server */ - S_ST( 'o', 3, 713, 0 ), /* 712 server_ */ - S_ST( 'f', 3, 714, 0 ), /* 713 server_o */ - S_ST( 'f', 3, 715, 0 ), /* 714 server_of */ - S_ST( 's', 3, 716, 0 ), /* 715 server_off */ - S_ST( 'e', 3, 438, 0 ), /* 716 server_offs */ - S_ST( 't', 3, 718, 708 ), /* 717 se */ - S_ST( 'v', 3, 719, 0 ), /* 718 set */ - S_ST( 'a', 3, 400, 0 ), /* 719 setv */ - S_ST( 'i', 3, 721, 707 ), /* 720 s */ - S_ST( 'm', 3, 722, 0 ), /* 721 si */ - S_ST( 'u', 3, 723, 0 ), /* 722 sim */ - S_ST( 'l', 3, 724, 0 ), /* 723 simu */ - S_ST( 'a', 3, 725, 0 ), /* 724 simul */ - S_ST( 't', 3, 726, 0 ), /* 725 simula */ - S_ST( 'i', 3, 727, 435 ), /* 726 simulat */ - S_ST( 'o', 3, 728, 0 ), /* 727 simulati */ - S_ST( 'n', 3, 729, 0 ), /* 728 simulatio */ - S_ST( '_', 3, 730, 0 ), /* 729 simulation */ - S_ST( 'd', 3, 731, 0 ), /* 730 simulation_ */ - S_ST( 'u', 3, 732, 0 ), /* 731 simulation_d */ - S_ST( 'r', 3, 733, 0 ), /* 732 simulation_du */ - S_ST( 'a', 3, 734, 0 ), /* 733 simulation_dur */ - S_ST( 't', 3, 735, 0 ), /* 734 simulation_dura */ - S_ST( 'i', 3, 736, 0 ), /* 735 simulation_durat */ - S_ST( 'o', 3, 437, 0 ), /* 736 simulation_durati */ - S_ST( 'o', 3, 738, 720 ), /* 737 s */ - S_ST( 'u', 3, 739, 0 ), /* 738 so */ - S_ST( 'r', 3, 740, 0 ), /* 739 sou */ - S_ST( 'c', 3, 401, 0 ), /* 740 sour */ - S_ST( 't', 3, 759, 737 ), /* 741 s */ - S_ST( 'a', 3, 748, 0 ), /* 742 st */ - S_ST( 'c', 3, 744, 0 ), /* 743 sta */ - S_ST( 'k', 3, 745, 0 ), /* 744 stac */ - S_ST( 's', 3, 746, 0 ), /* 745 stack */ - S_ST( 'i', 3, 747, 0 ), /* 746 stacks */ - S_ST( 'z', 3, 402, 0 ), /* 747 stacksi */ - S_ST( 't', 3, 404, 743 ), /* 748 sta */ - S_ST( 'i', 3, 750, 0 ), /* 749 stat */ - S_ST( 's', 3, 751, 0 ), /* 750 stati */ - S_ST( 't', 3, 752, 0 ), /* 751 statis */ - S_ST( 'i', 3, 753, 0 ), /* 752 statist */ - S_ST( 'c', 3, 403, 0 ), /* 753 statisti */ - S_ST( 'd', 3, 755, 0 ), /* 754 stats */ - S_ST( 'i', 3, 405, 0 ), /* 755 statsd */ - S_ST( 'e', 3, 406, 742 ), /* 756 st */ - S_ST( 'o', 3, 758, 0 ), /* 757 step */ - S_ST( 'u', 3, 407, 0 ), /* 758 stepo */ - S_ST( 'r', 3, 760, 756 ), /* 759 st */ - S_ST( 'a', 3, 761, 0 ), /* 760 str */ - S_ST( 't', 3, 762, 0 ), /* 761 stra */ - S_ST( 'u', 3, 408, 0 ), /* 762 strat */ - S_ST( 'y', 3, 410, 741 ), /* 763 s */ - S_ST( 's', 3, 765, 0 ), /* 764 sys */ - S_ST( 't', 3, 766, 0 ), /* 765 syss */ - S_ST( 'a', 3, 767, 0 ), /* 766 sysst */ - S_ST( 't', 3, 411, 0 ), /* 767 syssta */ - S_ST( 't', 3, 794, 695 ), /* 768 */ - S_ST( 'i', 3, 780, 0 ), /* 769 t */ - S_ST( 'c', 3, 412, 0 ), /* 770 ti */ - S_ST( 'm', 3, 773, 770 ), /* 771 ti */ - S_ST( 'e', 3, 415, 0 ), /* 772 tim */ - S_ST( 'i', 3, 774, 772 ), /* 773 tim */ - S_ST( 'n', 3, 775, 0 ), /* 774 timi */ - S_ST( 'g', 3, 776, 0 ), /* 775 timin */ - S_ST( 's', 3, 777, 0 ), /* 776 timing */ - S_ST( 't', 3, 778, 0 ), /* 777 timings */ - S_ST( 'a', 3, 779, 0 ), /* 778 timingst */ - S_ST( 't', 3, 416, 0 ), /* 779 timingsta */ - S_ST( 'n', 3, 781, 771 ), /* 780 ti */ - S_ST( 'k', 3, 782, 0 ), /* 781 tin */ - S_ST( 'e', 3, 417, 0 ), /* 782 tink */ - S_ST( 'o', 3, 418, 769 ), /* 783 t */ - S_ST( 'r', 3, 786, 783 ), /* 784 t */ - S_ST( 'a', 3, 419, 0 ), /* 785 tr */ - S_ST( 'u', 3, 787, 785 ), /* 786 tr */ - S_ST( 's', 3, 788, 420 ), /* 787 tru */ - S_ST( 't', 3, 789, 0 ), /* 788 trus */ - S_ST( 'e', 3, 790, 0 ), /* 789 trust */ - S_ST( 'd', 3, 791, 0 ), /* 790 truste */ - S_ST( 'k', 3, 792, 0 ), /* 791 trusted */ - S_ST( 'e', 3, 421, 0 ), /* 792 trustedk */ - S_ST( 't', 3, 422, 784 ), /* 793 t */ - S_ST( 'y', 3, 795, 793 ), /* 794 t */ - S_ST( 'p', 3, 423, 0 ), /* 795 ty */ - S_ST( 'u', 3, 797, 768 ), /* 796 */ - S_ST( 'n', 3, 803, 0 ), /* 797 u */ - S_ST( 'c', 3, 799, 0 ), /* 798 un */ - S_ST( 'o', 3, 800, 0 ), /* 799 unc */ - S_ST( 'n', 3, 801, 0 ), /* 800 unco */ - S_ST( 'f', 3, 802, 0 ), /* 801 uncon */ - S_ST( 'i', 3, 425, 0 ), /* 802 unconf */ - S_ST( 'p', 3, 804, 798 ), /* 803 un */ - S_ST( 'e', 3, 805, 0 ), /* 804 unp */ - S_ST( 'e', 3, 426, 0 ), /* 805 unpe */ - S_ST( 'v', 3, 807, 796 ), /* 806 */ - S_ST( 'e', 3, 808, 0 ), /* 807 v */ - S_ST( 'r', 3, 809, 0 ), /* 808 ve */ - S_ST( 's', 3, 810, 0 ), /* 809 ver */ - S_ST( 'i', 3, 811, 0 ), /* 810 vers */ - S_ST( 'o', 3, 427, 0 ), /* 811 versi */ - S_ST( 'w', 3, 819, 806 ), /* 812 */ - S_ST( 'a', 3, 814, 0 ), /* 813 w */ - S_ST( 'n', 3, 815, 0 ), /* 814 wa */ - S_ST( 'd', 3, 816, 0 ), /* 815 wan */ - S_ST( 'e', 3, 441, 0 ), /* 816 wand */ - S_ST( 'e', 3, 818, 813 ), /* 817 w */ - S_ST( 'e', 3, 429, 0 ), /* 818 we */ - S_ST( 'i', 3, 820, 817 ), /* 819 w */ - S_ST( 'l', 3, 821, 0 ), /* 820 wi */ - S_ST( 'd', 3, 822, 0 ), /* 821 wil */ - S_ST( 'c', 3, 823, 0 ), /* 822 wild */ - S_ST( 'a', 3, 824, 0 ), /* 823 wildc */ - S_ST( 'r', 3, 430, 0 ), /* 824 wildca */ - S_ST( 'x', 3, 826, 812 ), /* 825 */ - S_ST( 'l', 3, 827, 0 ), /* 826 x */ - S_ST( 'e', 3, 828, 0 ), /* 827 xl */ - S_ST( 'a', 3, 829, 0 ), /* 828 xle */ - S_ST( 'v', 3, 431, 0 ), /* 829 xlea */ - S_ST( 'y', 3, 831, 825 ), /* 830 [initial state] */ - S_ST( 'e', 3, 832, 0 ), /* 831 y */ - S_ST( 'a', 3, 432, 0 ) /* 832 ye */ + S_ST( 'p', 0, 764, 0 ), /* 406 T_Step */ + S_ST( 'k', 0, 0, 0 ), /* 407 T_Stepback */ + S_ST( 'd', 0, 0, 0 ), /* 408 T_Stepfwd */ + S_ST( 't', 0, 0, 0 ), /* 409 T_Stepout */ + S_ST( 'm', 0, 0, 0 ), /* 410 T_Stratum */ + S_ST( 'l', 3, 334, 0 ), /* 411 logfi */ + S_ST( 's', 0, 771, 0 ), /* 412 T_Sys */ + S_ST( 's', 0, 0, 0 ), /* 413 T_Sysstats */ + S_ST( 'k', 0, 0, 0 ), /* 414 T_Tick */ + S_ST( '1', 0, 0, 0 ), /* 415 T_Time1 */ + S_ST( '2', 0, 0, 415 ), /* 416 T_Time2 */ + S_ST( 'r', 0, 0, 416 ), /* 417 T_Timer */ + S_ST( 's', 0, 0, 0 ), /* 418 T_Timingstats */ + S_ST( 'r', 0, 0, 0 ), /* 419 T_Tinker */ + S_ST( 's', 0, 0, 0 ), /* 420 T_Tos */ + S_ST( 'p', 1, 0, 0 ), /* 421 T_Trap */ + S_ST( 'e', 0, 0, 0 ), /* 422 T_True */ + S_ST( 'y', 0, 0, 0 ), /* 423 T_Trustedkey */ + S_ST( 'l', 0, 0, 0 ), /* 424 T_Ttl */ + S_ST( 'e', 0, 0, 0 ), /* 425 T_Type */ + S_ST( 'o', 3, 430, 254 ), /* 426 lo */ + S_ST( 'g', 1, 0, 0 ), /* 427 T_Unconfig */ + S_ST( 'r', 1, 0, 0 ), /* 428 T_Unpeer */ + S_ST( 'n', 0, 0, 0 ), /* 429 T_Version */ + S_ST( 'p', 3, 435, 0 ), /* 430 loo */ + S_ST( 'k', 0, 0, 0 ), /* 431 T_Week */ + S_ST( 'd', 0, 0, 0 ), /* 432 T_Wildcard */ + S_ST( 'e', 0, 0, 0 ), /* 433 T_Xleave */ + S_ST( 'r', 0, 0, 0 ), /* 434 T_Year */ + S_ST( 's', 3, 436, 0 ), /* 435 loop */ + S_ST( 't', 3, 447, 0 ), /* 436 loops */ + S_ST( 'e', 0, 0, 0 ), /* 437 T_Simulate */ + S_ST( 'y', 0, 0, 0 ), /* 438 T_Beep_Delay */ + S_ST( 'n', 0, 0, 0 ), /* 439 T_Sim_Duration */ + S_ST( 't', 0, 0, 0 ), /* 440 T_Server_Offset */ + S_ST( 'n', 0, 0, 0 ), /* 441 T_Duration */ + S_ST( 't', 0, 0, 0 ), /* 442 T_Freq_Offset */ + S_ST( 'r', 0, 0, 0 ), /* 443 T_Wander */ + S_ST( 'r', 0, 0, 0 ), /* 444 T_Jitter */ + S_ST( 'y', 0, 0, 0 ), /* 445 T_Prop_Delay */ + S_ST( 'y', 0, 0, 0 ), /* 446 T_Proc_Delay */ + S_ST( 'a', 3, 448, 0 ), /* 447 loopst */ + S_ST( 't', 3, 335, 0 ), /* 448 loopsta */ + S_ST( 'w', 3, 450, 426 ), /* 449 lo */ + S_ST( 'p', 3, 451, 0 ), /* 450 low */ + S_ST( 'r', 3, 452, 0 ), /* 451 lowp */ + S_ST( 'i', 3, 453, 0 ), /* 452 lowpr */ + S_ST( 'o', 3, 454, 0 ), /* 453 lowpri */ + S_ST( 't', 3, 455, 0 ), /* 454 lowprio */ + S_ST( 'r', 3, 456, 0 ), /* 455 lowpriot */ + S_ST( 'a', 3, 336, 0 ), /* 456 lowpriotr */ + S_ST( 'm', 3, 538, 237 ), /* 457 */ + S_ST( 'a', 3, 476, 0 ), /* 458 m */ + S_ST( 'n', 3, 460, 0 ), /* 459 ma */ + S_ST( 'y', 3, 461, 0 ), /* 460 man */ + S_ST( 'c', 3, 462, 0 ), /* 461 many */ + S_ST( 'a', 3, 463, 0 ), /* 462 manyc */ + S_ST( 's', 3, 464, 0 ), /* 463 manyca */ + S_ST( 't', 3, 470, 0 ), /* 464 manycas */ + S_ST( 'c', 3, 466, 0 ), /* 465 manycast */ + S_ST( 'l', 3, 467, 0 ), /* 466 manycastc */ + S_ST( 'i', 3, 468, 0 ), /* 467 manycastcl */ + S_ST( 'e', 3, 469, 0 ), /* 468 manycastcli */ + S_ST( 'n', 3, 337, 0 ), /* 469 manycastclie */ + S_ST( 's', 3, 471, 465 ), /* 470 manycast */ + S_ST( 'e', 3, 472, 0 ), /* 471 manycasts */ + S_ST( 'r', 3, 473, 0 ), /* 472 manycastse */ + S_ST( 'v', 3, 474, 0 ), /* 473 manycastser */ + S_ST( 'e', 3, 338, 0 ), /* 474 manycastserv */ + S_ST( 's', 3, 339, 459 ), /* 475 ma */ + S_ST( 'x', 3, 491, 475 ), /* 476 ma */ + S_ST( 'a', 3, 478, 0 ), /* 477 max */ + S_ST( 'g', 3, 340, 0 ), /* 478 maxa */ + S_ST( 'c', 3, 480, 477 ), /* 479 max */ + S_ST( 'l', 3, 481, 0 ), /* 480 maxc */ + S_ST( 'o', 3, 482, 0 ), /* 481 maxcl */ + S_ST( 'c', 3, 341, 0 ), /* 482 maxclo */ + S_ST( 'd', 3, 487, 479 ), /* 483 max */ + S_ST( 'e', 3, 485, 0 ), /* 484 maxd */ + S_ST( 'p', 3, 486, 0 ), /* 485 maxde */ + S_ST( 't', 3, 342, 0 ), /* 486 maxdep */ + S_ST( 'i', 3, 488, 484 ), /* 487 maxd */ + S_ST( 's', 3, 343, 0 ), /* 488 maxdi */ + S_ST( 'm', 3, 490, 483 ), /* 489 max */ + S_ST( 'e', 3, 344, 0 ), /* 490 maxm */ + S_ST( 'p', 3, 492, 489 ), /* 491 max */ + S_ST( 'o', 3, 493, 0 ), /* 492 maxp */ + S_ST( 'l', 3, 345, 0 ), /* 493 maxpo */ + S_ST( 'd', 3, 495, 458 ), /* 494 m */ + S_ST( 'n', 3, 496, 0 ), /* 495 md */ + S_ST( 's', 3, 497, 0 ), /* 496 mdn */ + S_ST( 't', 3, 498, 0 ), /* 497 mdns */ + S_ST( 'r', 3, 499, 0 ), /* 498 mdnst */ + S_ST( 'i', 3, 500, 0 ), /* 499 mdnstr */ + S_ST( 'e', 3, 346, 0 ), /* 500 mdnstri */ + S_ST( 'e', 3, 347, 494 ), /* 501 m */ + S_ST( 'l', 3, 503, 0 ), /* 502 mem */ + S_ST( 'o', 3, 504, 0 ), /* 503 meml */ + S_ST( 'c', 3, 348, 0 ), /* 504 memlo */ + S_ST( 'i', 3, 506, 501 ), /* 505 m */ + S_ST( 'n', 3, 523, 0 ), /* 506 mi */ + S_ST( 'c', 3, 508, 0 ), /* 507 min */ + S_ST( 'l', 3, 509, 0 ), /* 508 minc */ + S_ST( 'o', 3, 510, 0 ), /* 509 mincl */ + S_ST( 'c', 3, 349, 0 ), /* 510 minclo */ + S_ST( 'd', 3, 515, 507 ), /* 511 min */ + S_ST( 'e', 3, 513, 0 ), /* 512 mind */ + S_ST( 'p', 3, 514, 0 ), /* 513 minde */ + S_ST( 't', 3, 350, 0 ), /* 514 mindep */ + S_ST( 'i', 3, 516, 512 ), /* 515 mind */ + S_ST( 's', 3, 351, 0 ), /* 516 mindi */ + S_ST( 'i', 3, 518, 511 ), /* 517 min */ + S_ST( 'm', 3, 519, 0 ), /* 518 mini */ + S_ST( 'u', 3, 352, 0 ), /* 519 minim */ + S_ST( 'p', 3, 521, 517 ), /* 520 min */ + S_ST( 'o', 3, 522, 0 ), /* 521 minp */ + S_ST( 'l', 3, 353, 0 ), /* 522 minpo */ + S_ST( 's', 3, 524, 520 ), /* 523 min */ + S_ST( 'a', 3, 525, 0 ), /* 524 mins */ + S_ST( 'n', 3, 354, 0 ), /* 525 minsa */ + S_ST( 'o', 3, 528, 505 ), /* 526 m */ + S_ST( 'd', 3, 355, 0 ), /* 527 mo */ + S_ST( 'n', 3, 532, 527 ), /* 528 mo */ + S_ST( 'i', 3, 530, 0 ), /* 529 mon */ + S_ST( 't', 3, 531, 0 ), /* 530 moni */ + S_ST( 'o', 3, 357, 0 ), /* 531 monit */ + S_ST( 't', 3, 358, 529 ), /* 532 mon */ + S_ST( 'r', 3, 359, 526 ), /* 533 m */ + S_ST( 's', 3, 535, 533 ), /* 534 m */ + S_ST( 's', 3, 536, 0 ), /* 535 ms */ + S_ST( 'n', 3, 537, 0 ), /* 536 mss */ + S_ST( 't', 3, 328, 0 ), /* 537 mssn */ + S_ST( 'u', 3, 539, 534 ), /* 538 m */ + S_ST( 'l', 3, 540, 0 ), /* 539 mu */ + S_ST( 't', 3, 541, 0 ), /* 540 mul */ + S_ST( 'i', 3, 542, 0 ), /* 541 mult */ + S_ST( 'c', 3, 543, 0 ), /* 542 multi */ + S_ST( 'a', 3, 544, 0 ), /* 543 multic */ + S_ST( 's', 3, 545, 0 ), /* 544 multica */ + S_ST( 't', 3, 546, 0 ), /* 545 multicas */ + S_ST( 'c', 3, 547, 0 ), /* 546 multicast */ + S_ST( 'l', 3, 548, 0 ), /* 547 multicastc */ + S_ST( 'i', 3, 549, 0 ), /* 548 multicastcl */ + S_ST( 'e', 3, 550, 0 ), /* 549 multicastcli */ + S_ST( 'n', 3, 360, 0 ), /* 550 multicastclie */ + S_ST( 'n', 3, 594, 457 ), /* 551 */ + S_ST( 'i', 3, 361, 0 ), /* 552 n */ + S_ST( 'o', 3, 589, 552 ), /* 553 n */ + S_ST( 'l', 3, 555, 0 ), /* 554 no */ + S_ST( 'i', 3, 556, 0 ), /* 555 nol */ + S_ST( 'n', 3, 362, 0 ), /* 556 noli */ + S_ST( 'm', 3, 562, 554 ), /* 557 no */ + S_ST( 'o', 3, 559, 0 ), /* 558 nom */ + S_ST( 'd', 3, 560, 0 ), /* 559 nomo */ + S_ST( 'i', 3, 561, 0 ), /* 560 nomod */ + S_ST( 'f', 3, 363, 0 ), /* 561 nomodi */ + S_ST( 'r', 3, 563, 558 ), /* 562 nom */ + S_ST( 'u', 3, 564, 0 ), /* 563 nomr */ + S_ST( 'l', 3, 565, 0 ), /* 564 nomru */ + S_ST( 'i', 3, 566, 0 ), /* 565 nomrul */ + S_ST( 's', 3, 364, 0 ), /* 566 nomruli */ + S_ST( 'n', 3, 568, 557 ), /* 567 no */ + S_ST( 'v', 3, 569, 365 ), /* 568 non */ + S_ST( 'o', 3, 570, 0 ), /* 569 nonv */ + S_ST( 'l', 3, 571, 0 ), /* 570 nonvo */ + S_ST( 'a', 3, 572, 0 ), /* 571 nonvol */ + S_ST( 't', 3, 573, 0 ), /* 572 nonvola */ + S_ST( 'i', 3, 574, 0 ), /* 573 nonvolat */ + S_ST( 'l', 3, 366, 0 ), /* 574 nonvolati */ + S_ST( 'p', 3, 576, 567 ), /* 575 no */ + S_ST( 'e', 3, 577, 0 ), /* 576 nop */ + S_ST( 'e', 3, 367, 0 ), /* 577 nope */ + S_ST( 'q', 3, 579, 575 ), /* 578 no */ + S_ST( 'u', 3, 580, 0 ), /* 579 noq */ + S_ST( 'e', 3, 581, 0 ), /* 580 noqu */ + S_ST( 'r', 3, 368, 0 ), /* 581 noque */ + S_ST( 's', 3, 583, 578 ), /* 582 no */ + S_ST( 'e', 3, 587, 0 ), /* 583 nos */ + S_ST( 'l', 3, 585, 0 ), /* 584 nose */ + S_ST( 'e', 3, 586, 0 ), /* 585 nosel */ + S_ST( 'c', 3, 369, 0 ), /* 586 nosele */ + S_ST( 'r', 3, 588, 584 ), /* 587 nose */ + S_ST( 'v', 3, 370, 0 ), /* 588 noser */ + S_ST( 't', 3, 590, 582 ), /* 589 no */ + S_ST( 'r', 3, 592, 0 ), /* 590 not */ + S_ST( 'a', 3, 371, 0 ), /* 591 notr */ + S_ST( 'u', 3, 593, 591 ), /* 592 notr */ + S_ST( 's', 3, 372, 0 ), /* 593 notru */ + S_ST( 't', 3, 373, 553 ), /* 594 n */ + S_ST( 'p', 3, 596, 0 ), /* 595 ntp */ + S_ST( 'o', 3, 597, 0 ), /* 596 ntpp */ + S_ST( 'r', 3, 374, 0 ), /* 597 ntppo */ + S_ST( 's', 3, 599, 595 ), /* 598 ntp */ + S_ST( 'i', 3, 600, 0 ), /* 599 ntps */ + S_ST( 'g', 3, 601, 0 ), /* 600 ntpsi */ + S_ST( 'n', 3, 602, 0 ), /* 601 ntpsig */ + S_ST( 'd', 3, 603, 0 ), /* 602 ntpsign */ + S_ST( 's', 3, 604, 0 ), /* 603 ntpsignd */ + S_ST( 'o', 3, 605, 0 ), /* 604 ntpsignds */ + S_ST( 'c', 3, 606, 0 ), /* 605 ntpsigndso */ + S_ST( 'k', 3, 607, 0 ), /* 606 ntpsigndsoc */ + S_ST( 'e', 3, 375, 0 ), /* 607 ntpsigndsock */ + S_ST( 'o', 3, 609, 551 ), /* 608 */ + S_ST( 'r', 3, 610, 0 ), /* 609 o */ + S_ST( 'p', 3, 611, 0 ), /* 610 or */ + S_ST( 'h', 3, 612, 0 ), /* 611 orp */ + S_ST( 'a', 3, 376, 0 ), /* 612 orph */ + S_ST( 'w', 3, 614, 0 ), /* 613 orphan */ + S_ST( 'a', 3, 615, 0 ), /* 614 orphanw */ + S_ST( 'i', 3, 377, 0 ), /* 615 orphanwa */ + S_ST( 'p', 3, 389, 608 ), /* 616 */ + S_ST( 'a', 3, 618, 0 ), /* 617 p */ + S_ST( 'n', 3, 619, 0 ), /* 618 pa */ + S_ST( 'i', 3, 378, 0 ), /* 619 pan */ + S_ST( 'e', 3, 621, 617 ), /* 620 p */ + S_ST( 'e', 3, 379, 0 ), /* 621 pe */ + S_ST( 's', 3, 623, 0 ), /* 622 peer */ + S_ST( 't', 3, 624, 0 ), /* 623 peers */ + S_ST( 'a', 3, 625, 0 ), /* 624 peerst */ + S_ST( 't', 3, 380, 0 ), /* 625 peersta */ + S_ST( 'h', 3, 627, 620 ), /* 626 p */ + S_ST( 'o', 3, 628, 0 ), /* 627 ph */ + S_ST( 'n', 3, 381, 0 ), /* 628 pho */ + S_ST( 'i', 3, 382, 626 ), /* 629 p */ + S_ST( 'f', 3, 631, 0 ), /* 630 pid */ + S_ST( 'i', 3, 632, 0 ), /* 631 pidf */ + S_ST( 'l', 3, 383, 0 ), /* 632 pidfi */ + S_ST( 'o', 3, 635, 629 ), /* 633 p */ + S_ST( 'o', 3, 384, 0 ), /* 634 po */ + S_ST( 'r', 3, 385, 634 ), /* 635 po */ + S_ST( 'r', 3, 643, 633 ), /* 636 p */ + S_ST( 'e', 3, 641, 0 ), /* 637 pr */ + S_ST( 'e', 3, 639, 0 ), /* 638 pre */ + S_ST( 'm', 3, 640, 0 ), /* 639 pree */ + S_ST( 'p', 3, 386, 0 ), /* 640 preem */ + S_ST( 'f', 3, 642, 638 ), /* 641 pre */ + S_ST( 'e', 3, 387, 0 ), /* 642 pref */ + S_ST( 'o', 3, 656, 637 ), /* 643 pr */ + S_ST( 'c', 3, 645, 0 ), /* 644 pro */ + S_ST( '_', 3, 646, 0 ), /* 645 proc */ + S_ST( 'd', 3, 647, 0 ), /* 646 proc_ */ + S_ST( 'e', 3, 648, 0 ), /* 647 proc_d */ + S_ST( 'l', 3, 649, 0 ), /* 648 proc_de */ + S_ST( 'a', 3, 446, 0 ), /* 649 proc_del */ + S_ST( 'p', 3, 651, 644 ), /* 650 pro */ + S_ST( '_', 3, 652, 0 ), /* 651 prop */ + S_ST( 'd', 3, 653, 0 ), /* 652 prop_ */ + S_ST( 'e', 3, 654, 0 ), /* 653 prop_d */ + S_ST( 'l', 3, 655, 0 ), /* 654 prop_de */ + S_ST( 'a', 3, 445, 0 ), /* 655 prop_del */ + S_ST( 't', 3, 657, 650 ), /* 656 pro */ + S_ST( 'o', 3, 658, 0 ), /* 657 prot */ + S_ST( 's', 3, 659, 0 ), /* 658 proto */ + S_ST( 't', 3, 660, 0 ), /* 659 protos */ + S_ST( 'a', 3, 661, 0 ), /* 660 protost */ + S_ST( 't', 3, 388, 0 ), /* 661 protosta */ + S_ST( 'r', 3, 693, 616 ), /* 662 */ + S_ST( 'a', 3, 669, 0 ), /* 663 r */ + S_ST( 'n', 3, 665, 0 ), /* 664 ra */ + S_ST( 'd', 3, 666, 0 ), /* 665 ran */ + S_ST( 'f', 3, 667, 0 ), /* 666 rand */ + S_ST( 'i', 3, 668, 0 ), /* 667 randf */ + S_ST( 'l', 3, 390, 0 ), /* 668 randfi */ + S_ST( 'w', 3, 670, 664 ), /* 669 ra */ + S_ST( 's', 3, 671, 0 ), /* 670 raw */ + S_ST( 't', 3, 672, 0 ), /* 671 raws */ + S_ST( 'a', 3, 673, 0 ), /* 672 rawst */ + S_ST( 't', 3, 391, 0 ), /* 673 rawsta */ + S_ST( 'e', 3, 690, 663 ), /* 674 r */ + S_ST( 'f', 3, 676, 0 ), /* 675 re */ + S_ST( 'i', 3, 392, 0 ), /* 676 ref */ + S_ST( 'q', 3, 678, 675 ), /* 677 re */ + S_ST( 'u', 3, 679, 0 ), /* 678 req */ + S_ST( 'e', 3, 680, 0 ), /* 679 requ */ + S_ST( 's', 3, 681, 0 ), /* 680 reque */ + S_ST( 't', 3, 682, 0 ), /* 681 reques */ + S_ST( 'k', 3, 683, 0 ), /* 682 request */ + S_ST( 'e', 3, 393, 0 ), /* 683 requestk */ + S_ST( 's', 3, 686, 677 ), /* 684 re */ + S_ST( 'e', 3, 394, 0 ), /* 685 res */ + S_ST( 't', 3, 687, 685 ), /* 686 res */ + S_ST( 'r', 3, 688, 0 ), /* 687 rest */ + S_ST( 'i', 3, 689, 0 ), /* 688 restr */ + S_ST( 'c', 3, 395, 0 ), /* 689 restri */ + S_ST( 'v', 3, 691, 684 ), /* 690 re */ + S_ST( 'o', 3, 692, 0 ), /* 691 rev */ + S_ST( 'k', 3, 396, 0 ), /* 692 revo */ + S_ST( 'l', 3, 694, 674 ), /* 693 r */ + S_ST( 'i', 3, 695, 0 ), /* 694 rl */ + S_ST( 'm', 3, 696, 0 ), /* 695 rli */ + S_ST( 'i', 3, 397, 0 ), /* 696 rlim */ + S_ST( 's', 3, 770, 662 ), /* 697 */ + S_ST( 'a', 3, 699, 0 ), /* 698 s */ + S_ST( 'v', 3, 700, 0 ), /* 699 sa */ + S_ST( 'e', 3, 701, 0 ), /* 700 sav */ + S_ST( 'c', 3, 702, 0 ), /* 701 save */ + S_ST( 'o', 3, 703, 0 ), /* 702 savec */ + S_ST( 'n', 3, 704, 0 ), /* 703 saveco */ + S_ST( 'f', 3, 705, 0 ), /* 704 savecon */ + S_ST( 'i', 3, 706, 0 ), /* 705 saveconf */ + S_ST( 'g', 3, 707, 0 ), /* 706 saveconfi */ + S_ST( 'd', 3, 708, 0 ), /* 707 saveconfig */ + S_ST( 'i', 3, 398, 0 ), /* 708 saveconfigd */ + S_ST( 'e', 3, 719, 698 ), /* 709 s */ + S_ST( 'r', 3, 711, 0 ), /* 710 se */ + S_ST( 'v', 3, 712, 0 ), /* 711 ser */ + S_ST( 'e', 3, 399, 0 ), /* 712 serv */ + S_ST( '_', 3, 714, 0 ), /* 713 server */ + S_ST( 'o', 3, 715, 0 ), /* 714 server_ */ + S_ST( 'f', 3, 716, 0 ), /* 715 server_o */ + S_ST( 'f', 3, 717, 0 ), /* 716 server_of */ + S_ST( 's', 3, 718, 0 ), /* 717 server_off */ + S_ST( 'e', 3, 440, 0 ), /* 718 server_offs */ + S_ST( 't', 3, 720, 710 ), /* 719 se */ + S_ST( 'v', 3, 721, 0 ), /* 720 set */ + S_ST( 'a', 3, 400, 0 ), /* 721 setv */ + S_ST( 'i', 3, 723, 709 ), /* 722 s */ + S_ST( 'm', 3, 724, 0 ), /* 723 si */ + S_ST( 'u', 3, 725, 0 ), /* 724 sim */ + S_ST( 'l', 3, 726, 0 ), /* 725 simu */ + S_ST( 'a', 3, 727, 0 ), /* 726 simul */ + S_ST( 't', 3, 728, 0 ), /* 727 simula */ + S_ST( 'i', 3, 729, 437 ), /* 728 simulat */ + S_ST( 'o', 3, 730, 0 ), /* 729 simulati */ + S_ST( 'n', 3, 731, 0 ), /* 730 simulatio */ + S_ST( '_', 3, 732, 0 ), /* 731 simulation */ + S_ST( 'd', 3, 733, 0 ), /* 732 simulation_ */ + S_ST( 'u', 3, 734, 0 ), /* 733 simulation_d */ + S_ST( 'r', 3, 735, 0 ), /* 734 simulation_du */ + S_ST( 'a', 3, 736, 0 ), /* 735 simulation_dur */ + S_ST( 't', 3, 737, 0 ), /* 736 simulation_dura */ + S_ST( 'i', 3, 738, 0 ), /* 737 simulation_durat */ + S_ST( 'o', 3, 439, 0 ), /* 738 simulation_durati */ + S_ST( 'o', 3, 740, 722 ), /* 739 s */ + S_ST( 'u', 3, 741, 0 ), /* 740 so */ + S_ST( 'r', 3, 742, 0 ), /* 741 sou */ + S_ST( 'c', 3, 401, 0 ), /* 742 sour */ + S_ST( 't', 3, 766, 739 ), /* 743 s */ + S_ST( 'a', 3, 750, 0 ), /* 744 st */ + S_ST( 'c', 3, 746, 0 ), /* 745 sta */ + S_ST( 'k', 3, 747, 0 ), /* 746 stac */ + S_ST( 's', 3, 748, 0 ), /* 747 stack */ + S_ST( 'i', 3, 749, 0 ), /* 748 stacks */ + S_ST( 'z', 3, 402, 0 ), /* 749 stacksi */ + S_ST( 't', 3, 404, 745 ), /* 750 sta */ + S_ST( 'i', 3, 752, 0 ), /* 751 stat */ + S_ST( 's', 3, 753, 0 ), /* 752 stati */ + S_ST( 't', 3, 754, 0 ), /* 753 statis */ + S_ST( 'i', 3, 755, 0 ), /* 754 statist */ + S_ST( 'c', 3, 403, 0 ), /* 755 statisti */ + S_ST( 'd', 3, 757, 0 ), /* 756 stats */ + S_ST( 'i', 3, 405, 0 ), /* 757 statsd */ + S_ST( 'e', 3, 406, 744 ), /* 758 st */ + S_ST( 'b', 3, 760, 0 ), /* 759 step */ + S_ST( 'a', 3, 761, 0 ), /* 760 stepb */ + S_ST( 'c', 3, 407, 0 ), /* 761 stepba */ + S_ST( 'f', 3, 763, 759 ), /* 762 step */ + S_ST( 'w', 3, 408, 0 ), /* 763 stepf */ + S_ST( 'o', 3, 765, 762 ), /* 764 step */ + S_ST( 'u', 3, 409, 0 ), /* 765 stepo */ + S_ST( 'r', 3, 767, 758 ), /* 766 st */ + S_ST( 'a', 3, 768, 0 ), /* 767 str */ + S_ST( 't', 3, 769, 0 ), /* 768 stra */ + S_ST( 'u', 3, 410, 0 ), /* 769 strat */ + S_ST( 'y', 3, 412, 743 ), /* 770 s */ + S_ST( 's', 3, 772, 0 ), /* 771 sys */ + S_ST( 't', 3, 773, 0 ), /* 772 syss */ + S_ST( 'a', 3, 774, 0 ), /* 773 sysst */ + S_ST( 't', 3, 413, 0 ), /* 774 syssta */ + S_ST( 't', 3, 801, 697 ), /* 775 */ + S_ST( 'i', 3, 787, 0 ), /* 776 t */ + S_ST( 'c', 3, 414, 0 ), /* 777 ti */ + S_ST( 'm', 3, 780, 777 ), /* 778 ti */ + S_ST( 'e', 3, 417, 0 ), /* 779 tim */ + S_ST( 'i', 3, 781, 779 ), /* 780 tim */ + S_ST( 'n', 3, 782, 0 ), /* 781 timi */ + S_ST( 'g', 3, 783, 0 ), /* 782 timin */ + S_ST( 's', 3, 784, 0 ), /* 783 timing */ + S_ST( 't', 3, 785, 0 ), /* 784 timings */ + S_ST( 'a', 3, 786, 0 ), /* 785 timingst */ + S_ST( 't', 3, 418, 0 ), /* 786 timingsta */ + S_ST( 'n', 3, 788, 778 ), /* 787 ti */ + S_ST( 'k', 3, 789, 0 ), /* 788 tin */ + S_ST( 'e', 3, 419, 0 ), /* 789 tink */ + S_ST( 'o', 3, 420, 776 ), /* 790 t */ + S_ST( 'r', 3, 793, 790 ), /* 791 t */ + S_ST( 'a', 3, 421, 0 ), /* 792 tr */ + S_ST( 'u', 3, 794, 792 ), /* 793 tr */ + S_ST( 's', 3, 795, 422 ), /* 794 tru */ + S_ST( 't', 3, 796, 0 ), /* 795 trus */ + S_ST( 'e', 3, 797, 0 ), /* 796 trust */ + S_ST( 'd', 3, 798, 0 ), /* 797 truste */ + S_ST( 'k', 3, 799, 0 ), /* 798 trusted */ + S_ST( 'e', 3, 423, 0 ), /* 799 trustedk */ + S_ST( 't', 3, 424, 791 ), /* 800 t */ + S_ST( 'y', 3, 802, 800 ), /* 801 t */ + S_ST( 'p', 3, 425, 0 ), /* 802 ty */ + S_ST( 'u', 3, 804, 775 ), /* 803 */ + S_ST( 'n', 3, 810, 0 ), /* 804 u */ + S_ST( 'c', 3, 806, 0 ), /* 805 un */ + S_ST( 'o', 3, 807, 0 ), /* 806 unc */ + S_ST( 'n', 3, 808, 0 ), /* 807 unco */ + S_ST( 'f', 3, 809, 0 ), /* 808 uncon */ + S_ST( 'i', 3, 427, 0 ), /* 809 unconf */ + S_ST( 'p', 3, 811, 805 ), /* 810 un */ + S_ST( 'e', 3, 812, 0 ), /* 811 unp */ + S_ST( 'e', 3, 428, 0 ), /* 812 unpe */ + S_ST( 'v', 3, 814, 803 ), /* 813 */ + S_ST( 'e', 3, 815, 0 ), /* 814 v */ + S_ST( 'r', 3, 816, 0 ), /* 815 ve */ + S_ST( 's', 3, 817, 0 ), /* 816 ver */ + S_ST( 'i', 3, 818, 0 ), /* 817 vers */ + S_ST( 'o', 3, 429, 0 ), /* 818 versi */ + S_ST( 'w', 3, 826, 813 ), /* 819 */ + S_ST( 'a', 3, 821, 0 ), /* 820 w */ + S_ST( 'n', 3, 822, 0 ), /* 821 wa */ + S_ST( 'd', 3, 823, 0 ), /* 822 wan */ + S_ST( 'e', 3, 443, 0 ), /* 823 wand */ + S_ST( 'e', 3, 825, 820 ), /* 824 w */ + S_ST( 'e', 3, 431, 0 ), /* 825 we */ + S_ST( 'i', 3, 827, 824 ), /* 826 w */ + S_ST( 'l', 3, 828, 0 ), /* 827 wi */ + S_ST( 'd', 3, 829, 0 ), /* 828 wil */ + S_ST( 'c', 3, 830, 0 ), /* 829 wild */ + S_ST( 'a', 3, 831, 0 ), /* 830 wildc */ + S_ST( 'r', 3, 432, 0 ), /* 831 wildca */ + S_ST( 'x', 3, 833, 819 ), /* 832 */ + S_ST( 'l', 3, 834, 0 ), /* 833 x */ + S_ST( 'e', 3, 835, 0 ), /* 834 xl */ + S_ST( 'a', 3, 836, 0 ), /* 835 xle */ + S_ST( 'v', 3, 433, 0 ), /* 836 xlea */ + S_ST( 'y', 3, 838, 832 ), /* 837 [initial state] */ + S_ST( 'e', 3, 839, 0 ), /* 838 y */ + S_ST( 'a', 3, 434, 0 ) /* 839 ye */ }; diff --git a/contrib/ntp/ntpd/ntp_leapsec.c b/contrib/ntp/ntpd/ntp_leapsec.c index ec42a9740a07..eeef89f3c648 100644 --- a/contrib/ntp/ntpd/ntp_leapsec.c +++ b/contrib/ntp/ntpd/ntp_leapsec.c @@ -787,7 +787,7 @@ leapsec_add( const vint64 * now64 , int insert) { - vint64 ttime, stime; + vint64 ttime, starttime; struct calendar fts; leap_info_t li; @@ -815,12 +815,12 @@ leapsec_add( fts.hour = 0; fts.minute = 0; fts.second = 0; - stime = ntpcal_date_to_ntp64(&fts); + starttime = ntpcal_date_to_ntp64(&fts); fts.month++; ttime = ntpcal_date_to_ntp64(&fts); li.ttime = ttime; - li.stime = ttime.D_s.lo - stime.D_s.lo; + li.stime = ttime.D_s.lo - starttime.D_s.lo; li.taiof = (pt->head.size ? pt->info[0].taiof : pt->head.base_tai) + (insert ? 1 : -1); li.dynls = 1; @@ -839,7 +839,7 @@ leapsec_raw( int taiof, int dynls) { - vint64 stime; + vint64 starttime; struct calendar fts; leap_info_t li; @@ -856,9 +856,9 @@ leapsec_raw( return FALSE; } fts.month--; /* was in range 1..12, no overflow here! */ - stime = ntpcal_date_to_ntp64(&fts); + starttime = ntpcal_date_to_ntp64(&fts); li.ttime = *ttime; - li.stime = ttime->D_s.lo - stime.D_s.lo; + li.stime = ttime->D_s.lo - starttime.D_s.lo; li.taiof = (int16_t)taiof; li.dynls = (dynls != 0); return add_range(pt, &li); diff --git a/contrib/ntp/ntpd/ntp_loopfilter.c b/contrib/ntp/ntpd/ntp_loopfilter.c index 82ff1632e518..e47f83b976a2 100644 --- a/contrib/ntp/ntpd/ntp_loopfilter.c +++ b/contrib/ntp/ntpd/ntp_loopfilter.c @@ -46,7 +46,7 @@ #define CLOCK_LIMIT 30 /* poll-adjust threshold */ #define CLOCK_PGATE 4. /* poll-adjust gate */ #define PPS_MAXAGE 120 /* kernel pps signal timeout (s) */ -#define FREQTOD(x) ((x) / 65536e6) /* NTP to double */ +#define FREQTOD(x) ((x) / 65536e6) /* NTP to double */ #define DTOFREQ(x) ((int32)((x) * 65536e6)) /* double to NTP */ /* @@ -106,7 +106,8 @@ /* * Program variables that can be tinkered. */ -double clock_max = CLOCK_MAX; /* step threshold */ +double clock_max_back = CLOCK_MAX; /* step threshold */ +double clock_max_fwd = CLOCK_MAX; /* step threshold */ double clock_minstep = CLOCK_MINSTEP; /* stepout threshold */ double clock_panic = CLOCK_PANIC; /* panic threshold */ double clock_phi = CLOCK_PHI; /* dispersion rate (s/s) */ @@ -152,8 +153,10 @@ int kern_enable = TRUE; /* kernel support enabled */ int hardpps_enable; /* kernel PPS discipline enabled */ int ext_enable; /* external clock enabled */ int pps_stratum; /* pps stratum */ -int allow_panic = FALSE; /* allow panic correction */ -int mode_ntpdate = FALSE; /* exit on first clock set */ +int kernel_status; /* from ntp_adjtime */ +int allow_panic = FALSE; /* allow panic correction (-g) */ +int force_step_once = FALSE; /* always step time once at startup (-G) */ +int mode_ntpdate = FALSE; /* exit on first clock set (-q) */ int freq_cnt; /* initial frequency clamp */ int freq_set; /* initial set frequency switch */ @@ -279,47 +282,69 @@ ntp_adjtime_error_handler( } break; #ifdef TIME_OK - case TIME_OK: /* 0 no leap second warning */ - /* OK means OK */ + case TIME_OK: /* 0: synchronized, no leap second warning */ + /* msyslog(LOG_INFO, "kernel reports time is synchronized normally"); */ break; +#else +# warning TIME_OK is not defined #endif #ifdef TIME_INS - case TIME_INS: /* 1 positive leap second warning */ - msyslog(LOG_INFO, "%s: %s line %d: kernel reports positive leap second warning state", - caller, file_name(), line - ); + case TIME_INS: /* 1: positive leap second warning */ + msyslog(LOG_INFO, "kernel reports leap second insertion scheduled"); break; +#else +# warning TIME_INS is not defined #endif #ifdef TIME_DEL - case TIME_DEL: /* 2 negative leap second warning */ - msyslog(LOG_INFO, "%s: %s line %d: kernel reports negative leap second warning state", - caller, file_name(), line - ); + case TIME_DEL: /* 2: negative leap second warning */ + msyslog(LOG_INFO, "kernel reports leap second deletion scheduled"); break; +#else +# warning TIME_DEL is not defined #endif #ifdef TIME_OOP - case TIME_OOP: /* 3 leap second in progress */ - msyslog(LOG_INFO, "%s: %s line %d: kernel reports leap second in progress", - caller, file_name(), line - ); + case TIME_OOP: /* 3: leap second in progress */ + msyslog(LOG_INFO, "kernel reports leap second in progress"); break; +#else +# warning TIME_OOP is not defined #endif #ifdef TIME_WAIT - case TIME_WAIT: /* 4 leap second has occured */ - msyslog(LOG_INFO, "%s: %s line %d: kernel reports leap second has occured", - caller, file_name(), line - ); + case TIME_WAIT: /* 4: leap second has occured */ + msyslog(LOG_INFO, "kernel reports leap second has occurred"); break; +#else +# warning TIME_WAIT is not defined #endif #ifdef TIME_ERROR - case TIME_ERROR: /* loss of synchronization */ + case TIME_ERROR: /* 5: unsynchronized, or loss of synchronization */ + /* error (see status word) */ if (pps_call && !(ptimex->status & STA_PPSSIGNAL)) report_event(EVNT_KERN, NULL, "PPS no signal"); errno = saved_errno; DPRINTF(1, ("kernel loop status (%s) %d %m\n", k_st_flags(ptimex->status), errno)); + /* + * This code may be returned when ntp_adjtime() has just + * been called for the first time, quite a while after + * startup, when ntpd just starts to discipline the kernel + * time. In this case the occurrence of this message + * can be pretty confusing. + * + * HMS: How about a message when we begin kernel processing: + * Determining kernel clock state... + * so an initial TIME_ERROR message is less confising, + * or skipping the first message (ugh), + * or ??? + * msyslog(LOG_INFO, "kernel reports time synchronization lost"); + */ + errno = saved_errno; /* may not be needed */ + msyslog(LOG_INFO, "kernel reports TIME_ERROR: %#x: %s %m", + ptimex->status, k_st_flags(ptimex->status)); break; +#else +# warning TIME_ERROR is not defined #endif default: msyslog(LOG_NOTICE, "%s: %s line %d: unhandled return value %d from ntp_adjtime in %s at line %d", @@ -403,7 +428,8 @@ local_clock( * directly to the terminal. */ if (mode_ntpdate) { - if (fabs(fp_offset) > clock_max && clock_max > 0) { + if ( ( fp_offset > clock_max_fwd && clock_max_fwd > 0) + || (-fp_offset > clock_max_back && clock_max_back > 0)) { step_systime(fp_offset); msyslog(LOG_NOTICE, "ntpd: time set %+.6f s", fp_offset); @@ -452,10 +478,10 @@ local_clock( * threshold (128 ms) and when it does not. Under certain * conditions updates are suspended until the stepout theshold * (900 s) is exceeded. See the documentation on how these - * thresholds interact with commands and command line options. + * thresholds interact with commands and command line options. * * Note the kernel is disabled if step is disabled or greater - * than 0.5 s or in ntpdate mode. + * than 0.5 s or in ntpdate mode. */ osys_poll = sys_poll; if (sys_poll < peer->minpoll) @@ -465,7 +491,14 @@ local_clock( mu = current_time - clock_epoch; clock_frequency = drift_comp; rval = 1; - if (fabs(fp_offset) > clock_max && clock_max > 0) { + if ( ( fp_offset > clock_max_fwd && clock_max_fwd > 0) + || (-fp_offset > clock_max_back && clock_max_back > 0) + || force_step_once ) { + if (force_step_once) { + force_step_once = FALSE; /* we want this only once after startup */ + msyslog(LOG_NOTICE, "Doing intital time step" ); + } + switch (state) { /* @@ -525,7 +558,7 @@ local_clock( * threshold. Note that a single spike greater than the * step threshold is always suppressed, even with a * long time constant. - */ + */ default: snprintf(tbuf, sizeof(tbuf), "%+.6f s", fp_offset); @@ -543,7 +576,6 @@ local_clock( } rstclock(EVNT_SYNC, 0); } else { - /* * The offset is less than the step threshold. Calculate * the jitter as the exponentially weighted offset @@ -605,9 +637,9 @@ local_clock( /* * The PLL frequency gain (numerator) depends on * the minimum of the update interval and Allan - * intercept. This reduces the PLL gain when the + * intercept. This reduces the PLL gain when the * FLL becomes effective. - */ + */ etemp = min(ULOGTOD(allan_xpt), mu); dtemp = 4 * CLOCK_PLL * ULOGTOD(sys_poll); clock_frequency += fp_offset * etemp / (dtemp * @@ -706,8 +738,13 @@ local_clock( * the pps. In any case, fetch the kernel offset, * frequency and jitter. */ - if ((ntp_adj_ret = ntp_adjtime(&ntv)) != 0) { - ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, hardpps_enable, 0, __LINE__ - 1); + ntp_adj_ret = ntp_adjtime(&ntv); + /* + * A squeal is a return status < 0, or a state change. + */ + if ((0 > ntp_adj_ret) || (ntp_adj_ret != kernel_status)) { + kernel_status = ntp_adj_ret; + ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, hardpps_enable, 0, __LINE__ - 1); } pll_status = ntv.status; #ifdef STA_NANO @@ -888,7 +925,7 @@ adj_host_clock( clock_offset -= offset_adj; /* * Windows port adj_systime() must be called each second, - * even if the argument is zero, to ease emulation of + * even if the argument is zero, to ease emulation of * adjtime() using Windows' slew API which controls the rate * but does not automatically stop slewing when an offset * has decayed to zero. @@ -917,7 +954,7 @@ rstclock( report_event(trans, NULL, NULL); state = trans; last_offset = clock_offset = offset; - clock_epoch = current_time; + clock_epoch = current_time; } @@ -1190,12 +1227,12 @@ loop_config( case LOOP_CODEC: /* audio codec frequency (codec) */ clock_codec = freq / 1e6; break; - + case LOOP_PHI: /* dispersion threshold (dispersion) */ clock_phi = freq / 1e6; break; - case LOOP_FREQ: /* initial frequency (freq) */ + case LOOP_FREQ: /* initial frequency (freq) */ init_drift_comp = freq; freq_set++; break; @@ -1216,8 +1253,27 @@ loop_config( break; case LOOP_MAX: /* step threshold (step) */ - clock_max = freq; - if (clock_max == 0 || clock_max > 0.5) + clock_max_fwd = clock_max_back = freq; + if (freq == 0 || freq > 0.5) + select_loop(FALSE); + break; + + case LOOP_MAX_BACK: /* step threshold (step) */ + clock_max_back = freq; + /* + * Leave using the kernel discipline code unless both + * limits are massive. This assumes the reason to stop + * using it is that it's pointless, not that it goes wrong. + */ + if ( (clock_max_back == 0 || clock_max_back > 0.5) + || (clock_max_fwd == 0 || clock_max_fwd > 0.5)) + select_loop(FALSE); + break; + + case LOOP_MAX_FWD: /* step threshold (step) */ + clock_max_fwd = freq; + if ( (clock_max_back == 0 || clock_max_back > 0.5) + || (clock_max_fwd == 0 || clock_max_fwd > 0.5)) select_loop(FALSE); break; @@ -1225,7 +1281,7 @@ loop_config( if (freq < CLOCK_MINSTEP) clock_minstep = CLOCK_MINSTEP; else - clock_minstep = freq; + clock_minstep = freq; break; case LOOP_TICK: /* tick increment (tick) */ diff --git a/contrib/ntp/ntpd/ntp_parser.c b/contrib/ntp/ntpd/ntp_parser.c index de3d73cedd65..0cf55197ac6c 100644 --- a/contrib/ntp/ntpd/ntp_parser.c +++ b/contrib/ntp/ntpd/ntp_parser.c @@ -280,44 +280,46 @@ extern int yydebug; T_Stats = 404, T_Statsdir = 405, T_Step = 406, - T_Stepout = 407, - T_Stratum = 408, - T_String = 409, - T_Sys = 410, - T_Sysstats = 411, - T_Tick = 412, - T_Time1 = 413, - T_Time2 = 414, - T_Timer = 415, - T_Timingstats = 416, - T_Tinker = 417, - T_Tos = 418, - T_Trap = 419, - T_True = 420, - T_Trustedkey = 421, - T_Ttl = 422, - T_Type = 423, - T_U_int = 424, - T_Unconfig = 425, - T_Unpeer = 426, - T_Version = 427, - T_WanderThreshold = 428, - T_Week = 429, - T_Wildcard = 430, - T_Xleave = 431, - T_Year = 432, - T_Flag = 433, - T_EOC = 434, - T_Simulate = 435, - T_Beep_Delay = 436, - T_Sim_Duration = 437, - T_Server_Offset = 438, - T_Duration = 439, - T_Freq_Offset = 440, - T_Wander = 441, - T_Jitter = 442, - T_Prop_Delay = 443, - T_Proc_Delay = 444 + T_Stepback = 407, + T_Stepfwd = 408, + T_Stepout = 409, + T_Stratum = 410, + T_String = 411, + T_Sys = 412, + T_Sysstats = 413, + T_Tick = 414, + T_Time1 = 415, + T_Time2 = 416, + T_Timer = 417, + T_Timingstats = 418, + T_Tinker = 419, + T_Tos = 420, + T_Trap = 421, + T_True = 422, + T_Trustedkey = 423, + T_Ttl = 424, + T_Type = 425, + T_U_int = 426, + T_Unconfig = 427, + T_Unpeer = 428, + T_Version = 429, + T_WanderThreshold = 430, + T_Week = 431, + T_Wildcard = 432, + T_Xleave = 433, + T_Year = 434, + T_Flag = 435, + T_EOC = 436, + T_Simulate = 437, + T_Beep_Delay = 438, + T_Sim_Duration = 439, + T_Server_Offset = 440, + T_Duration = 441, + T_Freq_Offset = 442, + T_Wander = 443, + T_Jitter = 444, + T_Prop_Delay = 445, + T_Proc_Delay = 446 }; #endif /* Tokens. */ @@ -470,44 +472,46 @@ extern int yydebug; #define T_Stats 404 #define T_Statsdir 405 #define T_Step 406 -#define T_Stepout 407 -#define T_Stratum 408 -#define T_String 409 -#define T_Sys 410 -#define T_Sysstats 411 -#define T_Tick 412 -#define T_Time1 413 -#define T_Time2 414 -#define T_Timer 415 -#define T_Timingstats 416 -#define T_Tinker 417 -#define T_Tos 418 -#define T_Trap 419 -#define T_True 420 -#define T_Trustedkey 421 -#define T_Ttl 422 -#define T_Type 423 -#define T_U_int 424 -#define T_Unconfig 425 -#define T_Unpeer 426 -#define T_Version 427 -#define T_WanderThreshold 428 -#define T_Week 429 -#define T_Wildcard 430 -#define T_Xleave 431 -#define T_Year 432 -#define T_Flag 433 -#define T_EOC 434 -#define T_Simulate 435 -#define T_Beep_Delay 436 -#define T_Sim_Duration 437 -#define T_Server_Offset 438 -#define T_Duration 439 -#define T_Freq_Offset 440 -#define T_Wander 441 -#define T_Jitter 442 -#define T_Prop_Delay 443 -#define T_Proc_Delay 444 +#define T_Stepback 407 +#define T_Stepfwd 408 +#define T_Stepout 409 +#define T_Stratum 410 +#define T_String 411 +#define T_Sys 412 +#define T_Sysstats 413 +#define T_Tick 414 +#define T_Time1 415 +#define T_Time2 416 +#define T_Timer 417 +#define T_Timingstats 418 +#define T_Tinker 419 +#define T_Tos 420 +#define T_Trap 421 +#define T_True 422 +#define T_Trustedkey 423 +#define T_Ttl 424 +#define T_Type 425 +#define T_U_int 426 +#define T_Unconfig 427 +#define T_Unpeer 428 +#define T_Version 429 +#define T_WanderThreshold 430 +#define T_Week 431 +#define T_Wildcard 432 +#define T_Xleave 433 +#define T_Year 434 +#define T_Flag 435 +#define T_EOC 436 +#define T_Simulate 437 +#define T_Beep_Delay 438 +#define T_Sim_Duration 439 +#define T_Server_Offset 440 +#define T_Duration 441 +#define T_Freq_Offset 442 +#define T_Wander 443 +#define T_Jitter 444 +#define T_Prop_Delay 445 +#define T_Proc_Delay 446 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -533,7 +537,7 @@ union YYSTYPE script_info * Sim_script; script_info_fifo * Sim_script_fifo; -#line 537 "ntp_parser.c" /* yacc.c:355 */ +#line 541 "ntp_parser.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -548,7 +552,7 @@ int yyparse (struct FILE_INFO *ip_file); /* Copy the second part of user declarations. */ -#line 552 "ntp_parser.c" /* yacc.c:358 */ +#line 556 "ntp_parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -788,23 +792,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 205 +#define YYFINAL 207 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 634 +#define YYLAST 622 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 195 +#define YYNTOKENS 197 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 104 /* YYNRULES -- Number of rules. */ -#define YYNRULES 308 +#define YYNRULES 310 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 413 +#define YYNSTATES 415 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 444 +#define YYMAXUTOK 446 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -817,15 +821,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, - 191, 192, 2, 2, 2, 2, 2, 2, 2, 2, + 193, 194, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 190, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 192, 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, 193, 2, 194, 2, 2, 2, 2, + 2, 2, 2, 195, 2, 196, 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, @@ -857,44 +861,45 @@ 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 + 185, 186, 187, 188, 189, 190, 191 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 364, 364, 368, 369, 370, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 405, 415, 416, 417, 418, 419, 423, 424, 429, 434, - 436, 442, 443, 451, 452, 453, 457, 462, 463, 464, - 465, 466, 467, 468, 469, 473, 475, 480, 481, 482, - 483, 484, 485, 489, 494, 503, 513, 514, 524, 526, - 528, 530, 541, 548, 550, 555, 557, 559, 561, 563, - 572, 578, 579, 587, 589, 601, 602, 603, 604, 605, - 614, 619, 624, 632, 634, 636, 641, 642, 643, 644, - 645, 646, 650, 651, 652, 653, 662, 664, 673, 683, - 688, 696, 697, 698, 699, 700, 701, 702, 703, 708, - 709, 717, 727, 736, 751, 756, 757, 761, 762, 766, - 767, 768, 769, 770, 771, 772, 781, 785, 789, 797, - 805, 813, 828, 843, 856, 857, 865, 866, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, - 879, 883, 888, 896, 901, 902, 903, 907, 912, 920, - 925, 926, 927, 928, 929, 930, 931, 932, 940, 950, - 955, 963, 965, 967, 969, 971, 976, 977, 981, 982, - 983, 984, 992, 997, 1002, 1010, 1015, 1016, 1017, 1026, - 1028, 1033, 1038, 1046, 1048, 1065, 1066, 1067, 1068, 1069, - 1070, 1074, 1075, 1083, 1088, 1093, 1101, 1106, 1107, 1108, - 1109, 1110, 1111, 1112, 1113, 1122, 1123, 1124, 1131, 1138, - 1154, 1173, 1178, 1180, 1182, 1184, 1186, 1193, 1198, 1199, - 1200, 1204, 1205, 1206, 1210, 1211, 1215, 1222, 1232, 1241, - 1246, 1248, 1253, 1254, 1262, 1264, 1272, 1277, 1285, 1310, - 1317, 1327, 1328, 1332, 1333, 1334, 1335, 1339, 1340, 1341, - 1345, 1350, 1355, 1363, 1364, 1365, 1366, 1367, 1368, 1369, - 1379, 1384, 1392, 1397, 1405, 1407, 1411, 1416, 1421, 1429, - 1434, 1442, 1451, 1452, 1456, 1457, 1466, 1484, 1488, 1493, - 1501, 1506, 1507, 1511, 1516, 1524, 1529, 1534, 1539, 1544, - 1552, 1557, 1562, 1570, 1575, 1576, 1577, 1578, 1579 + 0, 366, 366, 370, 371, 372, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 407, 417, 418, 419, 420, 421, 425, 426, 431, 436, + 438, 444, 445, 453, 454, 455, 459, 464, 465, 466, + 467, 468, 469, 470, 471, 475, 477, 482, 483, 484, + 485, 486, 487, 491, 496, 505, 515, 516, 526, 528, + 530, 532, 543, 550, 552, 557, 559, 561, 563, 565, + 574, 580, 581, 589, 591, 603, 604, 605, 606, 607, + 616, 621, 626, 634, 636, 638, 643, 644, 645, 646, + 647, 648, 652, 653, 654, 655, 664, 666, 675, 685, + 690, 698, 699, 700, 701, 702, 703, 704, 705, 710, + 711, 719, 729, 738, 753, 758, 759, 763, 764, 768, + 769, 770, 771, 772, 773, 774, 783, 787, 791, 799, + 807, 815, 830, 845, 858, 859, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, + 881, 885, 890, 898, 903, 904, 905, 909, 914, 922, + 927, 928, 929, 930, 931, 932, 933, 934, 942, 952, + 957, 965, 967, 969, 971, 973, 978, 979, 983, 984, + 985, 986, 994, 999, 1004, 1012, 1017, 1018, 1019, 1028, + 1030, 1035, 1040, 1048, 1050, 1067, 1068, 1069, 1070, 1071, + 1072, 1076, 1077, 1085, 1090, 1095, 1103, 1108, 1109, 1110, + 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1126, 1127, 1128, + 1135, 1142, 1158, 1177, 1182, 1184, 1186, 1188, 1190, 1197, + 1202, 1203, 1204, 1208, 1209, 1210, 1214, 1215, 1219, 1226, + 1236, 1245, 1250, 1252, 1257, 1258, 1266, 1268, 1276, 1281, + 1289, 1314, 1321, 1331, 1332, 1336, 1337, 1338, 1339, 1343, + 1344, 1345, 1349, 1354, 1359, 1367, 1368, 1369, 1370, 1371, + 1372, 1373, 1383, 1388, 1396, 1401, 1409, 1411, 1415, 1420, + 1425, 1433, 1438, 1446, 1455, 1456, 1460, 1461, 1470, 1488, + 1492, 1497, 1505, 1510, 1511, 1515, 1520, 1528, 1533, 1538, + 1543, 1548, 1556, 1561, 1566, 1574, 1579, 1580, 1581, 1582, + 1583 }; #endif @@ -932,31 +937,32 @@ static const char *const yytname[] = "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset", "T_Restrict", "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server", "T_Setvar", "T_Source", "T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir", - "T_Step", "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_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", "system_option_local_flag_keyword", "tinker_command", "tinker_option_list", "tinker_option", "tinker_option_keyword", "miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_str_keyword", @@ -998,14 +1004,14 @@ 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, - 61, 40, 41, 123, 125 + 445, 446, 61, 40, 41, 123, 125 }; # endif -#define YYPACT_NINF -180 +#define YYPACT_NINF -182 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-180))) + (!!((Yystate) == (-182))) #define YYTABLE_NINF -7 @@ -1016,48 +1022,48 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 26, -147, -9, -180, -180, -180, -6, -180, 222, 9, - -96, 222, -180, 276, -41, -180, -93, -180, -90, -86, - -180, -84, -180, -180, -41, 0, 443, -41, -180, -180, - -83, -180, -82, -180, -180, 20, 27, -20, 21, -19, - -180, -180, -68, 276, -66, -180, 221, 328, -65, -55, - 38, -180, -180, -180, 99, 188, -69, -180, -41, -180, - -41, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -3, -40, -39, -180, -4, -180, -180, -77, -180, - -180, -180, 254, -180, -180, -180, -180, -180, -180, -180, - -180, 222, -180, -180, -180, -180, -180, -180, 9, -180, - 47, 90, -180, 222, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, -180, -180, 98, -180, -31, 347, - -180, -180, -180, -84, -180, -180, -41, -180, -180, -180, - -180, -180, -180, -180, -180, -180, 443, -180, 61, -41, - -180, -180, -30, -180, -180, -180, -180, -180, -180, -180, - -180, 27, -180, -180, 102, 106, -180, -180, 55, -180, - -180, -180, -180, -19, -180, 87, -42, -180, 276, -180, - -180, -180, -180, -180, -180, -180, -180, -180, -180, 221, - -180, -3, -180, -180, -27, -180, -180, -180, -180, -180, - -180, -180, -180, 328, -180, 91, -3, -180, -180, 93, - -55, -180, -180, -180, 96, -180, -21, -180, -180, -180, - -180, -180, -180, -180, -180, -180, -180, -180, 3, -144, - -180, -180, -180, -180, -180, 100, -180, -5, -180, -180, - -180, -180, -23, 5, -180, -180, -180, -180, 7, 103, - -180, -180, 98, -180, -3, -27, -180, -180, -180, -180, - -180, -180, -180, -180, 462, -180, -180, 462, 462, -65, - -180, -180, 8, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -47, 138, -180, -180, -180, 425, -180, - -180, -180, -180, -180, -180, -180, -180, -105, -2, -15, - -180, -180, -180, -180, 25, -180, -180, 17, -180, -180, - -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, 462, 462, -180, 154, -65, 124, -180, - 125, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -51, -180, 32, 10, 16, -116, -180, 6, -180, -3, - -180, -180, -180, -180, -180, -180, -180, -180, -180, 462, - -180, -180, -180, -180, 15, -180, -180, -180, -41, -180, - -180, -180, 18, -180, -180, -180, 22, 24, -3, 23, - -169, -180, 36, -3, -180, -180, -180, 29, -94, -180, - -180, -180, -180, -180, 89, 37, 30, -180, 40, -180, - -3, -180, -180 + 18, -161, -18, -182, -182, -182, -10, -182, 189, 11, + -103, 189, -182, 7, -49, -182, -100, -182, -97, -90, + -182, -84, -182, -182, -49, 13, 365, -49, -182, -182, + -81, -182, -80, -182, -182, 20, 86, 104, 21, -33, + -182, -182, -73, 7, -72, -182, 51, 500, -71, -54, + 26, -182, -182, -182, 90, 205, -83, -182, -49, -182, + -49, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -8, -65, -51, -182, -9, -182, -182, -91, -182, + -182, -182, -15, -182, -182, -182, -182, -182, -182, -182, + -182, 189, -182, -182, -182, -182, -182, -182, 11, -182, + 46, 85, -182, 189, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, 92, -182, -35, 366, + -182, -182, -182, -84, -182, -182, -49, -182, -182, -182, + -182, -182, -182, -182, -182, -182, 365, -182, 68, -49, + -182, -182, -23, -182, -182, -182, -182, -182, -182, -182, + -182, 86, -182, -182, 114, 121, -182, -182, 67, -182, + -182, -182, -182, -33, -182, 93, -28, -182, 7, -182, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, 51, -182, -8, -182, -182, -17, -182, -182, -182, + -182, -182, -182, -182, -182, 500, -182, 107, -8, -182, + -182, 112, -54, -182, -182, -182, 113, -182, 8, -182, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -2, -147, -182, -182, -182, -182, -182, 128, -182, 25, + -182, -182, -182, -182, 116, 37, -182, -182, -182, -182, + 38, 135, -182, -182, 92, -182, -8, -17, -182, -182, + -182, -182, -182, -182, -182, -182, 445, -182, -182, 445, + 445, -71, -182, -182, 40, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -52, 163, -182, -182, -182, + 261, -182, -182, -182, -182, -182, -182, -182, -182, -114, + 27, 14, -182, -182, -182, -182, 55, -182, -182, 0, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, 445, 445, -182, 185, -71, + 153, -182, 156, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -53, -182, 61, 30, 43, -133, -182, 23, + -182, -8, -182, -182, -182, -182, -182, -182, -182, -182, + -182, 445, -182, -182, -182, -182, 32, -182, -182, -182, + -49, -182, -182, -182, 45, -182, -182, -182, 41, 50, + -8, 47, -157, -182, 56, -8, -182, -182, -182, 49, + 130, -182, -182, -182, -182, -182, 110, 59, 54, -182, + 70, -182, -8, -182, -182 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1065,80 +1071,80 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 0, 24, 58, 228, 0, 71, 0, 0, - 238, 0, 221, 0, 0, 231, 0, 251, 0, 0, - 232, 0, 234, 25, 0, 0, 0, 0, 252, 229, - 0, 23, 0, 233, 22, 0, 0, 0, 0, 0, - 235, 21, 0, 0, 0, 230, 0, 0, 0, 0, - 0, 56, 57, 287, 0, 2, 0, 7, 0, 8, + 0, 0, 0, 24, 58, 230, 0, 71, 0, 0, + 240, 0, 223, 0, 0, 233, 0, 253, 0, 0, + 234, 0, 236, 25, 0, 0, 0, 0, 254, 231, + 0, 23, 0, 235, 22, 0, 0, 0, 0, 0, + 237, 21, 0, 0, 0, 232, 0, 0, 0, 0, + 0, 56, 57, 289, 0, 2, 0, 7, 0, 8, 0, 9, 10, 13, 11, 12, 14, 15, 16, 17, - 18, 0, 0, 0, 215, 0, 216, 19, 0, 5, + 18, 0, 0, 0, 217, 0, 218, 19, 0, 5, 62, 63, 64, 195, 196, 197, 198, 201, 199, 200, 202, 190, 192, 193, 194, 154, 155, 156, 126, 152, - 0, 236, 222, 189, 101, 102, 103, 104, 108, 105, + 0, 238, 224, 189, 101, 102, 103, 104, 108, 105, 106, 107, 109, 29, 30, 28, 0, 26, 0, 6, - 65, 66, 248, 223, 247, 280, 59, 61, 160, 161, + 65, 66, 250, 225, 249, 282, 59, 61, 160, 161, 162, 163, 164, 165, 166, 167, 127, 158, 0, 60, - 70, 278, 224, 67, 263, 264, 265, 266, 267, 268, - 269, 260, 262, 134, 29, 30, 134, 134, 26, 68, - 188, 186, 187, 182, 184, 0, 0, 225, 96, 100, - 97, 207, 208, 209, 210, 211, 212, 213, 214, 203, - 205, 0, 91, 86, 0, 87, 95, 93, 94, 92, - 90, 88, 89, 80, 82, 0, 0, 242, 274, 0, - 69, 273, 275, 271, 227, 1, 0, 4, 31, 55, - 285, 284, 217, 218, 219, 259, 258, 257, 0, 0, - 79, 75, 76, 77, 78, 0, 72, 0, 191, 151, - 153, 237, 98, 0, 178, 179, 180, 181, 0, 0, - 176, 177, 168, 170, 0, 0, 27, 220, 246, 279, - 157, 159, 277, 261, 130, 134, 134, 133, 128, 0, - 183, 185, 0, 99, 204, 206, 283, 281, 282, 85, - 81, 83, 84, 226, 0, 272, 270, 3, 20, 253, - 254, 255, 250, 256, 249, 291, 292, 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, 241, 0, 0, 243, - 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, 294, 0, 289, 0, - 111, 125, 121, 123, 119, 120, 122, 124, 112, 129, - 240, 239, 245, 244, 0, 45, 46, 53, 0, 288, - 286, 293, 0, 290, 276, 297, 0, 0, 0, 0, - 0, 299, 0, 0, 295, 298, 296, 0, 0, 304, - 305, 306, 307, 308, 0, 0, 0, 300, 0, 302, - 0, 301, 303 + 70, 280, 226, 67, 265, 266, 267, 268, 269, 270, + 271, 262, 264, 134, 29, 30, 134, 134, 26, 68, + 188, 186, 187, 182, 184, 0, 0, 227, 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, 244, + 276, 0, 69, 275, 277, 273, 229, 1, 0, 4, + 31, 55, 287, 286, 219, 220, 221, 261, 260, 259, + 0, 0, 79, 75, 76, 77, 78, 0, 72, 0, + 191, 151, 153, 239, 98, 0, 178, 179, 180, 181, + 0, 0, 176, 177, 168, 170, 0, 0, 27, 222, + 248, 281, 157, 159, 279, 263, 130, 134, 134, 133, + 128, 0, 183, 185, 0, 99, 204, 206, 285, 283, + 284, 85, 81, 83, 84, 228, 0, 274, 272, 3, + 20, 255, 256, 257, 252, 258, 251, 293, 294, 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, 243, 0, + 0, 245, 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, 296, 0, + 291, 0, 111, 125, 121, 123, 119, 120, 122, 124, + 112, 129, 242, 241, 247, 246, 0, 45, 46, 53, + 0, 290, 288, 295, 0, 292, 278, 299, 0, 0, + 0, 0, 0, 301, 0, 0, 297, 300, 298, 0, + 0, 306, 307, 308, 309, 310, 0, 0, 0, 302, + 0, 304, 0, 303, 305 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -180, -180, -180, -37, -180, -180, -14, -36, -180, -180, - -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, -180, -180, 33, -180, -180, -180, - -180, -33, -180, -180, -180, -180, -180, -180, -153, -180, - -180, 131, -180, -180, 97, -180, -180, -180, -10, -180, - -180, -180, -180, 73, -180, -180, 227, -72, -180, -180, - -180, -180, 60, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, 119, -180, -180, -180, -180, -180, - -180, 92, -180, -180, 44, -180, -180, 218, 1, -179, - -180, -180, -180, -34, -180, -180, -107, -180, -180, -180, - -140, -180, -150, -180 + -182, -182, -182, -45, -182, -182, -14, -36, -182, -182, + -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, 60, -182, -182, -182, + -182, -38, -182, -182, -182, -182, -182, -182, -142, -182, + -182, 134, -182, -182, 120, -182, -182, -182, 5, -182, + -182, -182, -182, 96, -182, -182, 250, -42, -182, -182, + -182, -182, 81, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, 140, -182, -182, -182, -182, -182, + -182, 117, -182, -182, 63, -182, -182, 240, 22, -181, + -182, -182, -182, -16, -182, -182, -86, -182, -182, -182, + -120, -182, -132, -182 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 54, 55, 56, 57, 58, 125, 117, 118, 278, - 346, 347, 348, 349, 350, 351, 352, 59, 60, 61, - 62, 82, 226, 227, 63, 193, 194, 195, 196, 64, - 168, 112, 232, 298, 299, 300, 368, 65, 254, 322, - 98, 99, 100, 136, 137, 138, 66, 242, 243, 244, - 245, 67, 163, 164, 165, 68, 91, 92, 93, 94, - 69, 179, 180, 181, 70, 71, 72, 73, 102, 167, - 371, 273, 329, 123, 124, 74, 75, 284, 218, 76, - 151, 152, 204, 200, 201, 202, 142, 126, 269, 212, - 77, 78, 287, 288, 289, 355, 356, 387, 357, 390, - 391, 404, 405, 406 + -1, 54, 55, 56, 57, 58, 125, 117, 118, 280, + 348, 349, 350, 351, 352, 353, 354, 59, 60, 61, + 62, 82, 228, 229, 63, 195, 196, 197, 198, 64, + 168, 112, 234, 300, 301, 302, 370, 65, 256, 324, + 98, 99, 100, 136, 137, 138, 66, 244, 245, 246, + 247, 67, 163, 164, 165, 68, 91, 92, 93, 94, + 69, 181, 182, 183, 70, 71, 72, 73, 102, 167, + 373, 275, 331, 123, 124, 74, 75, 286, 220, 76, + 151, 152, 206, 202, 203, 204, 142, 126, 271, 214, + 77, 78, 289, 290, 291, 357, 358, 389, 359, 392, + 393, 406, 407, 408 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1146,138 +1152,136 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 116, 158, 265, 257, 258, 198, 292, 153, 279, 375, - 169, 266, 197, 293, 327, 389, 294, 272, 206, 228, - 95, 361, 160, 157, 113, 394, 114, 1, 353, 210, - 215, 228, 79, 267, 144, 145, 2, 285, 286, 353, - 3, 4, 5, 362, 208, 154, 209, 155, 6, 7, - 216, 80, 146, 295, 81, 8, 9, 211, 101, 10, - 127, 119, 11, 12, 120, 305, 13, 280, 121, 281, - 122, 140, 141, 217, 161, 14, 285, 286, 380, 15, - 143, 159, 247, 328, 296, 16, 166, 17, 170, 115, - 147, 399, 400, 401, 402, 403, 18, 19, 203, 205, - 20, 233, 323, 324, 21, 22, 96, 230, 23, 24, - 207, 97, 249, 115, 213, 214, 219, 25, 376, 148, - 363, 251, 231, 246, 252, 249, 156, 364, 162, 255, - 26, 27, 28, 256, 115, 263, 199, 29, 268, 259, - 234, 235, 236, 237, 365, 297, 30, 261, 262, 291, - 31, 271, 32, 274, 33, 34, 276, 282, 277, 301, - 290, 302, 326, 303, 35, 36, 37, 38, 39, 40, - 41, 42, 369, 330, 43, 359, 44, 358, 283, 360, - 383, 370, 149, 45, 373, 374, 377, 150, 46, 47, - 48, 366, 49, 50, 367, 379, 51, 52, 2, 382, - 378, 386, 3, 4, 5, -6, 53, 384, 389, 392, - 6, 7, 388, 393, 397, 396, 409, 8, 9, 411, - 410, 10, 398, 325, 11, 12, 270, 171, 13, 229, - 83, 412, 304, 250, 84, 238, 260, 14, 103, 264, - 85, 15, 248, 253, 275, 139, 306, 16, 381, 17, - 395, 239, 172, 354, 408, 0, 240, 241, 18, 19, - 0, 0, 20, 0, 0, 0, 21, 22, 0, 173, - 23, 24, 174, 0, 399, 400, 401, 402, 403, 25, - 0, 0, 220, 407, 0, 0, 0, 0, 0, 0, - 86, 372, 26, 27, 28, 0, 104, 0, 0, 29, - 105, 0, 0, 0, 221, 0, 0, 222, 30, 0, - 0, 0, 31, 0, 32, 0, 33, 34, 0, 0, - 0, 0, 0, 87, 88, 0, 35, 36, 37, 38, - 39, 40, 41, 42, 0, 0, 43, 0, 44, 0, - 89, 182, 0, 0, 175, 45, 0, 183, 0, 184, - 46, 47, 48, 0, 49, 50, 106, 2, 51, 52, - 0, 3, 4, 5, 385, 0, 0, -6, 53, 6, - 7, 90, 176, 177, 0, 185, 8, 9, 178, 0, - 10, 0, 0, 11, 12, 0, 0, 13, 223, 224, - 0, 0, 0, 0, 0, 225, 14, 0, 0, 0, - 15, 107, 0, 0, 0, 0, 16, 0, 17, 108, - 0, 0, 109, 0, 186, 0, 187, 18, 19, 0, - 0, 20, 188, 0, 189, 21, 22, 190, 0, 23, - 24, 0, 110, 0, 331, 0, 0, 111, 25, 0, - 0, 0, 332, 0, 0, 0, 0, 0, 0, 191, - 192, 26, 27, 28, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, - 0, 31, 0, 32, 0, 33, 34, 333, 334, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, - 40, 41, 42, 0, 335, 43, 0, 44, 128, 129, - 130, 131, 0, 0, 45, 0, 0, 0, 307, 46, - 47, 48, 0, 49, 50, 336, 308, 51, 52, 0, - 0, 0, 0, 337, 0, 338, 0, 53, 132, 0, - 133, 0, 134, 0, 309, 310, 0, 311, 135, 339, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 340, 341, 0, 0, + 116, 158, 267, 281, 363, 169, 200, 377, 160, 329, + 208, 355, 199, 222, 259, 260, 113, 274, 114, 1, + 79, 268, 95, 157, 212, 217, 364, 104, 2, 391, + 355, 105, 3, 4, 5, 223, 287, 288, 224, 396, + 6, 7, 80, 269, 210, 218, 211, 8, 9, 230, + 81, 10, 213, 101, 11, 12, 119, 171, 13, 120, + 161, 230, 282, 382, 283, 307, 121, 14, 219, 287, + 288, 15, 122, 127, 249, 140, 141, 16, 330, 17, + 143, 159, 172, 166, 170, 115, 205, 106, 18, 19, + 207, 215, 20, 144, 145, 235, 21, 22, 209, 173, + 23, 24, 174, 365, 221, 216, 232, 115, 96, 25, + 366, 146, 251, 97, 162, 325, 326, 233, 378, 225, + 226, 248, 26, 27, 28, 251, 227, 367, 253, 29, + 265, 153, 107, 254, 236, 237, 238, 239, 30, 201, + 108, 257, 31, 109, 32, 294, 33, 34, 258, 147, + 270, 261, 295, 263, 284, 296, 35, 36, 37, 38, + 39, 40, 41, 42, 264, 110, 43, 273, 44, 154, + 111, 155, 276, 278, 175, 285, 368, 45, 148, 369, + 385, 293, 46, 47, 48, 371, 49, 50, 292, 279, + 51, 52, 297, 303, 304, 305, 328, 83, 332, -6, + 53, 84, 176, 177, 178, 179, 361, 85, 360, 394, + 180, 362, 372, 375, 399, 2, 376, 379, 384, 3, + 4, 5, 380, 298, 381, 327, 386, 6, 7, 240, + 388, 414, 231, 390, 8, 9, 391, 398, 10, 395, + 411, 11, 12, 149, 400, 13, 412, 241, 150, 306, + 156, 413, 242, 243, 14, 272, 252, 86, 15, 262, + 115, 103, 266, 250, 16, 277, 17, 139, 255, 308, + 333, 383, 397, 356, 410, 18, 19, 0, 334, 20, + 0, 0, 0, 21, 22, 0, 299, 23, 24, 0, + 87, 88, 0, 374, 0, 0, 25, 401, 402, 403, + 404, 405, 0, 0, 0, 0, 409, 89, 0, 26, + 27, 28, 0, 335, 336, 0, 29, 401, 402, 403, + 404, 405, 0, 0, 0, 30, 0, 0, 0, 31, + 337, 32, 0, 33, 34, 0, 0, 0, 90, 0, + 0, 0, 0, 35, 36, 37, 38, 39, 40, 41, + 42, 338, 0, 43, 0, 44, 0, 0, 0, 339, + 0, 340, 0, 0, 45, 0, 387, 0, 0, 46, + 47, 48, 0, 49, 50, 341, 2, 51, 52, 0, + 3, 4, 5, 0, 0, 0, -6, 53, 6, 7, + 0, 0, 342, 343, 0, 8, 9, 0, 0, 10, + 0, 0, 11, 12, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, + 128, 129, 130, 131, 0, 16, 0, 17, 344, 0, + 345, 0, 0, 0, 0, 346, 18, 19, 0, 347, + 20, 0, 0, 0, 21, 22, 0, 0, 23, 24, + 132, 0, 133, 0, 134, 0, 0, 25, 0, 0, + 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 31, 309, 32, 0, 33, 34, 0, 0, 0, 310, + 0, 0, 0, 0, 35, 36, 37, 38, 39, 40, + 41, 42, 0, 184, 43, 0, 44, 311, 312, 185, + 313, 186, 0, 0, 0, 45, 314, 0, 0, 0, + 46, 47, 48, 0, 49, 50, 0, 0, 51, 52, + 0, 0, 0, 0, 0, 0, 0, 187, 53, 0, + 0, 0, 0, 315, 316, 0, 0, 317, 318, 0, + 319, 320, 321, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 314, 0, 0, 315, 316, 0, 317, 318, 319, - 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 343, 0, 0, 0, 0, 344, 0, 0, - 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 0, 189, 0, + 0, 0, 0, 0, 190, 0, 191, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 321 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, + 0, 193, 194 }; static const yytype_int16 yycheck[] = { - 14, 37, 181, 156, 157, 60, 29, 27, 5, 60, - 43, 38, 48, 36, 61, 184, 39, 196, 55, 91, - 11, 4, 41, 37, 65, 194, 67, 1, 144, 32, - 34, 103, 179, 60, 7, 8, 10, 181, 182, 144, - 14, 15, 16, 26, 58, 65, 60, 67, 22, 23, - 54, 60, 25, 76, 60, 29, 30, 60, 154, 33, - 60, 154, 36, 37, 154, 244, 40, 64, 154, 66, - 154, 154, 154, 77, 93, 49, 181, 182, 194, 53, - 60, 60, 119, 130, 107, 59, 154, 61, 154, 154, - 63, 185, 186, 187, 188, 189, 70, 71, 60, 0, - 74, 3, 255, 256, 78, 79, 97, 60, 82, 83, - 179, 102, 126, 154, 154, 154, 193, 91, 169, 92, - 103, 60, 32, 154, 154, 139, 146, 110, 147, 27, - 104, 105, 106, 27, 154, 168, 191, 111, 165, 84, - 42, 43, 44, 45, 127, 168, 120, 60, 190, 154, - 124, 60, 126, 60, 128, 129, 60, 154, 179, 154, - 60, 154, 154, 60, 138, 139, 140, 141, 142, 143, - 144, 145, 325, 35, 148, 190, 150, 179, 175, 154, - 359, 27, 155, 157, 60, 60, 154, 160, 162, 163, - 164, 174, 166, 167, 177, 179, 170, 171, 10, 193, - 190, 183, 14, 15, 16, 179, 180, 192, 184, 388, - 22, 23, 190, 190, 393, 179, 179, 29, 30, 179, - 190, 33, 193, 259, 36, 37, 193, 6, 40, 98, - 8, 410, 242, 136, 12, 137, 163, 49, 11, 179, - 18, 53, 123, 151, 200, 27, 245, 59, 355, 61, - 390, 153, 31, 287, 404, -1, 158, 159, 70, 71, - -1, -1, 74, -1, -1, -1, 78, 79, -1, 48, - 82, 83, 51, -1, 185, 186, 187, 188, 189, 91, - -1, -1, 28, 194, -1, -1, -1, -1, -1, -1, - 68, 327, 104, 105, 106, -1, 20, -1, -1, 111, - 24, -1, -1, -1, 50, -1, -1, 53, 120, -1, - -1, -1, 124, -1, 126, -1, 128, 129, -1, -1, - -1, -1, -1, 101, 102, -1, 138, 139, 140, 141, - 142, 143, 144, 145, -1, -1, 148, -1, 150, -1, - 118, 13, -1, -1, 123, 157, -1, 19, -1, 21, - 162, 163, 164, -1, 166, 167, 80, 10, 170, 171, - -1, 14, 15, 16, 378, -1, -1, 179, 180, 22, - 23, 149, 151, 152, -1, 47, 29, 30, 157, -1, - 33, -1, -1, 36, 37, -1, -1, 40, 134, 135, - -1, -1, -1, -1, -1, 141, 49, -1, -1, -1, - 53, 125, -1, -1, -1, -1, 59, -1, 61, 133, - -1, -1, 136, -1, 86, -1, 88, 70, 71, -1, - -1, 74, 94, -1, 96, 78, 79, 99, -1, 82, - 83, -1, 156, -1, 9, -1, -1, 161, 91, -1, - -1, -1, 17, -1, -1, -1, -1, -1, -1, 121, - 122, 104, 105, 106, -1, -1, -1, -1, 111, -1, - -1, -1, -1, -1, -1, -1, -1, 120, -1, -1, - -1, 124, -1, 126, -1, 128, 129, 52, 53, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, - 143, 144, 145, -1, 69, 148, -1, 150, 55, 56, - 57, 58, -1, -1, 157, -1, -1, -1, 46, 162, - 163, 164, -1, 166, 167, 90, 54, 170, 171, -1, - -1, -1, -1, 98, -1, 100, -1, 180, 85, -1, - 87, -1, 89, -1, 72, 73, -1, 75, 95, 114, - -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 131, 132, -1, -1, + 14, 37, 183, 5, 4, 43, 60, 60, 41, 61, + 55, 144, 48, 28, 156, 157, 65, 198, 67, 1, + 181, 38, 11, 37, 32, 34, 26, 20, 10, 186, + 144, 24, 14, 15, 16, 50, 183, 184, 53, 196, + 22, 23, 60, 60, 58, 54, 60, 29, 30, 91, + 60, 33, 60, 156, 36, 37, 156, 6, 40, 156, + 93, 103, 64, 196, 66, 246, 156, 49, 77, 183, + 184, 53, 156, 60, 119, 156, 156, 59, 130, 61, + 60, 60, 31, 156, 156, 156, 60, 80, 70, 71, + 0, 156, 74, 7, 8, 3, 78, 79, 181, 48, + 82, 83, 51, 103, 195, 156, 60, 156, 97, 91, + 110, 25, 126, 102, 147, 257, 258, 32, 171, 134, + 135, 156, 104, 105, 106, 139, 141, 127, 60, 111, + 168, 27, 125, 156, 42, 43, 44, 45, 120, 193, + 133, 27, 124, 136, 126, 29, 128, 129, 27, 63, + 167, 84, 36, 60, 156, 39, 138, 139, 140, 141, + 142, 143, 144, 145, 192, 158, 148, 60, 150, 65, + 163, 67, 60, 60, 123, 177, 176, 159, 92, 179, + 361, 156, 164, 165, 166, 327, 168, 169, 60, 181, + 172, 173, 76, 156, 156, 60, 156, 8, 35, 181, + 182, 12, 151, 152, 153, 154, 192, 18, 181, 390, + 159, 156, 27, 60, 395, 10, 60, 156, 195, 14, + 15, 16, 192, 107, 181, 261, 194, 22, 23, 137, + 185, 412, 98, 192, 29, 30, 186, 181, 33, 192, + 181, 36, 37, 157, 195, 40, 192, 155, 162, 244, + 146, 181, 160, 161, 49, 195, 136, 68, 53, 163, + 156, 11, 181, 123, 59, 202, 61, 27, 151, 247, + 9, 357, 392, 289, 406, 70, 71, -1, 17, 74, + -1, -1, -1, 78, 79, -1, 170, 82, 83, -1, + 101, 102, -1, 329, -1, -1, 91, 187, 188, 189, + 190, 191, -1, -1, -1, -1, 196, 118, -1, 104, + 105, 106, -1, 52, 53, -1, 111, 187, 188, 189, + 190, 191, -1, -1, -1, 120, -1, -1, -1, 124, + 69, 126, -1, 128, 129, -1, -1, -1, 149, -1, + -1, -1, -1, 138, 139, 140, 141, 142, 143, 144, + 145, 90, -1, 148, -1, 150, -1, -1, -1, 98, + -1, 100, -1, -1, 159, -1, 380, -1, -1, 164, + 165, 166, -1, 168, 169, 114, 10, 172, 173, -1, + 14, 15, 16, -1, -1, -1, 181, 182, 22, 23, + -1, -1, 131, 132, -1, 29, 30, -1, -1, 33, + -1, -1, 36, 37, -1, -1, 40, -1, -1, -1, + -1, -1, -1, -1, -1, 49, -1, -1, -1, 53, + 55, 56, 57, 58, -1, 59, -1, 61, 167, -1, + 169, -1, -1, -1, -1, 174, 70, 71, -1, 178, + 74, -1, -1, -1, 78, 79, -1, -1, 82, 83, + 85, -1, 87, -1, 89, -1, -1, 91, -1, -1, + 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 104, 105, 106, -1, -1, -1, -1, 111, -1, -1, + -1, -1, -1, -1, -1, -1, 120, -1, -1, -1, + 124, 46, 126, -1, 128, 129, -1, -1, -1, 54, + -1, -1, -1, -1, 138, 139, 140, 141, 142, 143, + 144, 145, -1, 13, 148, -1, 150, 72, 73, 19, + 75, 21, -1, -1, -1, 159, 81, -1, -1, -1, + 164, 165, 166, -1, 168, 169, -1, -1, 172, 173, + -1, -1, -1, -1, -1, -1, -1, 47, 182, -1, + -1, -1, -1, 108, 109, -1, -1, 112, 113, -1, + 115, 116, 117, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 108, 109, -1, -1, 112, 113, -1, 115, 116, 117, - -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, - 165, -1, 167, -1, -1, -1, -1, 172, -1, -1, - -1, 176, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 86, -1, 88, -1, + -1, -1, -1, -1, 94, -1, 96, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 172 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, + -1, 121, 122 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1288,80 +1292,81 @@ static const yytype_uint16 yystos[] = 33, 36, 37, 40, 49, 53, 59, 61, 70, 71, 74, 78, 79, 82, 83, 91, 104, 105, 106, 111, 120, 124, 126, 128, 129, 138, 139, 140, 141, 142, - 143, 144, 145, 148, 150, 157, 162, 163, 164, 166, - 167, 170, 171, 180, 196, 197, 198, 199, 200, 212, - 213, 214, 215, 219, 224, 232, 241, 246, 250, 255, - 259, 260, 261, 262, 270, 271, 274, 285, 286, 179, - 60, 60, 216, 8, 12, 18, 68, 101, 102, 118, - 149, 251, 252, 253, 254, 11, 97, 102, 235, 236, - 237, 154, 263, 251, 20, 24, 80, 125, 133, 136, - 156, 161, 226, 65, 67, 154, 201, 202, 203, 154, - 154, 154, 154, 268, 269, 201, 282, 60, 55, 56, - 57, 58, 85, 87, 89, 95, 238, 239, 240, 282, - 154, 154, 281, 60, 7, 8, 25, 63, 92, 155, - 160, 275, 276, 27, 65, 67, 146, 201, 202, 60, - 41, 93, 147, 247, 248, 249, 154, 264, 225, 226, - 154, 6, 31, 48, 51, 123, 151, 152, 157, 256, - 257, 258, 13, 19, 21, 47, 86, 88, 94, 96, - 99, 121, 122, 220, 221, 222, 223, 202, 60, 191, - 278, 279, 280, 60, 277, 0, 198, 179, 201, 201, - 32, 60, 284, 154, 154, 34, 54, 77, 273, 193, - 28, 50, 53, 134, 135, 141, 217, 218, 252, 236, - 60, 32, 227, 3, 42, 43, 44, 45, 137, 153, - 158, 159, 242, 243, 244, 245, 154, 198, 269, 201, - 239, 60, 154, 276, 233, 27, 27, 233, 233, 84, - 248, 60, 190, 226, 257, 284, 38, 60, 165, 283, - 221, 60, 284, 266, 60, 279, 60, 179, 204, 5, - 64, 66, 154, 175, 272, 181, 182, 287, 288, 289, - 60, 154, 29, 36, 39, 76, 107, 168, 228, 229, - 230, 154, 154, 60, 243, 284, 283, 46, 54, 72, - 73, 75, 81, 108, 109, 112, 113, 115, 116, 117, - 119, 172, 234, 233, 233, 202, 154, 61, 130, 267, - 35, 9, 17, 52, 53, 69, 90, 98, 100, 114, - 131, 132, 165, 167, 172, 176, 205, 206, 207, 208, - 209, 210, 211, 144, 288, 290, 291, 293, 179, 190, - 154, 4, 26, 103, 110, 127, 174, 177, 231, 233, - 27, 265, 202, 60, 60, 60, 169, 154, 190, 179, - 194, 291, 193, 284, 192, 201, 183, 292, 190, 184, - 294, 295, 284, 190, 194, 295, 179, 284, 193, 185, - 186, 187, 188, 189, 296, 297, 298, 194, 297, 179, - 190, 179, 284 + 143, 144, 145, 148, 150, 159, 164, 165, 166, 168, + 169, 172, 173, 182, 198, 199, 200, 201, 202, 214, + 215, 216, 217, 221, 226, 234, 243, 248, 252, 257, + 261, 262, 263, 264, 272, 273, 276, 287, 288, 181, + 60, 60, 218, 8, 12, 18, 68, 101, 102, 118, + 149, 253, 254, 255, 256, 11, 97, 102, 237, 238, + 239, 156, 265, 253, 20, 24, 80, 125, 133, 136, + 158, 163, 228, 65, 67, 156, 203, 204, 205, 156, + 156, 156, 156, 270, 271, 203, 284, 60, 55, 56, + 57, 58, 85, 87, 89, 95, 240, 241, 242, 284, + 156, 156, 283, 60, 7, 8, 25, 63, 92, 157, + 162, 277, 278, 27, 65, 67, 146, 203, 204, 60, + 41, 93, 147, 249, 250, 251, 156, 266, 227, 228, + 156, 6, 31, 48, 51, 123, 151, 152, 153, 154, + 159, 258, 259, 260, 13, 19, 21, 47, 86, 88, + 94, 96, 99, 121, 122, 222, 223, 224, 225, 204, + 60, 193, 280, 281, 282, 60, 279, 0, 200, 181, + 203, 203, 32, 60, 286, 156, 156, 34, 54, 77, + 275, 195, 28, 50, 53, 134, 135, 141, 219, 220, + 254, 238, 60, 32, 229, 3, 42, 43, 44, 45, + 137, 155, 160, 161, 244, 245, 246, 247, 156, 200, + 271, 203, 241, 60, 156, 278, 235, 27, 27, 235, + 235, 84, 250, 60, 192, 228, 259, 286, 38, 60, + 167, 285, 223, 60, 286, 268, 60, 281, 60, 181, + 206, 5, 64, 66, 156, 177, 274, 183, 184, 289, + 290, 291, 60, 156, 29, 36, 39, 76, 107, 170, + 230, 231, 232, 156, 156, 60, 245, 286, 285, 46, + 54, 72, 73, 75, 81, 108, 109, 112, 113, 115, + 116, 117, 119, 174, 236, 235, 235, 204, 156, 61, + 130, 269, 35, 9, 17, 52, 53, 69, 90, 98, + 100, 114, 131, 132, 167, 169, 174, 178, 207, 208, + 209, 210, 211, 212, 213, 144, 290, 292, 293, 295, + 181, 192, 156, 4, 26, 103, 110, 127, 176, 179, + 233, 235, 27, 267, 204, 60, 60, 60, 171, 156, + 192, 181, 196, 293, 195, 286, 194, 203, 185, 294, + 192, 186, 296, 297, 286, 192, 196, 297, 181, 286, + 195, 187, 188, 189, 190, 191, 298, 299, 300, 196, + 299, 181, 192, 181, 286 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 195, 196, 197, 197, 197, 198, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 199, 200, 200, 200, 200, 200, 201, 201, 202, 203, - 203, 204, 204, 205, 205, 205, 206, 207, 207, 207, - 207, 207, 207, 207, 207, 208, 208, 209, 209, 209, - 209, 209, 209, 210, 211, 212, 213, 213, 214, 214, - 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 216, 216, 217, 217, 218, 218, 218, 218, 218, - 219, 220, 220, 221, 221, 221, 222, 222, 222, 222, - 222, 222, 223, 223, 223, 223, 224, 224, 224, 225, - 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, - 227, 228, 228, 228, 228, 229, 229, 230, 230, 231, - 231, 231, 231, 231, 231, 231, 232, 232, 232, 232, - 232, 232, 232, 232, 233, 233, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, - 234, 235, 235, 236, 237, 237, 237, 238, 238, 239, - 240, 240, 240, 240, 240, 240, 240, 240, 241, 242, - 242, 243, 243, 243, 243, 243, 244, 244, 245, 245, - 245, 245, 246, 247, 247, 248, 249, 249, 249, 250, - 250, 251, 251, 252, 252, 253, 253, 253, 253, 253, - 253, 254, 254, 255, 256, 256, 257, 258, 258, 258, - 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 260, 260, - 260, 261, 261, 261, 262, 262, 263, 263, 263, 264, - 265, 265, 266, 266, 267, 267, 268, 268, 269, 270, - 270, 271, 271, 272, 272, 272, 272, 273, 273, 273, - 274, 275, 275, 276, 276, 276, 276, 276, 276, 276, - 277, 277, 278, 278, 279, 279, 280, 281, 281, 282, - 282, 283, 283, 283, 284, 284, 285, 286, 287, 287, - 288, 289, 289, 290, 290, 291, 292, 293, 294, 294, - 295, 296, 296, 297, 298, 298, 298, 298, 298 + 0, 197, 198, 199, 199, 199, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 201, 202, 202, 202, 202, 202, 203, 203, 204, 205, + 205, 206, 206, 207, 207, 207, 208, 209, 209, 209, + 209, 209, 209, 209, 209, 210, 210, 211, 211, 211, + 211, 211, 211, 212, 213, 214, 215, 215, 216, 216, + 216, 216, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 218, 218, 219, 219, 220, 220, 220, 220, 220, + 221, 222, 222, 223, 223, 223, 224, 224, 224, 224, + 224, 224, 225, 225, 225, 225, 226, 226, 226, 227, + 227, 228, 228, 228, 228, 228, 228, 228, 228, 229, + 229, 230, 230, 230, 230, 231, 231, 232, 232, 233, + 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, + 234, 234, 234, 234, 235, 235, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 237, 237, 238, 239, 239, 239, 240, 240, 241, + 242, 242, 242, 242, 242, 242, 242, 242, 243, 244, + 244, 245, 245, 245, 245, 245, 246, 246, 247, 247, + 247, 247, 248, 249, 249, 250, 251, 251, 251, 252, + 252, 253, 253, 254, 254, 255, 255, 255, 255, 255, + 255, 256, 256, 257, 258, 258, 259, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 262, 262, 262, 263, 263, 263, 264, 264, 265, 265, + 265, 266, 267, 267, 268, 268, 269, 269, 270, 270, + 271, 272, 272, 273, 273, 274, 274, 274, 274, 275, + 275, 275, 276, 277, 277, 278, 278, 278, 278, 278, + 278, 278, 279, 279, 280, 280, 281, 281, 282, 283, + 283, 284, 284, 285, 285, 285, 286, 286, 287, 288, + 289, 289, 290, 291, 291, 292, 292, 293, 294, 295, + 296, 296, 297, 298, 298, 299, 300, 300, 300, 300, + 300 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1388,16 +1393,17 @@ static const yytype_uint8 yyr2[] = 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, 2, 2, 2, - 3, 1, 2, 2, 2, 2, 3, 2, 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 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 3, 1, 2, 2, 2, 2, 3, 2, + 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 }; @@ -2076,7 +2082,7 @@ yyparse (struct FILE_INFO *ip_file) switch (yyn) { case 5: -#line 371 "ntp_parser.y" /* yacc.c:1646 */ +#line 373 "ntp_parser.y" /* yacc.c:1646 */ { /* I will need to incorporate much more fine grained * error messages. The following should suffice for @@ -2088,85 +2094,85 @@ yyparse (struct FILE_INFO *ip_file) ip_file->err_line_no, ip_file->err_col_no); } -#line 2092 "ntp_parser.c" /* yacc.c:1646 */ +#line 2098 "ntp_parser.c" /* yacc.c:1646 */ break; case 20: -#line 406 "ntp_parser.y" /* yacc.c:1646 */ +#line 408 "ntp_parser.y" /* yacc.c:1646 */ { peer_node *my_node; my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.peers, my_node); } -#line 2103 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 27: -#line 425 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); } #line 2109 "ntp_parser.c" /* yacc.c:1646 */ break; - case 28: -#line 430 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); } + case 27: +#line 427 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); } #line 2115 "ntp_parser.c" /* yacc.c:1646 */ break; - case 29: -#line 435 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Integer) = AF_INET; } + case 28: +#line 432 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); } #line 2121 "ntp_parser.c" /* yacc.c:1646 */ break; - case 30: + case 29: #line 437 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Integer) = AF_INET6; } + { (yyval.Integer) = AF_INET; } #line 2127 "ntp_parser.c" /* yacc.c:1646 */ break; - case 31: -#line 442 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val_fifo) = NULL; } + case 30: +#line 439 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Integer) = AF_INET6; } #line 2133 "ntp_parser.c" /* yacc.c:1646 */ break; - case 32: + case 31: #line 444 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val_fifo) = NULL; } +#line 2139 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 32: +#line 446 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2142 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 36: -#line 458 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } #line 2148 "ntp_parser.c" /* yacc.c:1646 */ break; - case 45: -#line 474 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } + case 36: +#line 460 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } #line 2154 "ntp_parser.c" /* yacc.c:1646 */ break; - case 46: + case 45: #line 476 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); } + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2160 "ntp_parser.c" /* yacc.c:1646 */ break; - case 53: -#line 490 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } + case 46: +#line 478 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2166 "ntp_parser.c" /* yacc.c:1646 */ break; + case 53: +#line 492 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2172 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 55: -#line 504 "ntp_parser.y" /* yacc.c:1646 */ +#line 506 "ntp_parser.y" /* yacc.c:1646 */ { unpeer_node *my_node; @@ -2174,85 +2180,85 @@ yyparse (struct FILE_INFO *ip_file) if (my_node) APPEND_G_FIFO(cfgt.unpeers, my_node); } -#line 2178 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 58: -#line 525 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.broadcastclient = 1; } #line 2184 "ntp_parser.c" /* yacc.c:1646 */ break; - case 59: + case 58: #line 527 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); } + { cfgt.broadcastclient = 1; } #line 2190 "ntp_parser.c" /* yacc.c:1646 */ break; - case 60: + case 59: #line 529 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); } + { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); } #line 2196 "ntp_parser.c" /* yacc.c:1646 */ break; - case 61: + case 60: #line 531 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.mdnstries = (yyvsp[0].Integer); } + { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); } #line 2202 "ntp_parser.c" /* yacc.c:1646 */ break; + case 61: +#line 533 "ntp_parser.y" /* yacc.c:1646 */ + { cfgt.mdnstries = (yyvsp[0].Integer); } +#line 2208 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 62: -#line 542 "ntp_parser.y" /* yacc.c:1646 */ +#line 544 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *atrv; atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); APPEND_G_FIFO(cfgt.vars, atrv); } -#line 2213 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 63: -#line 549 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.control_key = (yyvsp[0].Integer); } #line 2219 "ntp_parser.c" /* yacc.c:1646 */ break; - case 64: + case 63: #line 551 "ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.control_key = (yyvsp[0].Integer); } +#line 2225 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 64: +#line 553 "ntp_parser.y" /* yacc.c:1646 */ { cfgt.auth.cryptosw++; CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo)); } -#line 2228 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 65: -#line 556 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.keys = (yyvsp[0].String); } #line 2234 "ntp_parser.c" /* yacc.c:1646 */ break; - case 66: + case 65: #line 558 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.keysdir = (yyvsp[0].String); } + { cfgt.auth.keys = (yyvsp[0].String); } #line 2240 "ntp_parser.c" /* yacc.c:1646 */ break; - case 67: + case 66: #line 560 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.request_key = (yyvsp[0].Integer); } + { cfgt.auth.keysdir = (yyvsp[0].String); } #line 2246 "ntp_parser.c" /* yacc.c:1646 */ break; - case 68: + case 67: #line 562 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.revoke = (yyvsp[0].Integer); } + { cfgt.auth.request_key = (yyvsp[0].Integer); } #line 2252 "ntp_parser.c" /* yacc.c:1646 */ break; - case 69: + case 68: #line 564 "ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.revoke = (yyvsp[0].Integer); } +#line 2258 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 69: +#line 566 "ntp_parser.y" /* yacc.c:1646 */ { cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo); @@ -2261,38 +2267,38 @@ yyparse (struct FILE_INFO *ip_file) // else // LINK_SLIST(cfgt.auth.trusted_key_list, $2, link); } -#line 2265 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 70: -#line 573 "ntp_parser.y" /* yacc.c:1646 */ - { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); } #line 2271 "ntp_parser.c" /* yacc.c:1646 */ break; - case 71: -#line 578 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val_fifo) = NULL; } + case 70: +#line 575 "ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); } #line 2277 "ntp_parser.c" /* yacc.c:1646 */ break; - case 72: + case 71: #line 580 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val_fifo) = NULL; } +#line 2283 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 72: +#line 582 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2286 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 73: -#line 588 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } #line 2292 "ntp_parser.c" /* yacc.c:1646 */ break; - case 74: + case 73: #line 590 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2298 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 74: +#line 592 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val) = NULL; cfgt.auth.revoke = (yyvsp[0].Integer); @@ -2301,59 +2307,59 @@ yyparse (struct FILE_INFO *ip_file) "please use 'revoke %d' instead.", cfgt.auth.revoke, cfgt.auth.revoke); } -#line 2305 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 80: -#line 615 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); } #line 2311 "ntp_parser.c" /* yacc.c:1646 */ break; + case 80: +#line 617 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); } +#line 2317 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 81: -#line 620 "ntp_parser.y" /* yacc.c:1646 */ +#line 622 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2320 "ntp_parser.c" /* yacc.c:1646 */ +#line 2326 "ntp_parser.c" /* yacc.c:1646 */ break; case 82: -#line 625 "ntp_parser.y" /* yacc.c:1646 */ +#line 627 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2329 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 83: -#line 633 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } #line 2335 "ntp_parser.c" /* yacc.c:1646 */ break; - case 84: + case 83: #line 635 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } #line 2341 "ntp_parser.c" /* yacc.c:1646 */ break; - case 85: + case 84: #line 637 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } #line 2347 "ntp_parser.c" /* yacc.c:1646 */ break; - case 96: -#line 663 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); } + case 85: +#line 639 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } #line 2353 "ntp_parser.c" /* yacc.c:1646 */ break; - case 97: + case 96: #line 665 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); } +#line 2359 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 97: +#line 667 "ntp_parser.y" /* yacc.c:1646 */ { if (input_from_file) { cfgt.stats_dir = (yyvsp[0].String); @@ -2362,55 +2368,55 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, "statsdir remote configuration ignored"); } } -#line 2366 "ntp_parser.c" /* yacc.c:1646 */ +#line 2372 "ntp_parser.c" /* yacc.c:1646 */ break; case 98: -#line 674 "ntp_parser.y" /* yacc.c:1646 */ +#line 676 "ntp_parser.y" /* yacc.c:1646 */ { filegen_node *fgn; fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.filegen_opts, fgn); } -#line 2377 "ntp_parser.c" /* yacc.c:1646 */ +#line 2383 "ntp_parser.c" /* yacc.c:1646 */ break; case 99: -#line 684 "ntp_parser.y" /* yacc.c:1646 */ +#line 686 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } -#line 2386 "ntp_parser.c" /* yacc.c:1646 */ +#line 2392 "ntp_parser.c" /* yacc.c:1646 */ break; case 100: -#line 689 "ntp_parser.y" /* yacc.c:1646 */ +#line 691 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = NULL; APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } -#line 2395 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 109: -#line 708 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val_fifo) = NULL; } #line 2401 "ntp_parser.c" /* yacc.c:1646 */ break; - case 110: + case 109: #line 710 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val_fifo) = NULL; } +#line 2407 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 110: +#line 712 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2410 "ntp_parser.c" /* yacc.c:1646 */ +#line 2416 "ntp_parser.c" /* yacc.c:1646 */ break; case 111: -#line 718 "ntp_parser.y" /* yacc.c:1646 */ +#line 720 "ntp_parser.y" /* yacc.c:1646 */ { if (input_from_file) { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); @@ -2420,11 +2426,11 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, "filegen file remote config ignored"); } } -#line 2424 "ntp_parser.c" /* yacc.c:1646 */ +#line 2430 "ntp_parser.c" /* yacc.c:1646 */ break; case 112: -#line 728 "ntp_parser.y" /* yacc.c:1646 */ +#line 730 "ntp_parser.y" /* yacc.c:1646 */ { if (input_from_file) { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); @@ -2433,11 +2439,11 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, "filegen type remote config ignored"); } } -#line 2437 "ntp_parser.c" /* yacc.c:1646 */ +#line 2443 "ntp_parser.c" /* yacc.c:1646 */ break; case 113: -#line 737 "ntp_parser.y" /* yacc.c:1646 */ +#line 739 "ntp_parser.y" /* yacc.c:1646 */ { const char *err; @@ -2452,33 +2458,33 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, err); } } -#line 2456 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 114: -#line 752 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } #line 2462 "ntp_parser.c" /* yacc.c:1646 */ break; + case 114: +#line 754 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } +#line 2468 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 126: -#line 782 "ntp_parser.y" /* yacc.c:1646 */ +#line 784 "ntp_parser.y" /* yacc.c:1646 */ { CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo)); } -#line 2470 "ntp_parser.c" /* yacc.c:1646 */ +#line 2476 "ntp_parser.c" /* yacc.c:1646 */ break; case 127: -#line 786 "ntp_parser.y" /* yacc.c:1646 */ +#line 788 "ntp_parser.y" /* yacc.c:1646 */ { CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo)); } -#line 2478 "ntp_parser.c" /* yacc.c:1646 */ +#line 2484 "ntp_parser.c" /* yacc.c:1646 */ break; case 128: -#line 790 "ntp_parser.y" /* yacc.c:1646 */ +#line 792 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2486,11 +2492,11 @@ yyparse (struct FILE_INFO *ip_file) ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2490 "ntp_parser.c" /* yacc.c:1646 */ +#line 2496 "ntp_parser.c" /* yacc.c:1646 */ break; case 129: -#line 798 "ntp_parser.y" /* yacc.c:1646 */ +#line 800 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2498,11 +2504,11 @@ yyparse (struct FILE_INFO *ip_file) ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2502 "ntp_parser.c" /* yacc.c:1646 */ +#line 2508 "ntp_parser.c" /* yacc.c:1646 */ break; case 130: -#line 806 "ntp_parser.y" /* yacc.c:1646 */ +#line 808 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2510,11 +2516,11 @@ yyparse (struct FILE_INFO *ip_file) ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2514 "ntp_parser.c" /* yacc.c:1646 */ +#line 2520 "ntp_parser.c" /* yacc.c:1646 */ break; case 131: -#line 814 "ntp_parser.y" /* yacc.c:1646 */ +#line 816 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2529,11 +2535,11 @@ yyparse (struct FILE_INFO *ip_file) ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2533 "ntp_parser.c" /* yacc.c:1646 */ +#line 2539 "ntp_parser.c" /* yacc.c:1646 */ break; case 132: -#line 829 "ntp_parser.y" /* yacc.c:1646 */ +#line 831 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2548,11 +2554,11 @@ yyparse (struct FILE_INFO *ip_file) ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2552 "ntp_parser.c" /* yacc.c:1646 */ +#line 2558 "ntp_parser.c" /* yacc.c:1646 */ break; case 133: -#line 844 "ntp_parser.y" /* yacc.c:1646 */ +#line 846 "ntp_parser.y" /* yacc.c:1646 */ { restrict_node * rn; @@ -2561,199 +2567,199 @@ yyparse (struct FILE_INFO *ip_file) NULL, NULL, (yyvsp[0].Int_fifo), ip_file->line_no); APPEND_G_FIFO(cfgt.restrict_opts, rn); } -#line 2565 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 134: -#line 856 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Int_fifo) = NULL; } #line 2571 "ntp_parser.c" /* yacc.c:1646 */ break; - case 135: + case 134: #line 858 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Int_fifo) = NULL; } +#line 2577 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 135: +#line 860 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } -#line 2580 "ntp_parser.c" /* yacc.c:1646 */ +#line 2586 "ntp_parser.c" /* yacc.c:1646 */ break; case 151: -#line 884 "ntp_parser.y" /* yacc.c:1646 */ +#line 886 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2589 "ntp_parser.c" /* yacc.c:1646 */ +#line 2595 "ntp_parser.c" /* yacc.c:1646 */ break; case 152: -#line 889 "ntp_parser.y" /* yacc.c:1646 */ +#line 891 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2598 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 153: -#line 897 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2604 "ntp_parser.c" /* yacc.c:1646 */ break; + case 153: +#line 899 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2610 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 157: -#line 908 "ntp_parser.y" /* yacc.c:1646 */ +#line 910 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2613 "ntp_parser.c" /* yacc.c:1646 */ +#line 2619 "ntp_parser.c" /* yacc.c:1646 */ break; case 158: -#line 913 "ntp_parser.y" /* yacc.c:1646 */ +#line 915 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2622 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 159: -#line 921 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2628 "ntp_parser.c" /* yacc.c:1646 */ break; + case 159: +#line 923 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2634 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 168: -#line 941 "ntp_parser.y" /* yacc.c:1646 */ +#line 943 "ntp_parser.y" /* yacc.c:1646 */ { addr_opts_node *aon; aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.fudge, aon); } -#line 2639 "ntp_parser.c" /* yacc.c:1646 */ +#line 2645 "ntp_parser.c" /* yacc.c:1646 */ break; case 169: -#line 951 "ntp_parser.y" /* yacc.c:1646 */ +#line 953 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2648 "ntp_parser.c" /* yacc.c:1646 */ +#line 2654 "ntp_parser.c" /* yacc.c:1646 */ break; case 170: -#line 956 "ntp_parser.y" /* yacc.c:1646 */ +#line 958 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2657 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 171: -#line 964 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } #line 2663 "ntp_parser.c" /* yacc.c:1646 */ break; - case 172: + case 171: #line 966 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } #line 2669 "ntp_parser.c" /* yacc.c:1646 */ break; - case 173: + case 172: #line 968 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2675 "ntp_parser.c" /* yacc.c:1646 */ break; - case 174: + case 173: #line 970 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2681 "ntp_parser.c" /* yacc.c:1646 */ break; - case 175: + case 174: #line 972 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } #line 2687 "ntp_parser.c" /* yacc.c:1646 */ break; - case 182: -#line 993 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); } + case 175: +#line 974 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } #line 2693 "ntp_parser.c" /* yacc.c:1646 */ break; + case 182: +#line 995 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); } +#line 2699 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 183: -#line 998 "ntp_parser.y" /* yacc.c:1646 */ +#line 1000 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2702 "ntp_parser.c" /* yacc.c:1646 */ +#line 2708 "ntp_parser.c" /* yacc.c:1646 */ break; case 184: -#line 1003 "ntp_parser.y" /* yacc.c:1646 */ +#line 1005 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2711 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 185: -#line 1011 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2717 "ntp_parser.c" /* yacc.c:1646 */ break; - case 189: -#line 1027 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); } + case 185: +#line 1013 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2723 "ntp_parser.c" /* yacc.c:1646 */ break; - case 190: + case 189: #line 1029 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); } + { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); } #line 2729 "ntp_parser.c" /* yacc.c:1646 */ break; + case 190: +#line 1031 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); } +#line 2735 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 191: -#line 1034 "ntp_parser.y" /* yacc.c:1646 */ +#line 1036 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2738 "ntp_parser.c" /* yacc.c:1646 */ +#line 2744 "ntp_parser.c" /* yacc.c:1646 */ break; case 192: -#line 1039 "ntp_parser.y" /* yacc.c:1646 */ +#line 1041 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2747 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 193: -#line 1047 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } #line 2753 "ntp_parser.c" /* yacc.c:1646 */ break; - case 194: + case 193: #line 1049 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } +#line 2759 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 194: +#line 1051 "ntp_parser.y" /* yacc.c:1646 */ { if (input_from_file) { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); @@ -2767,63 +2773,63 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, err_str); } } -#line 2771 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 203: -#line 1084 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); } #line 2777 "ntp_parser.c" /* yacc.c:1646 */ break; + case 203: +#line 1086 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); } +#line 2783 "ntp_parser.c" /* yacc.c:1646 */ + break; + case 204: -#line 1089 "ntp_parser.y" /* yacc.c:1646 */ +#line 1091 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2786 "ntp_parser.c" /* yacc.c:1646 */ +#line 2792 "ntp_parser.c" /* yacc.c:1646 */ break; case 205: -#line 1094 "ntp_parser.y" /* yacc.c:1646 */ +#line 1096 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2795 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 206: -#line 1102 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } #line 2801 "ntp_parser.c" /* yacc.c:1646 */ break; - case 217: -#line 1125 "ntp_parser.y" /* yacc.c:1646 */ + case 206: +#line 1104 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } +#line 2807 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 219: +#line 1129 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); APPEND_G_FIFO(cfgt.vars, av); } -#line 2812 "ntp_parser.c" /* yacc.c:1646 */ +#line 2818 "ntp_parser.c" /* yacc.c:1646 */ break; - case 218: -#line 1132 "ntp_parser.y" /* yacc.c:1646 */ + case 220: +#line 1136 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); APPEND_G_FIFO(cfgt.vars, av); } -#line 2823 "ntp_parser.c" /* yacc.c:1646 */ +#line 2829 "ntp_parser.c" /* yacc.c:1646 */ break; - case 219: -#line 1139 "ntp_parser.y" /* yacc.c:1646 */ + case 221: +#line 1143 "ntp_parser.y" /* yacc.c:1646 */ { char error_text[64]; attr_val *av; @@ -2839,11 +2845,11 @@ yyparse (struct FILE_INFO *ip_file) yyerror(ip_file, error_text); } } -#line 2843 "ntp_parser.c" /* yacc.c:1646 */ +#line 2849 "ntp_parser.c" /* yacc.c:1646 */ break; - case 220: -#line 1155 "ntp_parser.y" /* yacc.c:1646 */ + case 222: +#line 1159 "ntp_parser.y" /* yacc.c:1646 */ { if (!input_from_file) { yyerror(ip_file, "remote includefile ignored"); @@ -2862,72 +2868,72 @@ yyparse (struct FILE_INFO *ip_file) } } } -#line 2866 "ntp_parser.c" /* yacc.c:1646 */ +#line 2872 "ntp_parser.c" /* yacc.c:1646 */ break; - case 221: -#line 1174 "ntp_parser.y" /* yacc.c:1646 */ + case 223: +#line 1178 "ntp_parser.y" /* yacc.c:1646 */ { while (curr_include_level != -1) FCLOSE(fp[curr_include_level--]); } -#line 2875 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 222: -#line 1179 "ntp_parser.y" /* yacc.c:1646 */ - { /* see drift_parm below for actions */ } #line 2881 "ntp_parser.c" /* yacc.c:1646 */ break; - case 223: -#line 1181 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); } -#line 2887 "ntp_parser.c" /* yacc.c:1646 */ - break; - case 224: #line 1183 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); } -#line 2893 "ntp_parser.c" /* yacc.c:1646 */ + { /* see drift_parm below for actions */ } +#line 2887 "ntp_parser.c" /* yacc.c:1646 */ break; case 225: #line 1185 "ntp_parser.y" /* yacc.c:1646 */ - { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); } -#line 2899 "ntp_parser.c" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); } +#line 2893 "ntp_parser.c" /* yacc.c:1646 */ break; case 226: #line 1187 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); } +#line 2899 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 227: +#line 1189 "ntp_parser.y" /* yacc.c:1646 */ + { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); } +#line 2905 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 228: +#line 1191 "ntp_parser.y" /* yacc.c:1646 */ { addr_opts_node *aon; aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.trap, aon); } -#line 2910 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 227: -#line 1194 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); } #line 2916 "ntp_parser.c" /* yacc.c:1646 */ break; - case 236: -#line 1216 "ntp_parser.y" /* yacc.c:1646 */ + case 229: +#line 1198 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); } +#line 2922 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 238: +#line 1220 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; av = create_attr_sval(T_Driftfile, (yyvsp[0].String)); APPEND_G_FIFO(cfgt.vars, av); } -#line 2927 "ntp_parser.c" /* yacc.c:1646 */ +#line 2933 "ntp_parser.c" /* yacc.c:1646 */ break; - case 237: -#line 1223 "ntp_parser.y" /* yacc.c:1646 */ + case 239: +#line 1227 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; @@ -2936,82 +2942,82 @@ yyparse (struct FILE_INFO *ip_file) av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double)); APPEND_G_FIFO(cfgt.vars, av); } -#line 2940 "ntp_parser.c" /* yacc.c:1646 */ +#line 2946 "ntp_parser.c" /* yacc.c:1646 */ break; - case 238: -#line 1232 "ntp_parser.y" /* yacc.c:1646 */ + case 240: +#line 1236 "ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; av = create_attr_sval(T_Driftfile, ""); APPEND_G_FIFO(cfgt.vars, av); } -#line 2951 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 239: -#line 1242 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); } #line 2957 "ntp_parser.c" /* yacc.c:1646 */ break; case 241: -#line 1248 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Integer) = 0; } +#line 1246 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); } #line 2963 "ntp_parser.c" /* yacc.c:1646 */ break; - case 242: -#line 1253 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val_fifo) = NULL; } + case 243: +#line 1252 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Integer) = 0; } #line 2969 "ntp_parser.c" /* yacc.c:1646 */ break; - case 243: -#line 1255 "ntp_parser.y" /* yacc.c:1646 */ + case 244: +#line 1257 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val_fifo) = NULL; } +#line 2975 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 245: +#line 1259 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 2978 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 244: -#line 1263 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } #line 2984 "ntp_parser.c" /* yacc.c:1646 */ break; - case 245: -#line 1265 "ntp_parser.y" /* yacc.c:1646 */ + case 246: +#line 1267 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2990 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 247: +#line 1269 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address)); destroy_address_node((yyvsp[0].Address_node)); } -#line 2993 "ntp_parser.c" /* yacc.c:1646 */ +#line 2999 "ntp_parser.c" /* yacc.c:1646 */ break; - case 246: -#line 1273 "ntp_parser.y" /* yacc.c:1646 */ + case 248: +#line 1277 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 3002 "ntp_parser.c" /* yacc.c:1646 */ +#line 3008 "ntp_parser.c" /* yacc.c:1646 */ break; - case 247: -#line 1278 "ntp_parser.y" /* yacc.c:1646 */ + case 249: +#line 1282 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 3011 "ntp_parser.c" /* yacc.c:1646 */ +#line 3017 "ntp_parser.c" /* yacc.c:1646 */ break; - case 248: -#line 1286 "ntp_parser.y" /* yacc.c:1646 */ + case 250: +#line 1290 "ntp_parser.y" /* yacc.c:1646 */ { char prefix; char * type; @@ -3033,141 +3039,141 @@ yyparse (struct FILE_INFO *ip_file) (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type)); YYFREE((yyvsp[0].String)); } -#line 3037 "ntp_parser.c" /* yacc.c:1646 */ +#line 3043 "ntp_parser.c" /* yacc.c:1646 */ break; - case 249: -#line 1311 "ntp_parser.y" /* yacc.c:1646 */ + case 251: +#line 1315 "ntp_parser.y" /* yacc.c:1646 */ { nic_rule_node *nrn; nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer)); APPEND_G_FIFO(cfgt.nic_rules, nrn); } -#line 3048 "ntp_parser.c" /* yacc.c:1646 */ +#line 3054 "ntp_parser.c" /* yacc.c:1646 */ break; - case 250: -#line 1318 "ntp_parser.y" /* yacc.c:1646 */ + case 252: +#line 1322 "ntp_parser.y" /* yacc.c:1646 */ { nic_rule_node *nrn; nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer)); APPEND_G_FIFO(cfgt.nic_rules, nrn); } -#line 3059 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 260: -#line 1346 "ntp_parser.y" /* yacc.c:1646 */ - { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); } #line 3065 "ntp_parser.c" /* yacc.c:1646 */ break; - case 261: -#line 1351 "ntp_parser.y" /* yacc.c:1646 */ + case 262: +#line 1350 "ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); } +#line 3071 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 263: +#line 1355 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } -#line 3074 "ntp_parser.c" /* yacc.c:1646 */ +#line 3080 "ntp_parser.c" /* yacc.c:1646 */ break; - case 262: -#line 1356 "ntp_parser.y" /* yacc.c:1646 */ + case 264: +#line 1360 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = NULL; APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } -#line 3083 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 270: -#line 1380 "ntp_parser.y" /* yacc.c:1646 */ - { - (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); - } -#line 3092 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 271: -#line 1385 "ntp_parser.y" /* yacc.c:1646 */ - { - (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); - } -#line 3101 "ntp_parser.c" /* yacc.c:1646 */ +#line 3089 "ntp_parser.c" /* yacc.c:1646 */ break; case 272: -#line 1393 "ntp_parser.y" /* yacc.c:1646 */ +#line 1384 "ntp_parser.y" /* yacc.c:1646 */ + { + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); + } +#line 3098 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 273: +#line 1389 "ntp_parser.y" /* yacc.c:1646 */ + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); + } +#line 3107 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 274: +#line 1397 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 3110 "ntp_parser.c" /* yacc.c:1646 */ +#line 3116 "ntp_parser.c" /* yacc.c:1646 */ break; - case 273: -#line 1398 "ntp_parser.y" /* yacc.c:1646 */ + case 275: +#line 1402 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } -#line 3119 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 274: -#line 1406 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); } #line 3125 "ntp_parser.c" /* yacc.c:1646 */ break; case 276: -#line 1412 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); } +#line 1410 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); } #line 3131 "ntp_parser.c" /* yacc.c:1646 */ break; - case 277: -#line 1417 "ntp_parser.y" /* yacc.c:1646 */ + case 278: +#line 1416 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); } +#line 3137 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 279: +#line 1421 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.String_fifo) = (yyvsp[-1].String_fifo); APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String))); } -#line 3140 "ntp_parser.c" /* yacc.c:1646 */ +#line 3146 "ntp_parser.c" /* yacc.c:1646 */ break; - case 278: -#line 1422 "ntp_parser.y" /* yacc.c:1646 */ + case 280: +#line 1426 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.String_fifo) = NULL; APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String))); } -#line 3149 "ntp_parser.c" /* yacc.c:1646 */ +#line 3155 "ntp_parser.c" /* yacc.c:1646 */ break; - case 279: -#line 1430 "ntp_parser.y" /* yacc.c:1646 */ + case 281: +#line 1434 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Address_fifo) = (yyvsp[-1].Address_fifo); APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node)); } -#line 3158 "ntp_parser.c" /* yacc.c:1646 */ +#line 3164 "ntp_parser.c" /* yacc.c:1646 */ break; - case 280: -#line 1435 "ntp_parser.y" /* yacc.c:1646 */ + case 282: +#line 1439 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Address_fifo) = NULL; APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node)); } -#line 3167 "ntp_parser.c" /* yacc.c:1646 */ +#line 3173 "ntp_parser.c" /* yacc.c:1646 */ break; - case 281: -#line 1443 "ntp_parser.y" /* yacc.c:1646 */ + case 283: +#line 1447 "ntp_parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) { yyerror(ip_file, "Integer value is not boolean (0 or 1). Assuming 1"); @@ -3176,29 +3182,29 @@ yyparse (struct FILE_INFO *ip_file) (yyval.Integer) = (yyvsp[0].Integer); } } -#line 3180 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 282: -#line 1451 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Integer) = 1; } #line 3186 "ntp_parser.c" /* yacc.c:1646 */ break; - case 283: -#line 1452 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Integer) = 0; } + case 284: +#line 1455 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Integer) = 1; } #line 3192 "ntp_parser.c" /* yacc.c:1646 */ break; - case 284: + case 285: #line 1456 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Double) = (double)(yyvsp[0].Integer); } + { (yyval.Integer) = 0; } #line 3198 "ntp_parser.c" /* yacc.c:1646 */ break; case 286: -#line 1467 "ntp_parser.y" /* yacc.c:1646 */ +#line 1460 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Double) = (double)(yyvsp[0].Integer); } +#line 3204 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 288: +#line 1471 "ntp_parser.y" /* yacc.c:1646 */ { sim_node *sn; @@ -3208,125 +3214,125 @@ yyparse (struct FILE_INFO *ip_file) /* Revert from ; to \n for end-of-command */ old_config_style = 1; } -#line 3212 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 287: -#line 1484 "ntp_parser.y" /* yacc.c:1646 */ - { old_config_style = 0; } #line 3218 "ntp_parser.c" /* yacc.c:1646 */ break; - case 288: -#line 1489 "ntp_parser.y" /* yacc.c:1646 */ + case 289: +#line 1488 "ntp_parser.y" /* yacc.c:1646 */ + { old_config_style = 0; } +#line 3224 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 290: +#line 1493 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } -#line 3227 "ntp_parser.c" /* yacc.c:1646 */ +#line 3233 "ntp_parser.c" /* yacc.c:1646 */ break; - case 289: -#line 1494 "ntp_parser.y" /* yacc.c:1646 */ + case 291: +#line 1498 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } -#line 3236 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 290: -#line 1502 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } #line 3242 "ntp_parser.c" /* yacc.c:1646 */ break; - case 293: -#line 1512 "ntp_parser.y" /* yacc.c:1646 */ + case 292: +#line 1506 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } +#line 3248 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 295: +#line 1516 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo); APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server)); } -#line 3251 "ntp_parser.c" /* yacc.c:1646 */ +#line 3257 "ntp_parser.c" /* yacc.c:1646 */ break; - case 294: -#line 1517 "ntp_parser.y" /* yacc.c:1646 */ + case 296: +#line 1521 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Sim_server_fifo) = NULL; APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server)); } -#line 3260 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 295: -#line 1525 "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 3266 "ntp_parser.c" /* yacc.c:1646 */ break; - case 296: -#line 1530 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Double) = (yyvsp[-1].Double); } + case 297: +#line 1529 "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 3272 "ntp_parser.c" /* yacc.c:1646 */ break; - case 297: -#line 1535 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Address_node) = (yyvsp[0].Address_node); } + case 298: +#line 1534 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Double) = (yyvsp[-1].Double); } #line 3278 "ntp_parser.c" /* yacc.c:1646 */ break; - case 298: -#line 1540 "ntp_parser.y" /* yacc.c:1646 */ + case 299: +#line 1539 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = (yyvsp[0].Address_node); } +#line 3284 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 300: +#line 1544 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo); APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script)); } -#line 3287 "ntp_parser.c" /* yacc.c:1646 */ +#line 3293 "ntp_parser.c" /* yacc.c:1646 */ break; - case 299: -#line 1545 "ntp_parser.y" /* yacc.c:1646 */ + case 301: +#line 1549 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Sim_script_fifo) = NULL; APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script)); } -#line 3296 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 300: -#line 1553 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); } #line 3302 "ntp_parser.c" /* yacc.c:1646 */ break; - case 301: -#line 1558 "ntp_parser.y" /* yacc.c:1646 */ + case 302: +#line 1557 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); } +#line 3308 "ntp_parser.c" /* yacc.c:1646 */ + break; + + case 303: +#line 1562 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo); APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } -#line 3311 "ntp_parser.c" /* yacc.c:1646 */ +#line 3317 "ntp_parser.c" /* yacc.c:1646 */ break; - case 302: -#line 1563 "ntp_parser.y" /* yacc.c:1646 */ + case 304: +#line 1567 "ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } -#line 3320 "ntp_parser.c" /* yacc.c:1646 */ - break; - - case 303: -#line 1571 "ntp_parser.y" /* yacc.c:1646 */ - { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } #line 3326 "ntp_parser.c" /* yacc.c:1646 */ break; + case 305: +#line 1575 "ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } +#line 3332 "ntp_parser.c" /* yacc.c:1646 */ + break; -#line 3330 "ntp_parser.c" /* yacc.c:1646 */ + +#line 3336 "ntp_parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3554,7 +3560,7 @@ yyparse (struct FILE_INFO *ip_file) #endif return yyresult; } -#line 1582 "ntp_parser.y" /* yacc.c:1906 */ +#line 1586 "ntp_parser.y" /* yacc.c:1906 */ void diff --git a/contrib/ntp/ntpd/ntp_parser.h b/contrib/ntp/ntpd/ntp_parser.h index fc2e971ce0a9..2804e544973c 100644 --- a/contrib/ntp/ntpd/ntp_parser.h +++ b/contrib/ntp/ntpd/ntp_parser.h @@ -194,44 +194,46 @@ extern int yydebug; T_Stats = 404, T_Statsdir = 405, T_Step = 406, - T_Stepout = 407, - T_Stratum = 408, - T_String = 409, - T_Sys = 410, - T_Sysstats = 411, - T_Tick = 412, - T_Time1 = 413, - T_Time2 = 414, - T_Timer = 415, - T_Timingstats = 416, - T_Tinker = 417, - T_Tos = 418, - T_Trap = 419, - T_True = 420, - T_Trustedkey = 421, - T_Ttl = 422, - T_Type = 423, - T_U_int = 424, - T_Unconfig = 425, - T_Unpeer = 426, - T_Version = 427, - T_WanderThreshold = 428, - T_Week = 429, - T_Wildcard = 430, - T_Xleave = 431, - T_Year = 432, - T_Flag = 433, - T_EOC = 434, - T_Simulate = 435, - T_Beep_Delay = 436, - T_Sim_Duration = 437, - T_Server_Offset = 438, - T_Duration = 439, - T_Freq_Offset = 440, - T_Wander = 441, - T_Jitter = 442, - T_Prop_Delay = 443, - T_Proc_Delay = 444 + T_Stepback = 407, + T_Stepfwd = 408, + T_Stepout = 409, + T_Stratum = 410, + T_String = 411, + T_Sys = 412, + T_Sysstats = 413, + T_Tick = 414, + T_Time1 = 415, + T_Time2 = 416, + T_Timer = 417, + T_Timingstats = 418, + T_Tinker = 419, + T_Tos = 420, + T_Trap = 421, + T_True = 422, + T_Trustedkey = 423, + T_Ttl = 424, + T_Type = 425, + T_U_int = 426, + T_Unconfig = 427, + T_Unpeer = 428, + T_Version = 429, + T_WanderThreshold = 430, + T_Week = 431, + T_Wildcard = 432, + T_Xleave = 433, + T_Year = 434, + T_Flag = 435, + T_EOC = 436, + T_Simulate = 437, + T_Beep_Delay = 438, + T_Sim_Duration = 439, + T_Server_Offset = 440, + T_Duration = 441, + T_Freq_Offset = 442, + T_Wander = 443, + T_Jitter = 444, + T_Prop_Delay = 445, + T_Proc_Delay = 446 }; #endif /* Tokens. */ @@ -384,44 +386,46 @@ extern int yydebug; #define T_Stats 404 #define T_Statsdir 405 #define T_Step 406 -#define T_Stepout 407 -#define T_Stratum 408 -#define T_String 409 -#define T_Sys 410 -#define T_Sysstats 411 -#define T_Tick 412 -#define T_Time1 413 -#define T_Time2 414 -#define T_Timer 415 -#define T_Timingstats 416 -#define T_Tinker 417 -#define T_Tos 418 -#define T_Trap 419 -#define T_True 420 -#define T_Trustedkey 421 -#define T_Ttl 422 -#define T_Type 423 -#define T_U_int 424 -#define T_Unconfig 425 -#define T_Unpeer 426 -#define T_Version 427 -#define T_WanderThreshold 428 -#define T_Week 429 -#define T_Wildcard 430 -#define T_Xleave 431 -#define T_Year 432 -#define T_Flag 433 -#define T_EOC 434 -#define T_Simulate 435 -#define T_Beep_Delay 436 -#define T_Sim_Duration 437 -#define T_Server_Offset 438 -#define T_Duration 439 -#define T_Freq_Offset 440 -#define T_Wander 441 -#define T_Jitter 442 -#define T_Prop_Delay 443 -#define T_Proc_Delay 444 +#define T_Stepback 407 +#define T_Stepfwd 408 +#define T_Stepout 409 +#define T_Stratum 410 +#define T_String 411 +#define T_Sys 412 +#define T_Sysstats 413 +#define T_Tick 414 +#define T_Time1 415 +#define T_Time2 416 +#define T_Timer 417 +#define T_Timingstats 418 +#define T_Tinker 419 +#define T_Tos 420 +#define T_Trap 421 +#define T_True 422 +#define T_Trustedkey 423 +#define T_Ttl 424 +#define T_Type 425 +#define T_U_int 426 +#define T_Unconfig 427 +#define T_Unpeer 428 +#define T_Version 429 +#define T_WanderThreshold 430 +#define T_Week 431 +#define T_Wildcard 432 +#define T_Xleave 433 +#define T_Year 434 +#define T_Flag 435 +#define T_EOC 436 +#define T_Simulate 437 +#define T_Beep_Delay 438 +#define T_Sim_Duration 439 +#define T_Server_Offset 440 +#define T_Duration 441 +#define T_Freq_Offset 442 +#define T_Wander 443 +#define T_Jitter 444 +#define T_Prop_Delay 445 +#define T_Proc_Delay 446 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -447,7 +451,7 @@ union YYSTYPE script_info * Sim_script; script_info_fifo * Sim_script_fifo; -#line 451 "ntp_parser.h" /* yacc.c:1909 */ +#line 455 "ntp_parser.h" /* yacc.c:1909 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff --git a/contrib/ntp/ntpd/ntp_peer.c b/contrib/ntp/ntpd/ntp_peer.c index 495ee30af1a1..d42d804d444d 100644 --- a/contrib/ntp/ntpd/ntp_peer.c +++ b/contrib/ntp/ntpd/ntp_peer.c @@ -92,6 +92,7 @@ int peer_free_count; /* count of free structures */ * value every time an association is mobilized. */ static associd_t current_association_ID; /* association ID */ +static associd_t initial_association_ID; /* association ID */ /* * Memory allocation watermarks. @@ -147,6 +148,7 @@ init_peer(void) do current_association_ID = ntp_random() & ASSOCID_MAX; while (!current_association_ID); + initial_association_ID = current_association_ID; } @@ -1036,3 +1038,21 @@ findmanycastpeer( return peer; } + +/* peer_cleanup - clean peer list prior to shutdown */ +void peer_cleanup(void) +{ + struct peer *peer; + associd_t assoc; + + for (assoc = initial_association_ID; assoc != current_association_ID; assoc++) { + if (assoc != 0U) { + peer = findpeerbyassoc(assoc); + if (peer != NULL) + unpeer(peer); + } + } + peer = findpeerbyassoc(current_association_ID); + if (peer != NULL) + unpeer(peer); +} diff --git a/contrib/ntp/ntpd/ntp_proto.c b/contrib/ntp/ntpd/ntp_proto.c index 37c3f0325e07..577b5fb0af5a 100644 --- a/contrib/ntp/ntpd/ntp_proto.c +++ b/contrib/ntp/ntpd/ntp_proto.c @@ -245,7 +245,7 @@ transmit( /* * Update the reachability status. If not heard for * three consecutive polls, stuff infinity in the clock - * filter. + * filter. */ oreach = peer->reach; peer->outdate = current_time; @@ -290,7 +290,7 @@ transmit( * If preemptible and we have more peers than maxclock, * and this peer has the minimum score of preemptibles, * demobilize. - */ + */ if (peer->unreach >= NTP_UNREACH) { hpoll++; /* ephemeral: no FLAG_CONFIG nor FLAG_PREEMPT */ @@ -335,7 +335,7 @@ transmit( peer->retry--; /* - * Do not transmit if in broadcast client mode. + * Do not transmit if in broadcast client mode. */ if (peer->hmode != MODE_BCLIENT) peer_xmit(peer); @@ -442,7 +442,7 @@ receive( return; /* no flakeway */ } } - + /* * Version check must be after the query packets, since they * intentionally use an early version. @@ -659,7 +659,7 @@ receive( * If the signature is 20 bytes long, the last 16 of * which are zero, then this is a Microsoft client * wanting AD-style authentication of the server's - * reply. + * reply. * * This is described in Microsoft's WSPP docs, in MS-SNTP: * http://msdn.microsoft.com/en-us/library/cc212930.aspx @@ -680,7 +680,7 @@ receive( * broadcast or unicast address as appropriate. */ if (crypto_flags && skeyid > NTP_MAXKEY) { - + /* * More on the autokey dance (AKD). A cookie is * constructed from public and private values. @@ -874,7 +874,7 @@ receive( * curious and could be an intruder attempting to clog, so we * just ignore it. * - * If the packet is authentic and the manycastclient or pool + * If the packet is authentic and the manycastclient or pool * association is found, we mobilize a client association and * copy pertinent variables from the manycastclient or pool * association to the new client association. If not, just @@ -1255,16 +1255,6 @@ receive( peer->flash |= TEST2; /* bogus */ } - /* - * Update the state variables. - */ - if (peer->flip == 0) { - if (hismode != MODE_BROADCAST) - peer->rec = p_xmt; - peer->dst = rbufp->recv_time; - } - peer->xmt = p_xmt; - /* * If this is a crypto_NAK, the server cannot authenticate a * client packet. The server might have just changed keys. Clear @@ -1284,19 +1274,21 @@ receive( #endif /* AUTOKEY */ return; - /* - * If the digest fails, the client cannot authenticate a server + /* + * If the digest fails or it's missing for authenticated + * associations, the client cannot authenticate a server * reply to a client packet previously sent. The loopback check * is designed to avoid a bait-and-switch attack, which was * possible in past versions. If symmetric modes, return a * crypto-NAK. The peer should restart the protocol. */ - } else if (!AUTH(has_mac || (restrict_mask & RES_DONTTRUST), - is_authentic)) { + } else if (!AUTH(peer->keyid || has_mac || + (restrict_mask & RES_DONTTRUST), is_authentic)) { report_event(PEVNT_AUTH, peer, "digest"); peer->flash |= TEST5; /* bad auth */ peer->badauth++; - if (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE) + if (has_mac && + (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE)) fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask); if (peer->flags & FLAG_PREEMPT) { unpeer(peer); @@ -1309,6 +1301,16 @@ receive( return; } + /* + * Update the state variables. + */ + if (peer->flip == 0) { + if (hismode != MODE_BROADCAST) + peer->rec = p_xmt; + peer->dst = rbufp->recv_time; + } + peer->xmt = p_xmt; + /* * Set the peer ppoll to the maximum of the packet ppoll and the * peer minpoll. If a kiss-o'-death, set the peer minpoll to @@ -1577,7 +1579,7 @@ process_packet( /* * If the peer was previously unreachable, raise a trap. In any * case, mark it reachable. - */ + */ if (!peer->reach) { report_event(PEVNT_REACH, peer, NULL); peer->timereachable = current_time; @@ -1644,8 +1646,8 @@ process_packet( * Interleaved broadcast mode. Use interleaved timestamps. * t1 = peer->borg, t2 = p_org, t3 = p_org, t4 = aorg */ - if (peer->flags & FLAG_XB) { - ci = p_org; /* delay */ + if (peer->flags & FLAG_XB) { + ci = p_org; /* delay */ L_SUB(&ci, &peer->aorg); LFPTOD(&ci, t34); ci = p_org; /* t2 - t1 */ @@ -1774,7 +1776,7 @@ process_packet( p_del, peer->r21 / 1e3, peer->r34 / 1e3, td); #endif - } + } #endif /* ASSYM */ /* @@ -2240,7 +2242,7 @@ clock_filter( for (i = NTP_SHIFT - 1; i >= 0; i--) { if (i != 0) peer->filter_disp[j] += dtemp; - if (peer->filter_disp[j] >= MAXDISPERSE) { + if (peer->filter_disp[j] >= MAXDISPERSE) { peer->filter_disp[j] = MAXDISPERSE; dst[i] = MAXDISPERSE; } else if (peer->update - peer->filter_epoch[j] > @@ -2255,7 +2257,7 @@ clock_filter( } /* - * If the clock has stabilized, sort the samples by distance. + * If the clock has stabilized, sort the samples by distance. */ if (freq_cnt == 0) { for (i = 1; i < NTP_SHIFT; i++) { @@ -2289,7 +2291,7 @@ clock_filter( continue; m++; } - + /* * Compute the dispersion and jitter. The dispersion is weighted * exponentially by NTP_FWEIGHT (0.5) so it is normalized close @@ -2493,9 +2495,9 @@ clock_select(void) /* * If this peer could have the orphan parent * as a synchronization ancestor, exclude it - * from selection to avoid forming a + * from selection to avoid forming a * synchronization loop within the orphan mesh, - * triggering stratum climb to infinity + * triggering stratum climb to infinity * instability. Peers at stratum higher than * the orphan stratum could have the orphan * parent in ancestry so are excluded. @@ -2603,7 +2605,7 @@ clock_select(void) for (allow = 0; 2 * allow < nlist; allow++) { /* - * Bound the interval (low, high) as the smallest + * Bound the interval (low, high) as the smallest * interval containing points from the most sources. */ n = 0; @@ -2639,7 +2641,7 @@ clock_select(void) * We assert the correct time is contained in the interval, but * the best offset estimate for the interval might not be * contained in the interval. For this purpose, a truechimer is - * defined as the midpoint of an interval that overlaps the + * defined as the midpoint of an interval that overlaps the * intersection interval. */ j = 0; @@ -2659,9 +2661,10 @@ clock_select(void) * include any of them in the cluster population. */ if (peer->flags & FLAG_PPS) { - if (typepps == NULL) + if (typepps == NULL) typepps = peer; - continue; + if (!(peer->flags & FLAG_TSTAMP_PPS)) + continue; } #endif /* REFCLOCK */ @@ -2672,7 +2675,7 @@ clock_select(void) nlist = j; /* - * If no survivors remain at this point, check if the modem + * If no survivors remain at this point, check if the modem * driver, local driver or orphan parent in that order. If so, * nominate the first one found as the only survivor. * Otherwise, give up and leave the island to the rats. @@ -2709,7 +2712,7 @@ clock_select(void) * by root distance. Continue voting as long as there are more * than sys_minclock survivors and the select jitter of the peer * with the worst metric is greater than the minimum peer - * jitter. Stop if we are about to discard a TRUE or PREFER + * jitter. Stop if we are about to discard a TRUE or PREFER * peer, who of course have the immunity idol. */ while (1) { @@ -2815,7 +2818,7 @@ clock_select(void) typesystem = peers[speer].peer; if (osys_peer == NULL || osys_peer == typesystem) { - sys_clockhop = 0; + sys_clockhop = 0; } else if ((x = fabs(typesystem->offset - osys_peer->offset)) < sys_mindisp) { if (sys_clockhop == 0) @@ -3113,7 +3116,7 @@ peer_xmit( * the session key is generated. */ while (1) { - + /* * Allocate and initialize a keylist if not * already done. Then, use the list in inverse @@ -3165,7 +3168,7 @@ peer_xmit( break; /* - * In symmetric modes the parameter, certificate, + * In symmetric modes the parameter, certificate, * identity, cookie and autokey exchanges are * required. The leapsecond exchange is optional. But, a * peer will not believe the other peer until the other @@ -3324,7 +3327,7 @@ peer_xmit( session_key(&peer->dstadr->sin, &peer->srcadr, xkeyid, 0, 2); } - } + } #endif /* AUTOKEY */ /* @@ -3619,7 +3622,7 @@ pool_xmit( return; /* out of addresses, re-query DNS next poll */ restrict_mask = restrictions(rmtadr); if (RES_FLAGS & restrict_mask) - restrict_source(rmtadr, 0, + restrict_source(rmtadr, 0, current_time + POOL_SOLICIT_WINDOW + 1); lcladr = findinterface(rmtadr); memset(&xpkt, 0, sizeof(xpkt)); diff --git a/contrib/ntp/ntpd/ntpd-opts.c b/contrib/ntp/ntpd/ntpd-opts.c index 953f39750de6..910689d1ea97 100644 --- a/contrib/ntp/ntpd/ntpd-opts.c +++ b/contrib/ntp/ntpd/ntpd-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpd-opts.c) * - * It has been AutoGen-ed February 4, 2015 at 02:39:17 AM by AutoGen 5.18.5pre4 + * It has been AutoGen-ed April 7, 2015 at 04:23:14 AM by AutoGen 5.18.5pre4 * From the definitions ntpd-opts.def * and the template file options * @@ -74,8 +74,8 @@ extern FILE * option_usage_fp; /** * static const strings for ntpd options */ -static char const ntpd_opt_strs[3061] = -/* 0 */ "ntpd 4.2.8p1\n" +static char const ntpd_opt_strs[3129] = +/* 0 */ "ntpd 4.2.8p2\n" "Copyright (C) 1992-2015 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" @@ -122,92 +122,95 @@ static char const ntpd_opt_strs[3061] = /* 1460 */ "Allow the first adjustment to be Big\0" /* 1497 */ "PANICGATE\0" /* 1507 */ "panicgate\0" -/* 1517 */ "Jail directory\0" -/* 1532 */ "JAILDIR\0" -/* 1540 */ "jaildir\0" -/* 1548 */ "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs\0" -/* 1627 */ "Listen on an interface name or address\0" -/* 1666 */ "INTERFACE\0" -/* 1676 */ "interface\0" -/* 1686 */ "path to symmetric keys\0" -/* 1709 */ "KEYFILE\0" -/* 1717 */ "keyfile\0" -/* 1725 */ "path to the log file\0" -/* 1746 */ "LOGFILE\0" -/* 1754 */ "logfile\0" -/* 1762 */ "Do not listen to virtual interfaces\0" -/* 1798 */ "NOVIRTUALIPS\0" -/* 1811 */ "novirtualips\0" -/* 1824 */ "Modify Multimedia Timer (Windows only)\0" -/* 1863 */ "MODIFYMMTIMER\0" -/* 1877 */ "modifymmtimer\0" -/* 1891 */ "Do not fork\0" -/* 1903 */ "NOFORK\0" -/* 1910 */ "nofork\0" -/* 1917 */ "Run at high priority\0" -/* 1938 */ "NICE\0" -/* 1943 */ "nice\0" -/* 1948 */ "path to the PID file\0" -/* 1969 */ "PIDFILE\0" -/* 1977 */ "pidfile\0" -/* 1985 */ "Process priority\0" -/* 2002 */ "PRIORITY\0" -/* 2011 */ "priority\0" -/* 2020 */ "Set the time and quit\0" -/* 2042 */ "QUIT\0" -/* 2047 */ "quit\0" -/* 2052 */ "Broadcast/propagation delay\0" -/* 2080 */ "PROPAGATIONDELAY\0" -/* 2097 */ "propagationdelay\0" -/* 2114 */ "Save parsed configuration and quit\0" -/* 2149 */ "SAVECONFIGQUIT\0" -/* 2164 */ "saveconfigquit\0" -/* 2179 */ "Statistics file location\0" -/* 2204 */ "STATSDIR\0" -/* 2213 */ "statsdir\0" -/* 2222 */ "Trusted key number\0" -/* 2241 */ "TRUSTEDKEY\0" -/* 2252 */ "trustedkey\0" -/* 2263 */ "Run as userid (or userid:groupid)\0" -/* 2297 */ "USER\0" -/* 2302 */ "user\0" -/* 2307 */ "interval in seconds between scans for new or dropped interfaces\0" -/* 2371 */ "UPDATEINTERVAL\0" -/* 2386 */ "updateinterval\0" -/* 2401 */ "make ARG an ntp variable (RW)\0" -/* 2431 */ "VAR\0" -/* 2435 */ "var\0" -/* 2439 */ "make ARG an ntp variable (RW|DEF)\0" -/* 2473 */ "DVAR\0" -/* 2478 */ "dvar\0" -/* 2483 */ "Seconds to wait for first clock sync\0" -/* 2520 */ "WAIT_SYNC\0" -/* 2530 */ "wait-sync\0" -/* 2540 */ "Slew up to 600 seconds\0" -/* 2563 */ "SLEW\0" -/* 2568 */ "slew\0" -/* 2573 */ "Use CPU cycle counter (Windows only)\0" -/* 2610 */ "USEPCC\0" -/* 2617 */ "usepcc\0" -/* 2624 */ "Force CPU cycle counter use (Windows only)\0" -/* 2667 */ "PCCFREQ\0" -/* 2675 */ "pccfreq\0" -/* 2683 */ "Register with mDNS as a NTP server\0" -/* 2718 */ "MDNS\0" -/* 2723 */ "mdns\0" -/* 2728 */ "display extended usage information and exit\0" -/* 2772 */ "help\0" -/* 2777 */ "extended usage information passed thru pager\0" -/* 2822 */ "more-help\0" -/* 2832 */ "output version information and exit\0" -/* 2868 */ "version\0" -/* 2876 */ "NTPD\0" -/* 2881 */ "ntpd - NTP daemon program - Ver. 4.2.8p1\n" +/* 1517 */ "Step any initial offset correction.\0" +/* 1553 */ "FORCE_STEP_ONCE\0" +/* 1569 */ "force-step-once\0" +/* 1585 */ "Jail directory\0" +/* 1600 */ "JAILDIR\0" +/* 1608 */ "jaildir\0" +/* 1616 */ "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs\0" +/* 1695 */ "Listen on an interface name or address\0" +/* 1734 */ "INTERFACE\0" +/* 1744 */ "interface\0" +/* 1754 */ "path to symmetric keys\0" +/* 1777 */ "KEYFILE\0" +/* 1785 */ "keyfile\0" +/* 1793 */ "path to the log file\0" +/* 1814 */ "LOGFILE\0" +/* 1822 */ "logfile\0" +/* 1830 */ "Do not listen to virtual interfaces\0" +/* 1866 */ "NOVIRTUALIPS\0" +/* 1879 */ "novirtualips\0" +/* 1892 */ "Modify Multimedia Timer (Windows only)\0" +/* 1931 */ "MODIFYMMTIMER\0" +/* 1945 */ "modifymmtimer\0" +/* 1959 */ "Do not fork\0" +/* 1971 */ "NOFORK\0" +/* 1978 */ "nofork\0" +/* 1985 */ "Run at high priority\0" +/* 2006 */ "NICE\0" +/* 2011 */ "nice\0" +/* 2016 */ "path to the PID file\0" +/* 2037 */ "PIDFILE\0" +/* 2045 */ "pidfile\0" +/* 2053 */ "Process priority\0" +/* 2070 */ "PRIORITY\0" +/* 2079 */ "priority\0" +/* 2088 */ "Set the time and quit\0" +/* 2110 */ "QUIT\0" +/* 2115 */ "quit\0" +/* 2120 */ "Broadcast/propagation delay\0" +/* 2148 */ "PROPAGATIONDELAY\0" +/* 2165 */ "propagationdelay\0" +/* 2182 */ "Save parsed configuration and quit\0" +/* 2217 */ "SAVECONFIGQUIT\0" +/* 2232 */ "saveconfigquit\0" +/* 2247 */ "Statistics file location\0" +/* 2272 */ "STATSDIR\0" +/* 2281 */ "statsdir\0" +/* 2290 */ "Trusted key number\0" +/* 2309 */ "TRUSTEDKEY\0" +/* 2320 */ "trustedkey\0" +/* 2331 */ "Run as userid (or userid:groupid)\0" +/* 2365 */ "USER\0" +/* 2370 */ "user\0" +/* 2375 */ "interval in seconds between scans for new or dropped interfaces\0" +/* 2439 */ "UPDATEINTERVAL\0" +/* 2454 */ "updateinterval\0" +/* 2469 */ "make ARG an ntp variable (RW)\0" +/* 2499 */ "VAR\0" +/* 2503 */ "var\0" +/* 2507 */ "make ARG an ntp variable (RW|DEF)\0" +/* 2541 */ "DVAR\0" +/* 2546 */ "dvar\0" +/* 2551 */ "Seconds to wait for first clock sync\0" +/* 2588 */ "WAIT_SYNC\0" +/* 2598 */ "wait-sync\0" +/* 2608 */ "Slew up to 600 seconds\0" +/* 2631 */ "SLEW\0" +/* 2636 */ "slew\0" +/* 2641 */ "Use CPU cycle counter (Windows only)\0" +/* 2678 */ "USEPCC\0" +/* 2685 */ "usepcc\0" +/* 2692 */ "Force CPU cycle counter use (Windows only)\0" +/* 2735 */ "PCCFREQ\0" +/* 2743 */ "pccfreq\0" +/* 2751 */ "Register with mDNS as a NTP server\0" +/* 2786 */ "MDNS\0" +/* 2791 */ "mdns\0" +/* 2796 */ "display extended usage information and exit\0" +/* 2840 */ "help\0" +/* 2845 */ "extended usage information passed thru pager\0" +/* 2890 */ "more-help\0" +/* 2900 */ "output version information and exit\0" +/* 2936 */ "version\0" +/* 2944 */ "NTPD\0" +/* 2949 */ "ntpd - NTP daemon program - Ver. 4.2.8p2\n" "Usage: %s [ - [] | --[{=| }] ]... \\\n" "\t\t[ ... ]\n\0" -/* 3012 */ "http://bugs.ntp.org, bugs@ntp.org\0" -/* 3046 */ "\n\0" -/* 3048 */ "ntpd 4.2.8p1"; +/* 3080 */ "http://bugs.ntp.org, bugs@ntp.org\0" +/* 3114 */ "\n\0" +/* 3116 */ "ntpd 4.2.8p2"; /** * ipv4 option description with @@ -348,16 +351,28 @@ static int const aAuthnoreqCantList[] = { /** Compiled in flag settings for the panicgate option */ #define PANICGATE_FLAGS (OPTST_DISABLED) +/** + * force_step_once option description: + */ +/** Descriptive text for the force_step_once option */ +#define FORCE_STEP_ONCE_DESC (ntpd_opt_strs+1517) +/** Upper-cased name for the force_step_once option */ +#define FORCE_STEP_ONCE_NAME (ntpd_opt_strs+1553) +/** Name string for the force_step_once option */ +#define FORCE_STEP_ONCE_name (ntpd_opt_strs+1569) +/** Compiled in flag settings for the force_step_once option */ +#define FORCE_STEP_ONCE_FLAGS (OPTST_DISABLED) + /** * jaildir option description: */ #ifdef HAVE_DROPROOT /** Descriptive text for the jaildir option */ -#define JAILDIR_DESC (ntpd_opt_strs+1517) +#define JAILDIR_DESC (ntpd_opt_strs+1585) /** Upper-cased name for the jaildir option */ -#define JAILDIR_NAME (ntpd_opt_strs+1532) +#define JAILDIR_NAME (ntpd_opt_strs+1600) /** Name string for the jaildir option */ -#define JAILDIR_name (ntpd_opt_strs+1540) +#define JAILDIR_name (ntpd_opt_strs+1608) /** Compiled in flag settings for the jaildir option */ #define JAILDIR_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -366,19 +381,19 @@ static int const aAuthnoreqCantList[] = { #define JAILDIR_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) #define JAILDIR_NAME NULL /** Descriptive text for the jaildir option */ -#define JAILDIR_DESC (ntpd_opt_strs+1548) -#define JAILDIR_name (ntpd_opt_strs+1540) +#define JAILDIR_DESC (ntpd_opt_strs+1616) +#define JAILDIR_name (ntpd_opt_strs+1608) #endif /* HAVE_DROPROOT */ /** * interface option description: */ /** Descriptive text for the interface option */ -#define INTERFACE_DESC (ntpd_opt_strs+1627) +#define INTERFACE_DESC (ntpd_opt_strs+1695) /** Upper-cased name for the interface option */ -#define INTERFACE_NAME (ntpd_opt_strs+1666) +#define INTERFACE_NAME (ntpd_opt_strs+1734) /** Name string for the interface option */ -#define INTERFACE_name (ntpd_opt_strs+1676) +#define INTERFACE_name (ntpd_opt_strs+1744) /** Compiled in flag settings for the interface option */ #define INTERFACE_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -387,11 +402,11 @@ static int const aAuthnoreqCantList[] = { * keyfile option description: */ /** Descriptive text for the keyfile option */ -#define KEYFILE_DESC (ntpd_opt_strs+1686) +#define KEYFILE_DESC (ntpd_opt_strs+1754) /** Upper-cased name for the keyfile option */ -#define KEYFILE_NAME (ntpd_opt_strs+1709) +#define KEYFILE_NAME (ntpd_opt_strs+1777) /** Name string for the keyfile option */ -#define KEYFILE_name (ntpd_opt_strs+1717) +#define KEYFILE_name (ntpd_opt_strs+1785) /** Compiled in flag settings for the keyfile option */ #define KEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -400,11 +415,11 @@ static int const aAuthnoreqCantList[] = { * logfile option description: */ /** Descriptive text for the logfile option */ -#define LOGFILE_DESC (ntpd_opt_strs+1725) +#define LOGFILE_DESC (ntpd_opt_strs+1793) /** Upper-cased name for the logfile option */ -#define LOGFILE_NAME (ntpd_opt_strs+1746) +#define LOGFILE_NAME (ntpd_opt_strs+1814) /** Name string for the logfile option */ -#define LOGFILE_name (ntpd_opt_strs+1754) +#define LOGFILE_name (ntpd_opt_strs+1822) /** Compiled in flag settings for the logfile option */ #define LOGFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -413,11 +428,11 @@ static int const aAuthnoreqCantList[] = { * novirtualips option description: */ /** Descriptive text for the novirtualips option */ -#define NOVIRTUALIPS_DESC (ntpd_opt_strs+1762) +#define NOVIRTUALIPS_DESC (ntpd_opt_strs+1830) /** Upper-cased name for the novirtualips option */ -#define NOVIRTUALIPS_NAME (ntpd_opt_strs+1798) +#define NOVIRTUALIPS_NAME (ntpd_opt_strs+1866) /** Name string for the novirtualips option */ -#define NOVIRTUALIPS_name (ntpd_opt_strs+1811) +#define NOVIRTUALIPS_name (ntpd_opt_strs+1879) /** Compiled in flag settings for the novirtualips option */ #define NOVIRTUALIPS_FLAGS (OPTST_DISABLED) @@ -426,11 +441,11 @@ static int const aAuthnoreqCantList[] = { */ #ifdef SYS_WINNT /** Descriptive text for the modifymmtimer option */ -#define MODIFYMMTIMER_DESC (ntpd_opt_strs+1824) +#define MODIFYMMTIMER_DESC (ntpd_opt_strs+1892) /** Upper-cased name for the modifymmtimer option */ -#define MODIFYMMTIMER_NAME (ntpd_opt_strs+1863) +#define MODIFYMMTIMER_NAME (ntpd_opt_strs+1931) /** Name string for the modifymmtimer option */ -#define MODIFYMMTIMER_name (ntpd_opt_strs+1877) +#define MODIFYMMTIMER_name (ntpd_opt_strs+1945) /** Compiled in flag settings for the modifymmtimer option */ #define MODIFYMMTIMER_FLAGS (OPTST_DISABLED) @@ -446,11 +461,11 @@ static int const aAuthnoreqCantList[] = { * "Must also have options" and "Incompatible options": */ /** Descriptive text for the nofork option */ -#define NOFORK_DESC (ntpd_opt_strs+1891) +#define NOFORK_DESC (ntpd_opt_strs+1959) /** Upper-cased name for the nofork option */ -#define NOFORK_NAME (ntpd_opt_strs+1903) +#define NOFORK_NAME (ntpd_opt_strs+1971) /** Name string for the nofork option */ -#define NOFORK_name (ntpd_opt_strs+1910) +#define NOFORK_name (ntpd_opt_strs+1978) /** Other options that appear in conjunction with the nofork option */ static int const aNoforkCantList[] = { INDEX_OPT_WAIT_SYNC, NO_EQUIVALENT }; @@ -461,11 +476,11 @@ static int const aNoforkCantList[] = { * nice option description: */ /** Descriptive text for the nice option */ -#define NICE_DESC (ntpd_opt_strs+1917) +#define NICE_DESC (ntpd_opt_strs+1985) /** Upper-cased name for the nice option */ -#define NICE_NAME (ntpd_opt_strs+1938) +#define NICE_NAME (ntpd_opt_strs+2006) /** Name string for the nice option */ -#define NICE_name (ntpd_opt_strs+1943) +#define NICE_name (ntpd_opt_strs+2011) /** Compiled in flag settings for the nice option */ #define NICE_FLAGS (OPTST_DISABLED) @@ -473,11 +488,11 @@ static int const aNoforkCantList[] = { * pidfile option description: */ /** Descriptive text for the pidfile option */ -#define PIDFILE_DESC (ntpd_opt_strs+1948) +#define PIDFILE_DESC (ntpd_opt_strs+2016) /** Upper-cased name for the pidfile option */ -#define PIDFILE_NAME (ntpd_opt_strs+1969) +#define PIDFILE_NAME (ntpd_opt_strs+2037) /** Name string for the pidfile option */ -#define PIDFILE_name (ntpd_opt_strs+1977) +#define PIDFILE_name (ntpd_opt_strs+2045) /** Compiled in flag settings for the pidfile option */ #define PIDFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -486,11 +501,11 @@ static int const aNoforkCantList[] = { * priority option description: */ /** Descriptive text for the priority option */ -#define PRIORITY_DESC (ntpd_opt_strs+1985) +#define PRIORITY_DESC (ntpd_opt_strs+2053) /** Upper-cased name for the priority option */ -#define PRIORITY_NAME (ntpd_opt_strs+2002) +#define PRIORITY_NAME (ntpd_opt_strs+2070) /** Name string for the priority option */ -#define PRIORITY_name (ntpd_opt_strs+2011) +#define PRIORITY_name (ntpd_opt_strs+2079) /** Compiled in flag settings for the priority option */ #define PRIORITY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) @@ -500,11 +515,11 @@ static int const aNoforkCantList[] = { * "Must also have options" and "Incompatible options": */ /** Descriptive text for the quit option */ -#define QUIT_DESC (ntpd_opt_strs+2020) +#define QUIT_DESC (ntpd_opt_strs+2088) /** Upper-cased name for the quit option */ -#define QUIT_NAME (ntpd_opt_strs+2042) +#define QUIT_NAME (ntpd_opt_strs+2110) /** Name string for the quit option */ -#define QUIT_name (ntpd_opt_strs+2047) +#define QUIT_name (ntpd_opt_strs+2115) /** Other options that appear in conjunction with the quit option */ static int const aQuitCantList[] = { INDEX_OPT_SAVECONFIGQUIT, @@ -516,11 +531,11 @@ static int const aQuitCantList[] = { * propagationdelay option description: */ /** Descriptive text for the propagationdelay option */ -#define PROPAGATIONDELAY_DESC (ntpd_opt_strs+2052) +#define PROPAGATIONDELAY_DESC (ntpd_opt_strs+2120) /** Upper-cased name for the propagationdelay option */ -#define PROPAGATIONDELAY_NAME (ntpd_opt_strs+2080) +#define PROPAGATIONDELAY_NAME (ntpd_opt_strs+2148) /** Name string for the propagationdelay option */ -#define PROPAGATIONDELAY_name (ntpd_opt_strs+2097) +#define PROPAGATIONDELAY_name (ntpd_opt_strs+2165) /** Compiled in flag settings for the propagationdelay option */ #define PROPAGATIONDELAY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -531,11 +546,11 @@ static int const aQuitCantList[] = { */ #ifdef SAVECONFIG /** Descriptive text for the saveconfigquit option */ -#define SAVECONFIGQUIT_DESC (ntpd_opt_strs+2114) +#define SAVECONFIGQUIT_DESC (ntpd_opt_strs+2182) /** Upper-cased name for the saveconfigquit option */ -#define SAVECONFIGQUIT_NAME (ntpd_opt_strs+2149) +#define SAVECONFIGQUIT_NAME (ntpd_opt_strs+2217) /** Name string for the saveconfigquit option */ -#define SAVECONFIGQUIT_name (ntpd_opt_strs+2164) +#define SAVECONFIGQUIT_name (ntpd_opt_strs+2232) /** Other options that appear in conjunction with the saveconfigquit option */ static int const aSaveconfigquitCantList[] = { INDEX_OPT_QUIT, @@ -556,11 +571,11 @@ static int const aSaveconfigquitCantList[] = { * statsdir option description: */ /** Descriptive text for the statsdir option */ -#define STATSDIR_DESC (ntpd_opt_strs+2179) +#define STATSDIR_DESC (ntpd_opt_strs+2247) /** Upper-cased name for the statsdir option */ -#define STATSDIR_NAME (ntpd_opt_strs+2204) +#define STATSDIR_NAME (ntpd_opt_strs+2272) /** Name string for the statsdir option */ -#define STATSDIR_name (ntpd_opt_strs+2213) +#define STATSDIR_name (ntpd_opt_strs+2281) /** Compiled in flag settings for the statsdir option */ #define STATSDIR_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -569,11 +584,11 @@ static int const aSaveconfigquitCantList[] = { * trustedkey option description: */ /** Descriptive text for the trustedkey option */ -#define TRUSTEDKEY_DESC (ntpd_opt_strs+2222) +#define TRUSTEDKEY_DESC (ntpd_opt_strs+2290) /** Upper-cased name for the trustedkey option */ -#define TRUSTEDKEY_NAME (ntpd_opt_strs+2241) +#define TRUSTEDKEY_NAME (ntpd_opt_strs+2309) /** Name string for the trustedkey option */ -#define TRUSTEDKEY_name (ntpd_opt_strs+2252) +#define TRUSTEDKEY_name (ntpd_opt_strs+2320) /** Compiled in flag settings for the trustedkey option */ #define TRUSTEDKEY_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -583,11 +598,11 @@ static int const aSaveconfigquitCantList[] = { */ #ifdef HAVE_DROPROOT /** Descriptive text for the user option */ -#define USER_DESC (ntpd_opt_strs+2263) +#define USER_DESC (ntpd_opt_strs+2331) /** Upper-cased name for the user option */ -#define USER_NAME (ntpd_opt_strs+2297) +#define USER_NAME (ntpd_opt_strs+2365) /** Name string for the user option */ -#define USER_name (ntpd_opt_strs+2302) +#define USER_name (ntpd_opt_strs+2370) /** Compiled in flag settings for the user option */ #define USER_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -596,19 +611,19 @@ static int const aSaveconfigquitCantList[] = { #define USER_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) #define USER_NAME NULL /** Descriptive text for the user option */ -#define USER_DESC (ntpd_opt_strs+1548) -#define USER_name (ntpd_opt_strs+2302) +#define USER_DESC (ntpd_opt_strs+1616) +#define USER_name (ntpd_opt_strs+2370) #endif /* HAVE_DROPROOT */ /** * updateinterval option description: */ /** Descriptive text for the updateinterval option */ -#define UPDATEINTERVAL_DESC (ntpd_opt_strs+2307) +#define UPDATEINTERVAL_DESC (ntpd_opt_strs+2375) /** Upper-cased name for the updateinterval option */ -#define UPDATEINTERVAL_NAME (ntpd_opt_strs+2371) +#define UPDATEINTERVAL_NAME (ntpd_opt_strs+2439) /** Name string for the updateinterval option */ -#define UPDATEINTERVAL_name (ntpd_opt_strs+2386) +#define UPDATEINTERVAL_name (ntpd_opt_strs+2454) /** Compiled in flag settings for the updateinterval option */ #define UPDATEINTERVAL_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) @@ -617,11 +632,11 @@ static int const aSaveconfigquitCantList[] = { * var option description: */ /** Descriptive text for the var option */ -#define VAR_DESC (ntpd_opt_strs+2401) +#define VAR_DESC (ntpd_opt_strs+2469) /** Upper-cased name for the var option */ -#define VAR_NAME (ntpd_opt_strs+2431) +#define VAR_NAME (ntpd_opt_strs+2499) /** Name string for the var option */ -#define VAR_name (ntpd_opt_strs+2435) +#define VAR_name (ntpd_opt_strs+2503) /** Compiled in flag settings for the var option */ #define VAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -630,11 +645,11 @@ static int const aSaveconfigquitCantList[] = { * dvar option description: */ /** Descriptive text for the dvar option */ -#define DVAR_DESC (ntpd_opt_strs+2439) +#define DVAR_DESC (ntpd_opt_strs+2507) /** Upper-cased name for the dvar option */ -#define DVAR_NAME (ntpd_opt_strs+2473) +#define DVAR_NAME (ntpd_opt_strs+2541) /** Name string for the dvar option */ -#define DVAR_name (ntpd_opt_strs+2478) +#define DVAR_name (ntpd_opt_strs+2546) /** Compiled in flag settings for the dvar option */ #define DVAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -645,11 +660,11 @@ static int const aSaveconfigquitCantList[] = { */ #ifdef HAVE_WORKING_FORK /** Descriptive text for the wait-sync option */ -#define WAIT_SYNC_DESC (ntpd_opt_strs+2483) +#define WAIT_SYNC_DESC (ntpd_opt_strs+2551) /** Upper-cased name for the wait-sync option */ -#define WAIT_SYNC_NAME (ntpd_opt_strs+2520) +#define WAIT_SYNC_NAME (ntpd_opt_strs+2588) /** Name string for the wait-sync option */ -#define WAIT_SYNC_name (ntpd_opt_strs+2530) +#define WAIT_SYNC_name (ntpd_opt_strs+2598) /** Other options that appear in conjunction with the wait-sync option */ static int const aWait_SyncCantList[] = { INDEX_OPT_NOFORK, @@ -671,11 +686,11 @@ static int const aWait_SyncCantList[] = { * slew option description: */ /** Descriptive text for the slew option */ -#define SLEW_DESC (ntpd_opt_strs+2540) +#define SLEW_DESC (ntpd_opt_strs+2608) /** Upper-cased name for the slew option */ -#define SLEW_NAME (ntpd_opt_strs+2563) +#define SLEW_NAME (ntpd_opt_strs+2631) /** Name string for the slew option */ -#define SLEW_name (ntpd_opt_strs+2568) +#define SLEW_name (ntpd_opt_strs+2636) /** Compiled in flag settings for the slew option */ #define SLEW_FLAGS (OPTST_DISABLED) @@ -684,11 +699,11 @@ static int const aWait_SyncCantList[] = { */ #ifdef SYS_WINNT /** Descriptive text for the usepcc option */ -#define USEPCC_DESC (ntpd_opt_strs+2573) +#define USEPCC_DESC (ntpd_opt_strs+2641) /** Upper-cased name for the usepcc option */ -#define USEPCC_NAME (ntpd_opt_strs+2610) +#define USEPCC_NAME (ntpd_opt_strs+2678) /** Name string for the usepcc option */ -#define USEPCC_name (ntpd_opt_strs+2617) +#define USEPCC_name (ntpd_opt_strs+2685) /** Compiled in flag settings for the usepcc option */ #define USEPCC_FLAGS (OPTST_DISABLED) @@ -704,11 +719,11 @@ static int const aWait_SyncCantList[] = { */ #ifdef SYS_WINNT /** Descriptive text for the pccfreq option */ -#define PCCFREQ_DESC (ntpd_opt_strs+2624) +#define PCCFREQ_DESC (ntpd_opt_strs+2692) /** Upper-cased name for the pccfreq option */ -#define PCCFREQ_NAME (ntpd_opt_strs+2667) +#define PCCFREQ_NAME (ntpd_opt_strs+2735) /** Name string for the pccfreq option */ -#define PCCFREQ_name (ntpd_opt_strs+2675) +#define PCCFREQ_name (ntpd_opt_strs+2743) /** Compiled in flag settings for the pccfreq option */ #define PCCFREQ_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -725,11 +740,11 @@ static int const aWait_SyncCantList[] = { */ #ifdef HAVE_DNSREGISTRATION /** Descriptive text for the mdns option */ -#define MDNS_DESC (ntpd_opt_strs+2683) +#define MDNS_DESC (ntpd_opt_strs+2751) /** Upper-cased name for the mdns option */ -#define MDNS_NAME (ntpd_opt_strs+2718) +#define MDNS_NAME (ntpd_opt_strs+2786) /** Name string for the mdns option */ -#define MDNS_name (ntpd_opt_strs+2723) +#define MDNS_name (ntpd_opt_strs+2791) /** Compiled in flag settings for the mdns option */ #define MDNS_FLAGS (OPTST_DISABLED) @@ -743,11 +758,11 @@ static int const aWait_SyncCantList[] = { /* * Help/More_Help/Version option descriptions: */ -#define HELP_DESC (ntpd_opt_strs+2728) -#define HELP_name (ntpd_opt_strs+2772) +#define HELP_DESC (ntpd_opt_strs+2796) +#define HELP_name (ntpd_opt_strs+2840) #ifdef HAVE_WORKING_FORK -#define MORE_HELP_DESC (ntpd_opt_strs+2777) -#define MORE_HELP_name (ntpd_opt_strs+2822) +#define MORE_HELP_DESC (ntpd_opt_strs+2845) +#define MORE_HELP_name (ntpd_opt_strs+2890) #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else #define MORE_HELP_DESC HELP_DESC @@ -760,8 +775,8 @@ static int const aWait_SyncCantList[] = { # define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT) #endif -#define VER_DESC (ntpd_opt_strs+2832) -#define VER_name (ntpd_opt_strs+2868) +#define VER_DESC (ntpd_opt_strs+2900) +#define VER_name (ntpd_opt_strs+2936) /** * Declare option callback procedures */ @@ -901,8 +916,20 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PANICGATE_DESC, PANICGATE_NAME, PANICGATE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 10, VALUE_OPT_JAILDIR, - /* equiv idx, value */ 10, VALUE_OPT_JAILDIR, + { /* entry idx, value */ 10, VALUE_OPT_FORCE_STEP_ONCE, + /* equiv idx, value */ 10, VALUE_OPT_FORCE_STEP_ONCE, + /* equivalenced to */ NO_EQUIVALENT, + /* min, max, act ct */ 0, 1, 0, + /* opt state flags */ FORCE_STEP_ONCE_FLAGS, 0, + /* last opt argumnt */ { NULL }, /* --force_step_once */ + /* arg list/cookie */ NULL, + /* must/cannot opts */ NULL, NULL, + /* option proc */ NULL, + /* desc, NAME, name */ FORCE_STEP_ONCE_DESC, FORCE_STEP_ONCE_NAME, FORCE_STEP_ONCE_name, + /* disablement strs */ NULL, NULL }, + + { /* entry idx, value */ 11, VALUE_OPT_JAILDIR, + /* equiv idx, value */ 11, VALUE_OPT_JAILDIR, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ JAILDIR_FLAGS, 0, @@ -913,8 +940,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ JAILDIR_DESC, JAILDIR_NAME, JAILDIR_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 11, VALUE_OPT_INTERFACE, - /* equiv idx, value */ 11, VALUE_OPT_INTERFACE, + { /* entry idx, value */ 12, VALUE_OPT_INTERFACE, + /* equiv idx, value */ 12, VALUE_OPT_INTERFACE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ INTERFACE_FLAGS, 0, @@ -925,8 +952,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ INTERFACE_DESC, INTERFACE_NAME, INTERFACE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 12, VALUE_OPT_KEYFILE, - /* equiv idx, value */ 12, VALUE_OPT_KEYFILE, + { /* entry idx, value */ 13, VALUE_OPT_KEYFILE, + /* equiv idx, value */ 13, VALUE_OPT_KEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ KEYFILE_FLAGS, 0, @@ -937,8 +964,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ KEYFILE_DESC, KEYFILE_NAME, KEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 13, VALUE_OPT_LOGFILE, - /* equiv idx, value */ 13, VALUE_OPT_LOGFILE, + { /* entry idx, value */ 14, VALUE_OPT_LOGFILE, + /* equiv idx, value */ 14, VALUE_OPT_LOGFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LOGFILE_FLAGS, 0, @@ -949,8 +976,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ LOGFILE_DESC, LOGFILE_NAME, LOGFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 14, VALUE_OPT_NOVIRTUALIPS, - /* equiv idx, value */ 14, VALUE_OPT_NOVIRTUALIPS, + { /* entry idx, value */ 15, VALUE_OPT_NOVIRTUALIPS, + /* equiv idx, value */ 15, VALUE_OPT_NOVIRTUALIPS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NOVIRTUALIPS_FLAGS, 0, @@ -961,8 +988,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NOVIRTUALIPS_DESC, NOVIRTUALIPS_NAME, NOVIRTUALIPS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 15, VALUE_OPT_MODIFYMMTIMER, - /* equiv idx, value */ 15, VALUE_OPT_MODIFYMMTIMER, + { /* entry idx, value */ 16, VALUE_OPT_MODIFYMMTIMER, + /* equiv idx, value */ 16, VALUE_OPT_MODIFYMMTIMER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MODIFYMMTIMER_FLAGS, 0, @@ -973,8 +1000,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ MODIFYMMTIMER_DESC, MODIFYMMTIMER_NAME, MODIFYMMTIMER_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 16, VALUE_OPT_NOFORK, - /* equiv idx, value */ 16, VALUE_OPT_NOFORK, + { /* entry idx, value */ 17, VALUE_OPT_NOFORK, + /* equiv idx, value */ 17, VALUE_OPT_NOFORK, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NOFORK_FLAGS, 0, @@ -985,8 +1012,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NOFORK_DESC, NOFORK_NAME, NOFORK_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 17, VALUE_OPT_NICE, - /* equiv idx, value */ 17, VALUE_OPT_NICE, + { /* entry idx, value */ 18, VALUE_OPT_NICE, + /* equiv idx, value */ 18, VALUE_OPT_NICE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NICE_FLAGS, 0, @@ -997,8 +1024,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NICE_DESC, NICE_NAME, NICE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 18, VALUE_OPT_PIDFILE, - /* equiv idx, value */ 18, VALUE_OPT_PIDFILE, + { /* entry idx, value */ 19, VALUE_OPT_PIDFILE, + /* equiv idx, value */ 19, VALUE_OPT_PIDFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PIDFILE_FLAGS, 0, @@ -1009,8 +1036,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PIDFILE_DESC, PIDFILE_NAME, PIDFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 19, VALUE_OPT_PRIORITY, - /* equiv idx, value */ 19, VALUE_OPT_PRIORITY, + { /* entry idx, value */ 20, VALUE_OPT_PRIORITY, + /* equiv idx, value */ 20, VALUE_OPT_PRIORITY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PRIORITY_FLAGS, 0, @@ -1021,8 +1048,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 20, VALUE_OPT_QUIT, - /* equiv idx, value */ 20, VALUE_OPT_QUIT, + { /* entry idx, value */ 21, VALUE_OPT_QUIT, + /* equiv idx, value */ 21, VALUE_OPT_QUIT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ QUIT_FLAGS, 0, @@ -1033,8 +1060,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ QUIT_DESC, QUIT_NAME, QUIT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY, - /* equiv idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY, + { /* entry idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY, + /* equiv idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PROPAGATIONDELAY_FLAGS, 0, @@ -1045,8 +1072,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PROPAGATIONDELAY_DESC, PROPAGATIONDELAY_NAME, PROPAGATIONDELAY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 22, VALUE_OPT_SAVECONFIGQUIT, - /* equiv idx, value */ 22, VALUE_OPT_SAVECONFIGQUIT, + { /* entry idx, value */ 23, VALUE_OPT_SAVECONFIGQUIT, + /* equiv idx, value */ 23, VALUE_OPT_SAVECONFIGQUIT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SAVECONFIGQUIT_FLAGS, 0, @@ -1057,8 +1084,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SAVECONFIGQUIT_DESC, SAVECONFIGQUIT_NAME, SAVECONFIGQUIT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 23, VALUE_OPT_STATSDIR, - /* equiv idx, value */ 23, VALUE_OPT_STATSDIR, + { /* entry idx, value */ 24, VALUE_OPT_STATSDIR, + /* equiv idx, value */ 24, VALUE_OPT_STATSDIR, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ STATSDIR_FLAGS, 0, @@ -1069,8 +1096,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ STATSDIR_DESC, STATSDIR_NAME, STATSDIR_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 24, VALUE_OPT_TRUSTEDKEY, - /* equiv idx, value */ 24, VALUE_OPT_TRUSTEDKEY, + { /* entry idx, value */ 25, VALUE_OPT_TRUSTEDKEY, + /* equiv idx, value */ 25, VALUE_OPT_TRUSTEDKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ TRUSTEDKEY_FLAGS, 0, @@ -1081,8 +1108,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ TRUSTEDKEY_DESC, TRUSTEDKEY_NAME, TRUSTEDKEY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 25, VALUE_OPT_USER, - /* equiv idx, value */ 25, VALUE_OPT_USER, + { /* entry idx, value */ 26, VALUE_OPT_USER, + /* equiv idx, value */ 26, VALUE_OPT_USER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ USER_FLAGS, 0, @@ -1093,8 +1120,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ USER_DESC, USER_NAME, USER_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 26, VALUE_OPT_UPDATEINTERVAL, - /* equiv idx, value */ 26, VALUE_OPT_UPDATEINTERVAL, + { /* entry idx, value */ 27, VALUE_OPT_UPDATEINTERVAL, + /* equiv idx, value */ 27, VALUE_OPT_UPDATEINTERVAL, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ UPDATEINTERVAL_FLAGS, 0, @@ -1105,8 +1132,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ UPDATEINTERVAL_DESC, UPDATEINTERVAL_NAME, UPDATEINTERVAL_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 27, VALUE_OPT_VAR, - /* equiv idx, value */ 27, VALUE_OPT_VAR, + { /* entry idx, value */ 28, VALUE_OPT_VAR, + /* equiv idx, value */ 28, VALUE_OPT_VAR, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ VAR_FLAGS, 0, @@ -1117,8 +1144,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ VAR_DESC, VAR_NAME, VAR_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 28, VALUE_OPT_DVAR, - /* equiv idx, value */ 28, VALUE_OPT_DVAR, + { /* entry idx, value */ 29, VALUE_OPT_DVAR, + /* equiv idx, value */ 29, VALUE_OPT_DVAR, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ DVAR_FLAGS, 0, @@ -1129,8 +1156,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ DVAR_DESC, DVAR_NAME, DVAR_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 29, VALUE_OPT_WAIT_SYNC, - /* equiv idx, value */ 29, VALUE_OPT_WAIT_SYNC, + { /* entry idx, value */ 30, VALUE_OPT_WAIT_SYNC, + /* equiv idx, value */ 30, VALUE_OPT_WAIT_SYNC, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ WAIT_SYNC_FLAGS, 0, @@ -1141,8 +1168,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ WAIT_SYNC_DESC, WAIT_SYNC_NAME, WAIT_SYNC_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 30, VALUE_OPT_SLEW, - /* equiv idx, value */ 30, VALUE_OPT_SLEW, + { /* entry idx, value */ 31, VALUE_OPT_SLEW, + /* equiv idx, value */ 31, VALUE_OPT_SLEW, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SLEW_FLAGS, 0, @@ -1153,8 +1180,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SLEW_DESC, SLEW_NAME, SLEW_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 31, VALUE_OPT_USEPCC, - /* equiv idx, value */ 31, VALUE_OPT_USEPCC, + { /* entry idx, value */ 32, VALUE_OPT_USEPCC, + /* equiv idx, value */ 32, VALUE_OPT_USEPCC, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ USEPCC_FLAGS, 0, @@ -1165,8 +1192,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ USEPCC_DESC, USEPCC_NAME, USEPCC_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 32, VALUE_OPT_PCCFREQ, - /* equiv idx, value */ 32, VALUE_OPT_PCCFREQ, + { /* entry idx, value */ 33, VALUE_OPT_PCCFREQ, + /* equiv idx, value */ 33, VALUE_OPT_PCCFREQ, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PCCFREQ_FLAGS, 0, @@ -1177,8 +1204,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PCCFREQ_DESC, PCCFREQ_NAME, PCCFREQ_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 33, VALUE_OPT_MDNS, - /* equiv idx, value */ 33, VALUE_OPT_MDNS, + { /* entry idx, value */ 34, VALUE_OPT_MDNS, + /* equiv idx, value */ 34, VALUE_OPT_MDNS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MDNS_FLAGS, 0, @@ -1231,21 +1258,21 @@ static tOptDesc optDesc[OPTION_CT] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** Reference to the upper cased version of ntpd. */ -#define zPROGNAME (ntpd_opt_strs+2876) +#define zPROGNAME (ntpd_opt_strs+2944) /** Reference to the title line for ntpd usage. */ -#define zUsageTitle (ntpd_opt_strs+2881) +#define zUsageTitle (ntpd_opt_strs+2949) /** There is no ntpd configuration file. */ #define zRcName NULL /** There are no directories to search for ntpd config files. */ #define apzHomeList NULL /** The ntpd program bug email address. */ -#define zBugsAddr (ntpd_opt_strs+3012) +#define zBugsAddr (ntpd_opt_strs+3080) /** Clarification/explanation of what ntpd does. */ -#define zExplain (ntpd_opt_strs+3046) +#define zExplain (ntpd_opt_strs+3114) /** Extra detail explaining what ntpd does. */ #define zDetail (NULL) /** The full version string for ntpd. */ -#define zFullVersion (ntpd_opt_strs+3048) +#define zFullVersion (ntpd_opt_strs+3116) /* extracted from optcode.tlib near line 364 */ #if defined(ENABLE_NLS) @@ -1367,7 +1394,7 @@ tOptions ntpdOptions = { NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, - 37 /* full option count */, 34 /* user option count */, + 38 /* full option count */, 35 /* user option count */, ntpd_full_usage, ntpd_short_usage, NULL, NULL, PKGDATADIR, ntpd_packager_info @@ -1502,7 +1529,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntpdOptions.pzCopyright */ - puts(_("ntpd 4.2.8p1\n\ + puts(_("ntpd 4.2.8p2\n\ Copyright (C) 1992-2015 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\ @@ -1552,6 +1579,9 @@ implied warranty.\n")); /* referenced via ntpdOptions.pOptDesc->pzText */ puts(_("Allow the first adjustment to be Big")); + /* referenced via ntpdOptions.pOptDesc->pzText */ + puts(_("Step any initial offset correction.")); + /* referenced via ntpdOptions.pOptDesc->pzText */ puts(_("Jail directory")); @@ -1640,7 +1670,7 @@ implied warranty.\n")); puts(_("output version information and exit")); /* referenced via ntpdOptions.pzUsageTitle */ - puts(_("ntpd - NTP daemon program - Ver. 4.2.8p1\n\ + puts(_("ntpd - NTP daemon program - Ver. 4.2.8p2\n\ Usage: %s [ - [] | --[{=| }] ]... \\\n\ \t\t[ ... ]\n")); @@ -1648,7 +1678,7 @@ Usage: %s [ - [] | --[{=| }] ]... \\\n\ puts(_("\n")); /* referenced via ntpdOptions.pzFullVersion */ - puts(_("ntpd 4.2.8p1")); + puts(_("ntpd 4.2.8p2")); /* referenced via ntpdOptions.pzFullUsage */ puts(_("<<>>")); diff --git a/contrib/ntp/ntpd/ntpd-opts.h b/contrib/ntp/ntpd/ntpd-opts.h index f4eb47b8e355..682aebda41af 100644 --- a/contrib/ntp/ntpd/ntpd-opts.h +++ b/contrib/ntp/ntpd/ntpd-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpd-opts.h) * - * It has been AutoGen-ed February 4, 2015 at 02:39:16 AM by AutoGen 5.18.5pre4 + * It has been AutoGen-ed April 7, 2015 at 04:23:13 AM by AutoGen 5.18.5pre4 * From the definitions ntpd-opts.def * and the template file options * @@ -74,40 +74,41 @@ typedef enum { INDEX_OPT_SET_DEBUG_LEVEL = 7, INDEX_OPT_DRIFTFILE = 8, INDEX_OPT_PANICGATE = 9, - INDEX_OPT_JAILDIR = 10, - INDEX_OPT_INTERFACE = 11, - INDEX_OPT_KEYFILE = 12, - INDEX_OPT_LOGFILE = 13, - INDEX_OPT_NOVIRTUALIPS = 14, - INDEX_OPT_MODIFYMMTIMER = 15, - INDEX_OPT_NOFORK = 16, - INDEX_OPT_NICE = 17, - INDEX_OPT_PIDFILE = 18, - INDEX_OPT_PRIORITY = 19, - INDEX_OPT_QUIT = 20, - INDEX_OPT_PROPAGATIONDELAY = 21, - INDEX_OPT_SAVECONFIGQUIT = 22, - INDEX_OPT_STATSDIR = 23, - INDEX_OPT_TRUSTEDKEY = 24, - INDEX_OPT_USER = 25, - INDEX_OPT_UPDATEINTERVAL = 26, - INDEX_OPT_VAR = 27, - INDEX_OPT_DVAR = 28, - INDEX_OPT_WAIT_SYNC = 29, - INDEX_OPT_SLEW = 30, - INDEX_OPT_USEPCC = 31, - INDEX_OPT_PCCFREQ = 32, - INDEX_OPT_MDNS = 33, - INDEX_OPT_VERSION = 34, - INDEX_OPT_HELP = 35, - INDEX_OPT_MORE_HELP = 36 + INDEX_OPT_FORCE_STEP_ONCE = 10, + INDEX_OPT_JAILDIR = 11, + INDEX_OPT_INTERFACE = 12, + INDEX_OPT_KEYFILE = 13, + INDEX_OPT_LOGFILE = 14, + INDEX_OPT_NOVIRTUALIPS = 15, + INDEX_OPT_MODIFYMMTIMER = 16, + INDEX_OPT_NOFORK = 17, + INDEX_OPT_NICE = 18, + INDEX_OPT_PIDFILE = 19, + INDEX_OPT_PRIORITY = 20, + INDEX_OPT_QUIT = 21, + INDEX_OPT_PROPAGATIONDELAY = 22, + INDEX_OPT_SAVECONFIGQUIT = 23, + INDEX_OPT_STATSDIR = 24, + INDEX_OPT_TRUSTEDKEY = 25, + INDEX_OPT_USER = 26, + INDEX_OPT_UPDATEINTERVAL = 27, + INDEX_OPT_VAR = 28, + INDEX_OPT_DVAR = 29, + INDEX_OPT_WAIT_SYNC = 30, + INDEX_OPT_SLEW = 31, + INDEX_OPT_USEPCC = 32, + INDEX_OPT_PCCFREQ = 33, + INDEX_OPT_MDNS = 34, + INDEX_OPT_VERSION = 35, + INDEX_OPT_HELP = 36, + INDEX_OPT_MORE_HELP = 37 } teOptIndex; /** count of all options for ntpd */ -#define OPTION_CT 37 +#define OPTION_CT 38 /** ntpd version */ -#define NTPD_VERSION "4.2.8p1" +#define NTPD_VERSION "4.2.8p2" /** Full ntpd version text */ -#define NTPD_FULL_VERSION "ntpd 4.2.8p1" +#define NTPD_FULL_VERSION "ntpd 4.2.8p2" /** * Interface defines for all options. Replace "n" with the UPPER_CASED @@ -199,6 +200,10 @@ typedef enum { # warning undefining PANICGATE due to option name conflict # undef PANICGATE # endif +# ifdef FORCE_STEP_ONCE +# warning undefining FORCE_STEP_ONCE due to option name conflict +# undef FORCE_STEP_ONCE +# endif # ifdef JAILDIR # warning undefining JAILDIR due to option name conflict # undef JAILDIR @@ -306,6 +311,7 @@ typedef enum { # undef SET_DEBUG_LEVEL # undef DRIFTFILE # undef PANICGATE +# undef FORCE_STEP_ONCE # undef JAILDIR # undef INTERFACE # undef KEYFILE @@ -348,6 +354,7 @@ typedef enum { #define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt) #define VALUE_OPT_DRIFTFILE 'f' #define VALUE_OPT_PANICGATE 'g' +#define VALUE_OPT_FORCE_STEP_ONCE 'G' #define VALUE_OPT_JAILDIR 'i' #define VALUE_OPT_INTERFACE 'I' #define VALUE_OPT_KEYFILE 'k' diff --git a/contrib/ntp/ntpd/ntpd.1ntpdman b/contrib/ntp/ntpd/ntpd.1ntpdman index 4b37913615d5..5ded89b0cac0 100644 --- a/contrib/ntp/ntpd/ntpd.1ntpdman +++ b/contrib/ntp/ntpd/ntpd.1ntpdman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpd 1ntpdman "04 Feb 2015" "4.2.8p1" "User Commands" +.TH ntpd 1ntpdman "07 Apr 2015" "4.2.8p2" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-YYaqWo/ag-.YaiVo) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-TQays3/ag-5Qaqr3) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:41:54 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:25:45 AM by AutoGen 5.18.5pre4 .\" From the definitions ntpd-opts.def .\" and the template file agman-cmd.tpl .SH NAME @@ -175,7 +175,7 @@ The name and path of the frequency file, by default. This is the same operation as the \fBdriftfile\fP \fIdriftfile\fP -configuration specification in the +configuration specification in the \fI/etc/ntp.conf\fP file. .TP @@ -196,6 +196,20 @@ See the \fBtinker\fP configuration file directive for other options. .TP +.NOP \f\*[B-Font]\-G\f[], \f\*[B-Font]\-\-force\-step\-once\f[] +Step any initial offset correction.. +.sp +Normally, +\fBntpd\fP +steps the time if the time offset exceeds the step threshold, +which is 128 ms by default, and otherwise slews the time. +This option forces the initial offset correction to be stepped, +so the highest time accuracy can be achieved quickly. +However, this may also cause the time to be stepped back +so this option must not be used if +applications requiring monotonic time are running. +See the \fBtinker\fP configuration file directive for other options. +.TP .NOP \f\*[B-Font]\-i\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-jaildir\f[]=\f\*[I-Font]string\f[] Jail directory. .sp @@ -220,7 +234,7 @@ Open the network address given, or all the addresses associated with the given interface name. This option may appear multiple times. This option also implies not opening other addresses, except wildcard and localhost. This option is deprecated. Please consider using the configuration file -\fBinterface\fP command, which is more versatile. +\fBinterface\fP command, which is more versatile. .TP .NOP \f\*[B-Font]\-k\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-keyfile\f[]=\f\*[I-Font]string\f[] path to symmetric keys. diff --git a/contrib/ntp/ntpd/ntpd.1ntpdmdoc b/contrib/ntp/ntpd/ntpd.1ntpdmdoc index 96d77e9fb0db..14b38e40a861 100644 --- a/contrib/ntp/ntpd/ntpd.1ntpdmdoc +++ b/contrib/ntp/ntpd/ntpd.1ntpdmdoc @@ -1,9 +1,9 @@ -.Dd February 4 2015 +.Dd April 7 2015 .Dt NTPD 1ntpdmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc) .\" -.\" It has been AutoGen-ed February 4, 2015 at 02:42:12 AM by AutoGen 5.18.5pre4 +.\" It has been AutoGen-ed April 7, 2015 at 04:26:02 AM by AutoGen 5.18.5pre4 .\" From the definitions ntpd-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -144,7 +144,7 @@ The name and path of the frequency file, by default. This is the same operation as the \fBdriftfile\fP \fIdriftfile\fP -configuration specification in the +configuration specification in the \fI/etc/ntp.conf\fP file. .It Fl g , Fl \-panicgate @@ -163,6 +163,19 @@ options. See the \fBtinker\fP configuration file directive for other options. +.It Fl G , Fl \-force\-step\-once +Step any initial offset correction.. +.sp +Normally, +\fBntpd\fP +steps the time if the time offset exceeds the step threshold, +which is 128 ms by default, and otherwise slews the time. +This option forces the initial offset correction to be stepped, +so the highest time accuracy can be achieved quickly. +However, this may also cause the time to be stepped back +so this option must not be used if +applications requiring monotonic time are running. +See the \fBtinker\fP configuration file directive for other options. .It Fl i Ar string , Fl \-jaildir Ns = Ns Ar string Jail directory. .sp @@ -186,7 +199,7 @@ Open the network address given, or all the addresses associated with the given interface name. This option may appear multiple times. This option also implies not opening other addresses, except wildcard and localhost. This option is deprecated. Please consider using the configuration file -\fBinterface\fP command, which is more versatile. +\fBinterface\fP command, which is more versatile. .It Fl k Ar string , Fl \-keyfile Ns = Ns Ar string path to symmetric keys. .sp diff --git a/contrib/ntp/ntpd/ntpd.c b/contrib/ntp/ntpd/ntpd.c index c017ef34d7db..529e6ce1b0cc 100644 --- a/contrib/ntp/ntpd/ntpd.c +++ b/contrib/ntp/ntpd/ntpd.c @@ -1262,6 +1262,7 @@ finish( if (mdns != NULL) DNSServiceRefDeallocate(mdns); # endif + peer_cleanup(); exit(0); } #endif /* !SIM && SIGDIE1 */ diff --git a/contrib/ntp/ntpd/ntpd.html b/contrib/ntp/ntpd/ntpd.html index fe00030dde2b..8919ee90d241 100644 --- a/contrib/ntp/ntpd/ntpd.html +++ b/contrib/ntp/ntpd/ntpd.html @@ -39,7 +39,7 @@ The program can operate in any of several modes, including client/server, symmetric and broadcast modes, and with both symmetric-key and public-key cryptography. -

This document applies to version 4.2.8p1 of ntpd. +

This document applies to version 4.2.8p2 of ntpd.