diff options
author | Renato Botelho <renato@netgate.com> | 2016-06-06 08:04:21 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-06-06 08:04:21 -0300 |
commit | 4fdb7654ef71cc3e4f0353cc46f28f652cd35605 (patch) | |
tree | 9ac039033dcfd7239eb7ae855bb794ff7d54bfad /contrib | |
parent | a361452ba60086e37d1776522ab3ea1f7e153e9d (diff) | |
parent | 4948c572e7d17a6c09d98026c5a15de8d7b71e09 (diff) | |
download | FreeBSD-src-4fdb7654ef71cc3e4f0353cc46f28f652cd35605.zip FreeBSD-src-4fdb7654ef71cc3e4f0353cc46f28f652cd35605.tar.gz |
Merge remote-tracking branch 'origin/master' into devel-11
Diffstat (limited to 'contrib')
191 files changed, 5142 insertions, 4526 deletions
diff --git a/contrib/bmake/ChangeLog b/contrib/bmake/ChangeLog index b38e1d1..96b8930 100644 --- a/contrib/bmake/ChangeLog +++ b/contrib/bmake/ChangeLog @@ -1,3 +1,26 @@ +2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160604 + Merge with NetBSD make, pick up + o meta.c: missing filemon data is only relevant if we read a + meta file. + Also do not return oodate for a missing metafile if gn->path + points to .CURDIR + +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160602 + Merge with NetBSD make, pick up + o cached_realpath(): avoid hitting filesystem more than necessary. + o meta.c: refactor need_meta decision, add knobs for + missing meta file and filemon data wrt out-of-datedness. + +2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160528 + + * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160512 diff --git a/contrib/bmake/Makefile b/contrib/bmake/Makefile index 8e89ddd..deba694 100644 --- a/contrib/bmake/Makefile +++ b/contrib/bmake/Makefile @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.63 2016/05/12 20:34:46 sjg Exp $ +# $Id: Makefile,v 1.66 2016/06/04 22:21:15 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20160512 +_MAKE_VERSION= 20160604 PROG= bmake diff --git a/contrib/bmake/bmake.1 b/contrib/bmake/bmake.1 index 27532d8..93cf7ac 100644 --- a/contrib/bmake/bmake.1 +++ b/contrib/bmake/bmake.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -846,7 +846,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -870,6 +870,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. diff --git a/contrib/bmake/bmake.cat1 b/contrib/bmake/bmake.cat1 index b155283..51e02f4 100644 --- a/contrib/bmake/bmake.cat1 +++ b/contrib/bmake/bmake.cat1 @@ -531,37 +531,51 @@ VVAARRIIAABBLLEE AASSSSIIGGNNMMEENNTTSS mode that bbmmaakkee runs in. It can contain a number of key- words: - _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" mode. - - _m_e_t_a Puts bbmmaakkee into "meta" mode, where meta files - are created for each target to capture the - command run, the output generated and if - filemon(4) is available, the system calls - which are of interest to bbmmaakkee. The captured - output can be very useful when diagnosing - errors. - - _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta files - in `_._C_U_R_D_I_R'. This can be overridden by set- - ting _b_f to a value which represents True. - - _e_n_v For debugging, it can be useful to include - the environment in the .meta file. - - _v_e_r_b_o_s_e If in "meta" mode, print a clue about the - target being built. This is useful if the - build is otherwise running silently. The - message printed the value of: - _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. - - _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which are simply - not stable. This keyword causes them to be - ignored for determining whether a target is - out of date in "meta" mode. See also - ..NNOOMMEETTAA__CCMMPP. - - _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is created, - mark the target ..SSIILLEENNTT. + _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" + mode. + + _m_e_t_a Puts bbmmaakkee into "meta" mode, where + meta files are created for each tar- + get to capture the command run, the + output generated and if filemon(4) + is available, the system calls which + are of interest to bbmmaakkee. The cap- + tured output can be very useful when + diagnosing errors. + + _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta + files in `_._C_U_R_D_I_R'. This can be + overridden by setting _b_f to a value + which represents True. + + _m_i_s_s_i_n_g_-_m_e_t_a_= _b_f If _b_f is True, then a missing .meta + file makes the target out-of-date. + + _m_i_s_s_i_n_g_-_f_i_l_e_m_o_n_= _b_f If _b_f is True, then missing filemon + data makes the target out-of-date. + + _n_o_f_i_l_e_m_o_n Do not use filemon(4). + + _e_n_v For debugging, it can be useful to + include the environment in the .meta + file. + + _v_e_r_b_o_s_e If in "meta" mode, print a clue + about the target being built. This + is useful if the build is otherwise + running silently. The message + printed the value of: + _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. + + _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which + are simply not stable. This keyword + causes them to be ignored for deter- + mining whether a target is out of + date in "meta" mode. See also + ..NNOOMMEETTAA__CCMMPP. + + _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is + created, mark the target ..SSIILLEENNTT. _._M_A_K_E_._M_E_T_A_._B_A_I_L_I_W_I_C_K In "meta" mode, provides a list of prefixes which match @@ -1475,4 +1489,4 @@ BBUUGGSS There is no way of escaping a space character in a filename. -NetBSD 5.1 May 10, 2016 NetBSD 5.1 +NetBSD 5.1 June 2, 2016 NetBSD 5.1 diff --git a/contrib/bmake/boot-strap b/contrib/bmake/boot-strap index a49ffb1..af128b4 100755 --- a/contrib/bmake/boot-strap +++ b/contrib/bmake/boot-strap @@ -111,7 +111,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: boot-strap,v 1.48 2015/10/25 05:20:48 sjg Exp $ +# $Id: boot-strap,v 1.49 2016/05/29 00:09:14 sjg Exp $ # # @(#) Copyright (c) 2001 Simon J. Gerraty # @@ -451,7 +451,7 @@ op_all() { op_install else op_test - MAKE_VERSION=`sed -n '/^MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` + MAKE_VERSION=`sed -n '/^_MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` echo You can install by running: echo echo $0 $cmd_args op=install diff --git a/contrib/bmake/main.c b/contrib/bmake/main.c index 0a89d94..57a59cb 100644 --- a/contrib/bmake/main.c +++ b/contrib/bmake/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $ */ +/* $NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"; #else #include <sys/cdefs.h> #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993\ #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -1014,7 +1014,7 @@ main(int argc, char **argv) /* * A relative path, canonicalize it. */ - p1 = realpath(argv[0], mdpath); + p1 = cached_realpath(argv[0], mdpath); if (!p1 || *p1 != '/' || stat(p1, &sb) < 0) { p1 = argv[0]; /* realpath failed */ } @@ -1884,6 +1884,40 @@ usage(void) } +/* + * realpath(3) can get expensive, cache results... + */ +char * +cached_realpath(const char *pathname, char *resolved) +{ + static GNode *cache; + char *rp, *cp; + + if (!pathname || !pathname[0]) + return NULL; + + if (!cache) { + cache = Targ_NewGN("Realpath"); +#ifndef DEBUG_REALPATH_CACHE + cache->flags = INTERNAL; +#endif + } + + rp = Var_Value(pathname, cache, &cp); + if (rp) { + /* a hit */ + if (resolved) + strlcpy(resolved, rp, MAXPATHLEN); + else + resolved = bmake_strdup(rp); + } else { + if ((rp = realpath(pathname, resolved))) { + Var_Set(pathname, rp, cache, 0); + } + } + return rp ? resolved : NULL; +} + int PrintAddr(void *a, void *b) { diff --git a/contrib/bmake/make-bootstrap.sh.in b/contrib/bmake/make-bootstrap.sh.in index 638e293..83336b4 100755 --- a/contrib/bmake/make-bootstrap.sh.in +++ b/contrib/bmake/make-bootstrap.sh.in @@ -13,7 +13,7 @@ esac CC="@CC@" CFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@" -MAKE_VERSION=`sed -n '/^MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` +MAKE_VERSION=`sed -n '/^_MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` MDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \ -D@force_machine@MACHINE=\"@machine@\" -DMACHINE_ARCH=\"@machine_arch@\" \ diff --git a/contrib/bmake/make.1 b/contrib/bmake/make.1 index f2c2cf9..d542615 100644 --- a/contrib/bmake/make.1 +++ b/contrib/bmake/make.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -857,7 +857,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -881,6 +881,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. diff --git a/contrib/bmake/make.h b/contrib/bmake/make.h index 4448505..b3962f0 100644 --- a/contrib/bmake/make.h +++ b/contrib/bmake/make.h @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.98 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: make.h,v 1.99 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -199,6 +199,7 @@ typedef struct GNode { #define DONE_ALLSRC 0x40 /* We do it once only */ #define CYCLE 0x1000 /* Used by MakePrintStatus */ #define DONECYCLE 0x2000 /* Used by MakePrintStatus */ +#define INTERNAL 0x4000 /* Internal use only */ enum enum_made { UNMADE, DEFERRED, REQUESTED, BEINGMADE, MADE, UPTODATE, ERROR, ABORTED diff --git a/contrib/bmake/meta.c b/contrib/bmake/meta.c index 3167807..4f54a00 100644 --- a/contrib/bmake/meta.c +++ b/contrib/bmake/meta.c @@ -1,4 +1,4 @@ -/* $NetBSD: meta.c,v 1.57 2016/05/12 20:28:34 sjg Exp $ */ +/* $NetBSD: meta.c,v 1.60 2016/06/04 22:17:14 sjg Exp $ */ /* * Implement 'meta' mode. @@ -73,6 +73,8 @@ static char *metaIgnorePathsStr; /* string storage for the list */ Boolean useMeta = FALSE; static Boolean useFilemon = FALSE; static Boolean writeMeta = FALSE; +static Boolean metaMissing = FALSE; /* oodate if missing */ +static Boolean filemonMissing = FALSE; /* oodate if missing */ static Boolean metaEnv = FALSE; /* don't save env unless asked */ static Boolean metaVerbose = FALSE; static Boolean metaIgnoreCMDs = FALSE; /* ignore CMDs in .meta files */ @@ -237,24 +239,13 @@ eat_dots(char *buf, size_t bufsz, int dots) static char * meta_name(struct GNode *gn, char *mname, size_t mnamelen, const char *dname, - const char *tname) + const char *tname, + const char *cwd) { char buf[MAXPATHLEN]; - char cwd[MAXPATHLEN]; char *rp; char *cp; char *tp; - char *p[4]; /* >= number of possible uses */ - int i; - - i = 0; - if (!dname) - dname = Var_Value(".OBJDIR", gn, &p[i++]); - if (!tname) - tname = Var_Value(TARGET, gn, &p[i++]); - - if (realpath(dname, cwd)) - dname = cwd; /* * Weed out relative paths from the target file name. @@ -264,7 +255,7 @@ meta_name(struct GNode *gn, char *mname, size_t mnamelen, * basename as given to us. */ if ((cp = strrchr(tname, '/'))) { - if (realpath(tname, buf)) { + if (cached_realpath(tname, buf)) { if ((rp = strrchr(buf, '/'))) { rp++; cp++; @@ -309,9 +300,6 @@ meta_name(struct GNode *gn, char *mname, size_t mnamelen, } } free(tp); - for (i--; i >= 0; i--) { - free(p[i]); - } return (mname); } @@ -391,29 +379,26 @@ printCMD(void *cmdp, void *mfpp) */ #define SKIP_META_TYPE(_type) do { \ if ((gn->type & __CONCAT(OP_, _type))) { \ - if (DEBUG(META)) { \ + if (verbose) { \ fprintf(debug_file, "Skipping meta for %s: .%s\n", \ gn->name, __STRING(_type)); \ } \ - return (NULL); \ + return FALSE; \ } \ } while (0) -static FILE * -meta_create(BuildMon *pbm, GNode *gn) + +/* + * Do we need/want a .meta file ? + */ +static Boolean +meta_needed(GNode *gn, const char *dname, const char *tname, + char *objdir, int verbose) { - meta_file_t mf; - char buf[MAXPATHLEN]; - char objdir[MAXPATHLEN]; - char **ptr; - const char *dname; - const char *tname; - char *fname; - const char *cp; - char *p[4]; /* >= possible uses */ - int i; struct stat fs; + if (verbose) + verbose = DEBUG(META); /* This may be a phony node which we don't want meta data for... */ /* Skip .meta for .BEGIN, .END, .ERROR etc as well. */ @@ -426,48 +411,70 @@ meta_create(BuildMon *pbm, GNode *gn) SKIP_META_TYPE(MAKE); } - mf.fp = NULL; - - i = 0; - - dname = Var_Value(".OBJDIR", gn, &p[i++]); - tname = Var_Value(TARGET, gn, &p[i++]); - - /* The object directory may not exist. Check it.. */ - if (stat(dname, &fs) != 0) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", - gn->name); - goto out; - } /* Check if there are no commands to execute. */ if (Lst_IsEmpty(gn->commands)) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: no commands\n", gn->name); - goto out; + return FALSE; + } + if ((gn->type & (OP_META|OP_SUBMAKE)) == OP_SUBMAKE) { + /* OP_SUBMAKE is a bit too aggressive */ + if (Lst_ForEach(gn->commands, is_submake, gn)) { + if (DEBUG(META)) + fprintf(debug_file, "Skipping meta for %s: .SUBMAKE\n", + gn->name); + return FALSE; + } + } + + /* The object directory may not exist. Check it.. */ + if (stat(dname, &fs) != 0) { + if (verbose) + fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", + gn->name); + return FALSE; } /* make sure these are canonical */ - if (realpath(dname, objdir)) + if (cached_realpath(dname, objdir)) dname = objdir; /* If we aren't in the object directory, don't create a meta file. */ if (!metaCurdirOk && strcmp(curdir, dname) == 0) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: .OBJDIR == .CURDIR\n", gn->name); - goto out; - } - if (!(gn->type & OP_META)) { - /* We do not generate .meta files for sub-makes */ - if (Lst_ForEach(gn->commands, is_submake, gn)) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: .MAKE\n", - gn->name); - goto out; - } + return FALSE; } + return TRUE; +} + + +static FILE * +meta_create(BuildMon *pbm, GNode *gn) +{ + meta_file_t mf; + char buf[MAXPATHLEN]; + char objdir[MAXPATHLEN]; + char **ptr; + const char *dname; + const char *tname; + char *fname; + const char *cp; + char *p[4]; /* >= possible uses */ + int i; + + mf.fp = NULL; + i = 0; + + dname = Var_Value(".OBJDIR", gn, &p[i++]); + tname = Var_Value(TARGET, gn, &p[i++]); + + /* if this succeeds objdir is realpath of dname */ + if (!meta_needed(gn, dname, tname, objdir, TRUE)) + goto out; + dname = objdir; if (metaVerbose) { char *mp; @@ -492,7 +499,7 @@ meta_create(BuildMon *pbm, GNode *gn) goto out; fname = meta_name(gn, pbm->meta_fname, sizeof(pbm->meta_fname), - dname, tname); + dname, tname, objdir); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -561,6 +568,10 @@ meta_init(void) } +#define get_mode_bf(bf, token) \ + if ((cp = strstr(make_mode, token))) \ + bf = boolValue(&cp[sizeof(token) - 1]) + /* * Initialization we need after reading makefiles. */ @@ -583,17 +594,13 @@ meta_mode_init(const char *make_mode) writeMeta = FALSE; if (strstr(make_mode, "nofilemon")) useFilemon = FALSE; - if ((cp = strstr(make_mode, "curdirok="))) { - metaCurdirOk = boolValue(&cp[9]); - } - if ((cp = strstr(make_mode, "silent="))) { - metaSilent = boolValue(&cp[7]); - } if (strstr(make_mode, "ignore-cmd")) metaIgnoreCMDs = TRUE; - /* for backwards compatability */ - Var_Set(".MAKE.META_CREATED", "${.MAKE.META.CREATED}", VAR_GLOBAL, 0); - Var_Set(".MAKE.META_FILES", "${.MAKE.META.FILES}", VAR_GLOBAL, 0); + if (useFilemon) + get_mode_bf(filemonMissing, "missing-filemon="); + get_mode_bf(metaCurdirOk, "curdirok="); + get_mode_bf(metaMissing, "missing-meta="); + get_mode_bf(metaSilent, "silent="); } if (metaVerbose && !Var_Exists(MAKE_META_PREFIX, VAR_GLOBAL)) { /* @@ -921,6 +928,8 @@ meta_oodate(GNode *gn, Boolean oodate) char fname1[MAXPATHLEN]; char fname2[MAXPATHLEN]; char fname3[MAXPATHLEN]; + const char *dname; + const char *tname; char *p; char *cp; char *link_src; @@ -930,10 +939,23 @@ meta_oodate(GNode *gn, Boolean oodate) FILE *fp; Boolean needOODATE = FALSE; Lst missingFiles; - + char *pa[4]; /* >= possible uses */ + int i; + int have_filemon = FALSE; + if (oodate) return oodate; /* we're done */ + i = 0; + + dname = Var_Value(".OBJDIR", gn, &pa[i++]); + tname = Var_Value(TARGET, gn, &pa[i++]); + + /* if this succeeds fname3 is realpath of dname */ + if (!meta_needed(gn, dname, tname, fname3, FALSE)) + goto oodate_out; + dname = fname3; + missingFiles = Lst_Init(FALSE); /* @@ -944,7 +966,7 @@ meta_oodate(GNode *gn, Boolean oodate) */ Make_DoAllVar(gn); - meta_name(gn, fname, sizeof(fname), NULL, NULL); + meta_name(gn, fname, sizeof(fname), dname, tname, dname); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -957,7 +979,6 @@ meta_oodate(GNode *gn, Boolean oodate) int lineno = 0; int lastpid = 0; int pid; - int f = 0; int x; LstNode ln; struct stat fs; @@ -996,13 +1017,13 @@ meta_oodate(GNode *gn, Boolean oodate) link_src = NULL; move_target = NULL; /* Find the start of the build monitor section. */ - if (!f) { + if (!have_filemon) { if (strncmp(buf, "-- filemon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } if (strncmp(buf, "# buildmon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } } @@ -1014,7 +1035,7 @@ meta_oodate(GNode *gn, Boolean oodate) fprintf(debug_file, "%s: %d: %s\n", fname, lineno, buf); #endif strsep(&p, " "); - if (f) { + if (have_filemon) { /* * We are in the 'filemon' output section. * Each record from filemon follows the general form: @@ -1239,7 +1260,7 @@ meta_oodate(GNode *gn, Boolean oodate) * they are _expected_ to change. */ if (*p == '/') { - realpath(p, fname1); /* clean it up */ + cached_realpath(p, fname1); /* clean it up */ if (Lst_ForEach(metaIgnorePaths, prefix_match, fname1)) { #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -1324,7 +1345,7 @@ meta_oodate(GNode *gn, Boolean oodate) oodate = TRUE; } else if (S_ISDIR(fs.st_mode)) { /* Update the latest directory. */ - realpath(p, latestdir); + cached_realpath(p, latestdir); } } else if (errno == ENOENT && *p == '/' && strncmp(p, cwd, cwdlen) != 0) { @@ -1434,12 +1455,27 @@ meta_oodate(GNode *gn, Boolean oodate) fname, (char *)Lst_Datum(Lst_First(missingFiles))); oodate = TRUE; } - } else { - if ((gn->type & OP_META)) { + if (!oodate && !have_filemon && filemonMissing) { if (DEBUG(META)) - fprintf(debug_file, "%s: required but missing\n", fname); + fprintf(debug_file, "%s: missing filemon data\n", fname); oodate = TRUE; } + } else { + if (writeMeta && metaMissing) { + cp = NULL; + + /* if target is in .CURDIR we do not need a meta file */ + if (gn->path && (cp = strrchr(gn->path, '/')) && cp > gn->path) { + if (strncmp(curdir, gn->path, (cp - gn->path)) != 0) { + cp = NULL; /* not in .CURDIR */ + } + } + if (!cp) { + if (DEBUG(META)) + fprintf(debug_file, "%s: required but missing\n", fname); + oodate = TRUE; + } + } } Lst_Destroy(missingFiles, (FreeProc *)free); @@ -1454,6 +1490,11 @@ meta_oodate(GNode *gn, Boolean oodate) Var_Set(OODATE, Var_Value(ALLSRC, gn, &cp), gn, 0); free(cp); } + + oodate_out: + for (i--; i >= 0; i--) { + free(pa[i]); + } return oodate; } diff --git a/contrib/bmake/mk/ChangeLog b/contrib/bmake/mk/ChangeLog index 81a6cba..de94df7 100644 --- a/contrib/bmake/mk/ChangeLog +++ b/contrib/bmake/mk/ChangeLog @@ -1,3 +1,16 @@ +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160602 + * meta.autodep.mk: when passing META_FILES to gendirdeps.mk + do not apply :T to META_XTRAS + patch from Bryan Drewery at FreeBSD.org. + +2016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160530 + * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH + make it so. + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * install-mk (MK_VERSION): 20160512 diff --git a/contrib/bmake/mk/dpadd.mk b/contrib/bmake/mk/dpadd.mk index 1463651..c789acf 100644 --- a/contrib/bmake/mk/dpadd.mk +++ b/contrib/bmake/mk/dpadd.mk @@ -1,4 +1,4 @@ -# $Id: dpadd.mk,v 1.21 2016/05/18 20:54:55 sjg Exp $ +# $Id: dpadd.mk,v 1.22 2016/05/31 23:30:59 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -100,7 +100,7 @@ __dpadd_libs := ${DPADD:M*/lib*} # Order -L's to search ours first. # Avoids picking up old versions already installed. -__dpadd_libdirs := ${__dpadd_libs}:R:H:S/^/-L/g:O:u:N-L} +__dpadd_libdirs := ${__dpadd_libs:R:H:S/^/-L/g:O:u:N-L} LDADD += ${__dpadd_libdirs:M-L${OBJTOP}/*} LDADD += ${__dpadd_libdirs:N-L${OBJTOP}/*:N-L${HOST_LIBDIR:U/usr/lib}} .if defined(HOST_LIBDIR) && ${HOST_LIBDIR} != "/usr/lib" diff --git a/contrib/bmake/mk/install-mk b/contrib/bmake/mk/install-mk index f944129..74b0939 100644 --- a/contrib/bmake/mk/install-mk +++ b/contrib/bmake/mk/install-mk @@ -55,7 +55,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: install-mk,v 1.126 2016/05/18 20:54:55 sjg Exp $ +# $Id: install-mk,v 1.128 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20160512 +MK_VERSION=20160602 OWNER= GROUP= MODE=444 diff --git a/contrib/bmake/mk/meta.autodep.mk b/contrib/bmake/mk/meta.autodep.mk index 5d6a0be..06fa98c 100644 --- a/contrib/bmake/mk/meta.autodep.mk +++ b/contrib/bmake/mk/meta.autodep.mk @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.44 2016/04/07 17:00:38 sjg Exp $ +# $Id: meta.autodep.mk,v 1.45 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -266,7 +266,7 @@ ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/gendirdeps.mk ${META2DEPS} $${.MAKE.MET DPADD='${FORCE_DPADD:O:u}' ${_gendirdeps_mutex} \ MAKESYSPATH=${_makesyspath} \ ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE} \ - META_FILES='${META_XTRAS:T:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') + META_FILES='${META_XTRAS:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') @test -s $@ && touch $@; : .endif diff --git a/contrib/bmake/mk/meta.stage.mk b/contrib/bmake/mk/meta.stage.mk index c6c7227..11eb5c3 100644 --- a/contrib/bmake/mk/meta.stage.mk +++ b/contrib/bmake/mk/meta.stage.mk @@ -1,4 +1,4 @@ -# $Id: meta.stage.mk,v 1.44 2016/03/16 18:21:23 sjg Exp $ +# $Id: meta.stage.mk,v 1.45 2016/05/26 03:59:09 sjg Exp $ # # @(#) Copyright (c) 2011, Simon J. Gerraty # @@ -270,6 +270,8 @@ beforeinstall: .dirdep .NOPATH: ${STAGE_FILES} .if !empty(STAGE_TARGETS) +.NOPATH: ${CLEANFILES} + MK_STALE_STAGED?= no .if ${MK_STALE_STAGED} == "yes" all: stale_staged diff --git a/contrib/bmake/nonints.h b/contrib/bmake/nonints.h index 5a5c613..4756935 100644 --- a/contrib/bmake/nonints.h +++ b/contrib/bmake/nonints.h @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.72 2016/02/18 20:25:08 sjg Exp $ */ +/* $NetBSD: nonints.h,v 1.73 2016/06/03 01:21:59 sjg Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 @@ -122,6 +122,7 @@ void execError(const char *, const char *); char *getTmpdir(void); Boolean s2Boolean(const char *, Boolean); Boolean getBoolean(const char *, Boolean); +char *cached_realpath(const char *, char *); /* parse.c */ void Parse_Error(int, const char *, ...) MAKE_ATTR_PRINTFLIKE(2, 3); diff --git a/contrib/bmake/var.c b/contrib/bmake/var.c index 98b868a..81e9daf 100644 --- a/contrib/bmake/var.c +++ b/contrib/bmake/var.c @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.207 2016/03/11 15:12:39 matthias Exp $ */ +/* $NetBSD: var.c,v 1.208 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.207 2016/03/11 15:12:39 matthias Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.208 2016/06/03 01:21:59 sjg Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.207 2016/03/11 15:12:39 matthias Exp $"); +__RCSID("$NetBSD: var.c,v 1.208 2016/06/03 01:21:59 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -530,7 +530,7 @@ VarAdd(const char *name, const char *val, GNode *ctxt) h = Hash_CreateEntry(&ctxt->context, name, NULL); Hash_SetValue(h, v); v->name = h->name; - if (DEBUG(VAR)) { + if (DEBUG(VAR) && (ctxt->flags & INTERNAL) == 0) { fprintf(debug_file, "%s:%s = %s\n", ctxt->name, name, val); } } @@ -1950,7 +1950,7 @@ VarRealpath(GNode *ctx MAKE_ATTR_UNUSED, Var_Parse_State *vpstate, Buf_AddByte(buf, vpstate->varSpace); } addSpace = TRUE; - rp = realpath(word, rbuf); + rp = cached_realpath(word, rbuf); if (rp && *rp == '/' && stat(rp, &st) == 0) word = rp; diff --git a/contrib/elftoolchain/brandelf/brandelf.c b/contrib/elftoolchain/brandelf/brandelf.c index d41b926..7cc93f0 100644 --- a/contrib/elftoolchain/brandelf/brandelf.c +++ b/contrib/elftoolchain/brandelf/brandelf.c @@ -46,11 +46,6 @@ ELFTC_VCSID("$Id: brandelf.c 3440 2016-04-07 14:51:47Z emaste $"); -/* Backwards compatability for older FreeBSD releases. */ -#ifndef ELFOSABI_CLOUDABI -#define ELFOSABI_CLOUDABI 17 -#endif - static int elftype(const char *); static const char *iselftype(int); static void printelftypes(void); diff --git a/contrib/elftoolchain/elfcopy/main.c b/contrib/elftoolchain/elfcopy/main.c index 89ffab2..ebc0c92 100644 --- a/contrib/elftoolchain/elfcopy/main.c +++ b/contrib/elftoolchain/elfcopy/main.c @@ -41,11 +41,6 @@ ELFTC_VCSID("$Id: main.c 3446 2016-05-03 01:31:17Z emaste $"); -/* Backwards compatability for older FreeBSD releases. */ -#ifndef ELFOSABI_CLOUDABI -#define ELFOSABI_CLOUDABI 17 -#endif - enum options { ECP_ADD_GNU_DEBUGLINK, diff --git a/contrib/elftoolchain/elfdump/elfdump.c b/contrib/elftoolchain/elfdump/elfdump.c index 36a8dfd..cf27ea6 100644 --- a/contrib/elftoolchain/elfdump/elfdump.c +++ b/contrib/elftoolchain/elfdump/elfdump.c @@ -52,14 +52,6 @@ ELFTC_VCSID("$Id: elfdump.c 3474 2016-05-17 20:44:53Z emaste $"); -/* Backwards compatability for older FreeBSD releases. */ -#ifndef EM_IAMCU -#define EM_IAMCU 6 -#endif -#ifndef EM_RISCV -#define EM_RISCV 243 -#endif - #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION) #include "native-elf-format.h" #if ELFTC_CLASS == ELFCLASS32 diff --git a/contrib/elftoolchain/libdwarf/libdwarf_reloc.c b/contrib/elftoolchain/libdwarf/libdwarf_reloc.c index 19325c1..15bae9c 100644 --- a/contrib/elftoolchain/libdwarf/libdwarf_reloc.c +++ b/contrib/elftoolchain/libdwarf/libdwarf_reloc.c @@ -28,11 +28,6 @@ ELFTC_VCSID("$Id: libdwarf_reloc.c 3198 2015-05-14 18:36:19Z emaste $"); -/* Backwards compatability for older FreeBSD releases. */ -#ifndef EM_IAMCU -#define EM_IAMCU 6 -#endif - Dwarf_Unsigned _dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) { diff --git a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c index 1e977a7..a22a1be 100644 --- a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c +++ b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c @@ -31,14 +31,6 @@ #include <libelftc.h> #include <stdio.h> -/* Backwards compatability for older FreeBSD releases. */ -#ifndef EM_IAMCU -#define EM_IAMCU 6 -#endif -#ifndef EM_RISCV -#define EM_RISCV 243 -#endif - const char * elftc_reloc_type_str(unsigned int mach, unsigned int type) { diff --git a/contrib/elftoolchain/readelf/readelf.c b/contrib/elftoolchain/readelf/readelf.c index fcfc75d..79cb8b7 100644 --- a/contrib/elftoolchain/readelf/readelf.c +++ b/contrib/elftoolchain/readelf/readelf.c @@ -50,15 +50,6 @@ ELFTC_VCSID("$Id: readelf.c 3469 2016-05-15 23:16:09Z emaste $"); /* Backwards compatability for older FreeBSD releases. */ -#ifndef ELFOSABI_CLOUDABI -#define ELFOSABI_CLOUDABI 17 -#endif -#ifndef EM_IAMCU -#define EM_IAMCU 6 -#endif -#ifndef EM_RISCV -#define EM_RISCV 243 -#endif #ifndef STB_GNU_UNIQUE #define STB_GNU_UNIQUE 10 #endif diff --git a/contrib/gcclibs/include/objalloc.h b/contrib/gcclibs/include/objalloc.h index 36772d1..e3cc7bb 100644 --- a/contrib/gcclibs/include/objalloc.h +++ b/contrib/gcclibs/include/objalloc.h @@ -1,5 +1,5 @@ /* objalloc.h -- routines to allocate memory for objects - Copyright 1997, 2001 Free Software Foundation, Inc. + Copyright 1997, 2001-2012 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Solutions. This program is free software; you can redistribute it and/or modify it @@ -91,7 +91,7 @@ extern void *_objalloc_alloc (struct objalloc *, unsigned long); if (__len == 0) \ __len = 1; \ __len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \ - (__len <= __o->current_space \ + (__len != 0 && __len <= __o->current_space \ ? (__o->current_ptr += __len, \ __o->current_space -= __len, \ (void *) (__o->current_ptr - __len)) \ diff --git a/contrib/gcclibs/libiberty/objalloc.c b/contrib/gcclibs/libiberty/objalloc.c index 3ddac2c..394b3af 100644 --- a/contrib/gcclibs/libiberty/objalloc.c +++ b/contrib/gcclibs/libiberty/objalloc.c @@ -1,5 +1,5 @@ /* objalloc.c -- routines to allocate memory for objects - Copyright 1997 Free Software Foundation, Inc. + Copyright 1997-2012 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Solutions. This program is free software; you can redistribute it and/or modify it @@ -112,8 +112,10 @@ objalloc_create (void) /* Allocate space from an objalloc structure. */ PTR -_objalloc_alloc (struct objalloc *o, unsigned long len) +_objalloc_alloc (struct objalloc *o, unsigned long original_len) { + unsigned long len = original_len; + /* We avoid confusion from zero sized objects by always allocating at least 1 byte. */ if (len == 0) @@ -121,6 +123,11 @@ _objalloc_alloc (struct objalloc *o, unsigned long len) len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); + /* CVE-2012-3509: Check for overflow in the alignment operation above + * and then malloc argument below. */ + if (len + CHUNK_HEADER_SIZE < original_len) + return NULL; + if (len <= o->current_space) { o->current_ptr += len; diff --git a/contrib/libucl/src/Makefile.am b/contrib/libucl/src/Makefile.am index c2f3a4b..80ce5b1 100644 --- a/contrib/libucl/src/Makefile.am +++ b/contrib/libucl/src/Makefile.am @@ -12,8 +12,7 @@ libucl_la_SOURCES= ucl_emitter.c \ ucl_schema.c \ ucl_util.c \ ucl_msgpack.c \ - ucl_sexp.c \ - xxhash.c + ucl_sexp.c libucl_la_CFLAGS= $(libucl_common_cflags) \ @CURL_CFLAGS@ libucl_la_LDFLAGS = -version-info @SO_VERSION@ @@ -25,7 +24,7 @@ libucl_la_LIBADD= @LIBFETCH_LIBS@ \ include_HEADERS= $(top_srcdir)/include/ucl.h \ $(top_srcdir)/include/ucl++.h noinst_HEADERS= ucl_internal.h \ - xxhash.h \ + mum.h \ ucl_hash.h \ ucl_chartable.h \ tree.h diff --git a/contrib/libucl/src/mum.h b/contrib/libucl/src/mum.h new file mode 100644 index 0000000..9c719e5 --- /dev/null +++ b/contrib/libucl/src/mum.h @@ -0,0 +1,419 @@ +/* Copyright (c) 2016 Vladimir Makarov <vmakarov@gcc.gnu.org> + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +/* This file implements MUM (MUltiply and Mix) hashing. We randomize + input data by 64x64-bit multiplication and mixing hi- and low-parts + of the multiplication result by using an addition and then mix it + into the current state. We use prime numbers randomly generated + with the equal probability of their bit values for the + multiplication. When all primes are used once, the state is + randomized and the same prime numbers are used again for data + randomization. + + The MUM hashing passes all SMHasher tests. Pseudo Random Number + Generator based on MUM also passes NIST Statistical Test Suite for + Random and Pseudorandom Number Generators for Cryptographic + Applications (version 2.2.1) with 1000 bitstreams each containing + 1M bits. MUM hashing is also faster Spooky64 and City64 on small + strings (at least upto 512-bit) on Haswell and Power7. The MUM bulk + speed (speed on very long data) is bigger than Spooky and City on + Power7. On Haswell the bulk speed is bigger than Spooky one and + close to City speed. */ + +#ifndef __MUM_HASH__ +#define __MUM_HASH__ + +#include <stddef.h> +#include <stdlib.h> +#include <string.h> +#include <limits.h> + +#ifdef _MSC_VER +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; +#else +#include <stdint.h> +#endif + +/* Macro saying to use 128-bit integers implemented by GCC for some + targets. */ +#ifndef _MUM_USE_INT128 +/* In GCC uint128_t is defined if HOST_BITS_PER_WIDE_INT >= 64. + HOST_WIDE_INT is long if HOST_BITS_PER_LONG > HOST_BITS_PER_INT, + otherwise int. */ +#if defined(__GNUC__) && UINT_MAX != ULONG_MAX +#define _MUM_USE_INT128 1 +#else +#define _MUM_USE_INT128 0 +#endif +#endif + +#if 0 +#if defined(__GNUC__) && ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9) || (__GNUC__ > 4)) +#define _MUM_FRESH_GCC +#endif +#endif + +#if defined(__GNUC__) && !defined(__llvm__) && defined(_MUM_FRESH_GCC) +#define _MUM_ATTRIBUTE_UNUSED __attribute__((unused)) +#define _MUM_OPTIMIZE(opts) __attribute__((__optimize__ (opts))) +#define _MUM_TARGET(opts) __attribute__((__target__ (opts))) +#else +#define _MUM_ATTRIBUTE_UNUSED +#define _MUM_OPTIMIZE(opts) +#define _MUM_TARGET(opts) +#endif + + +/* Here are different primes randomly generated with the equal + probability of their bit values. They are used to randomize input + values. */ +static uint64_t _mum_hash_step_prime = 0x2e0bb864e9ea7df5ULL; +static uint64_t _mum_key_step_prime = 0xcdb32970830fcaa1ULL; +static uint64_t _mum_block_start_prime = 0xc42b5e2e6480b23bULL; +static uint64_t _mum_unroll_prime = 0x7b51ec3d22f7096fULL; +static uint64_t _mum_tail_prime = 0xaf47d47c99b1461bULL; +static uint64_t _mum_finish_prime1 = 0xa9a7ae7ceff79f3fULL; +static uint64_t _mum_finish_prime2 = 0xaf47d47c99b1461bULL; + +static uint64_t _mum_primes [] = { + 0X9ebdcae10d981691, 0X32b9b9b97a27ac7d, 0X29b5584d83d35bbd, 0X4b04e0e61401255f, + 0X25e8f7b1f1c9d027, 0X80d4c8c000f3e881, 0Xbd1255431904b9dd, 0X8a3bd4485eee6d81, + 0X3bc721b2aad05197, 0X71b1a19b907d6e33, 0X525e6c1084a8534b, 0X9e4c2cd340c1299f, + 0Xde3add92e94caa37, 0X7e14eadb1f65311d, 0X3f5aa40f89812853, 0X33b15a3b587d15c9, +}; + +/* Multiply 64-bit V and P and return sum of high and low parts of the + result. */ +static inline uint64_t +_mum (uint64_t v, uint64_t p) { + uint64_t hi, lo; +#if _MUM_USE_INT128 +#if defined(__aarch64__) + /* AARCH64 needs 2 insns to calculate 128-bit result of the + multiplication. If we use a generic code we actually call a + function doing 128x128->128 bit multiplication. The function is + very slow. */ + lo = v * p, hi; + asm ("umulh %0, %1, %2" : "=r" (hi) : "r" (v), "r" (p)); +#else + __uint128_t r = (__uint128_t) v * (__uint128_t) p; + hi = (uint64_t) (r >> 64); + lo = (uint64_t) r; +#endif +#else + /* Implementation of 64x64->128-bit multiplication by four 32x32->64 + bit multiplication. */ + uint64_t hv = v >> 32, hp = p >> 32; + uint64_t lv = (uint32_t) v, lp = (uint32_t) p; + uint64_t rh = hv * hp; + uint64_t rm_0 = hv * lp; + uint64_t rm_1 = hp * lv; + uint64_t rl = lv * lp; + uint64_t t, carry = 0; + + /* We could ignore a carry bit here if we did not care about the + same hash for 32-bit and 64-bit targets. */ + t = rl + (rm_0 << 32); +#ifdef MUM_TARGET_INDEPENDENT_HASH + carry = t < rl; +#endif + lo = t + (rm_1 << 32); +#ifdef MUM_TARGET_INDEPENDENT_HASH + carry += lo < t; +#endif + hi = rh + (rm_0 >> 32) + (rm_1 >> 32) + carry; +#endif + /* We could use XOR here too but, for some reasons, on Haswell and + Power7 using an addition improves hashing performance by 10% for + small strings. */ + return hi + lo; +} + +#if defined(_MSC_VER) +#define _mum_bswap_32(x) _byteswap_uint32_t (x) +#define _mum_bswap_64(x) _byteswap_uint64_t (x) +#elif defined(__APPLE__) +#include <libkern/OSByteOrder.h> +#define _mum_bswap_32(x) OSSwapInt32 (x) +#define _mum_bswap_64(x) OSSwapInt64 (x) +#elif defined(__GNUC__) +#define _mum_bswap32(x) __builtin_bswap32 (x) +#define _mum_bswap64(x) __builtin_bswap64 (x) +#else +#include <byteswap.h> +#define _mum_bswap32(x) bswap32 (x) +#define _mum_bswap64(x) bswap64 (x) +#endif + +static inline uint64_t +_mum_le (uint64_t v) { +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || !defined(MUM_TARGET_INDEPENDENT_HASH) + return v; +#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + return _mum_bswap64 (v); +#else +#error "Unknown endianess" +#endif +} + +static inline uint32_t +_mum_le32 (uint32_t v) { +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || !defined(MUM_TARGET_INDEPENDENT_HASH) + return v; +#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + return _mum_bswap32 (v); +#else +#error "Unknown endianess" +#endif +} + +/* Macro defining how many times the most nested loop in + _mum_hash_aligned will be unrolled by the compiler (although it can + make an own decision:). Use only a constant here to help a + compiler to unroll a major loop. + + The macro value affects the result hash for strings > 128 bit. The + unroll factor greatly affects the hashing speed. We prefer the + speed. */ +#ifndef _MUM_UNROLL_FACTOR_POWER +#if defined(__PPC64__) && !defined(MUM_TARGET_INDEPENDENT_HASH) +#define _MUM_UNROLL_FACTOR_POWER 3 +#elif defined(__aarch64__) && !defined(MUM_TARGET_INDEPENDENT_HASH) +#define _MUM_UNROLL_FACTOR_POWER 4 +#else +#define _MUM_UNROLL_FACTOR_POWER 2 +#endif +#endif + +#if _MUM_UNROLL_FACTOR_POWER < 1 +#error "too small unroll factor" +#elif _MUM_UNROLL_FACTOR_POWER > 4 +#error "We have not enough primes for such unroll factor" +#endif + +#define _MUM_UNROLL_FACTOR (1 << _MUM_UNROLL_FACTOR_POWER) + +static inline uint64_t _MUM_OPTIMIZE("unroll-loops") +_mum_hash_aligned (uint64_t start, const void *key, size_t len) { + uint64_t result = start; + const unsigned char *str = (const unsigned char *) key; + uint64_t u64; + int i; + size_t n; + + result = _mum (result, _mum_block_start_prime); + while (len > _MUM_UNROLL_FACTOR * sizeof (uint64_t)) { + /* This loop could be vectorized when we have vector insns for + 64x64->128-bit multiplication. AVX2 currently only have a + vector insn for 4 32x32->64-bit multiplication. */ + for (i = 0; i < _MUM_UNROLL_FACTOR; i++) + result ^= _mum (_mum_le (((uint64_t *) str)[i]), _mum_primes[i]); + len -= _MUM_UNROLL_FACTOR * sizeof (uint64_t); + str += _MUM_UNROLL_FACTOR * sizeof (uint64_t); + /* We will use the same prime numbers on the next iterations -- + randomize the state. */ + result = _mum (result, _mum_unroll_prime); + } + n = len / sizeof (uint64_t); + for (i = 0; i < (int)n; i++) + result ^= _mum (_mum_le (((uint64_t *) str)[i]), _mum_primes[i]); + len -= n * sizeof (uint64_t); str += n * sizeof (uint64_t); + switch (len) { + case 7: + u64 = _mum_le32 (*(uint32_t *) str); + u64 |= (uint64_t) str[4] << 32; + u64 |= (uint64_t) str[5] << 40; + u64 |= (uint64_t) str[6] << 48; + return result ^ _mum (u64, _mum_tail_prime); + case 6: + u64 = _mum_le32 (*(uint32_t *) str); + u64 |= (uint64_t) str[4] << 32; + u64 |= (uint64_t) str[5] << 40; + return result ^ _mum (u64, _mum_tail_prime); + case 5: + u64 = _mum_le32 (*(uint32_t *) str); + u64 |= (uint64_t) str[4] << 32; + return result ^ _mum (u64, _mum_tail_prime); + case 4: + u64 = _mum_le32 (*(uint32_t *) str); + return result ^ _mum (u64, _mum_tail_prime); + case 3: + u64 = str[0]; + u64 |= (uint64_t) str[1] << 8; + u64 |= (uint64_t) str[2] << 16; + return result ^ _mum (u64, _mum_tail_prime); + case 2: + u64 = str[0]; + u64 |= (uint64_t) str[1] << 8; + return result ^ _mum (u64, _mum_tail_prime); + case 1: + u64 = str[0]; + return result ^ _mum (u64, _mum_tail_prime); + } + return result; +} + +/* Final randomization of H. */ +static inline uint64_t +_mum_final (uint64_t h) { + h ^= _mum (h, _mum_finish_prime1); + h ^= _mum (h, _mum_finish_prime2); + return h; +} + +#if defined(__x86_64__) && defined(_MUM_FRESH_GCC) + +/* We want to use AVX2 insn MULX instead of generic x86-64 MULQ where + it is possible. Although on modern Intel processors MULQ takes + 3-cycles vs. 4 for MULX, MULX permits more freedom in insn + scheduling as it uses less fixed registers. */ +static inline uint64_t _MUM_TARGET("arch=haswell") +_mum_hash_avx2 (const void * key, size_t len, uint64_t seed) { + return _mum_final (_mum_hash_aligned (seed + len, key, len)); +} +#endif + +#ifndef _MUM_UNALIGNED_ACCESS +#if defined(__x86_64__) || defined(__i386__) || defined(__PPC64__) \ + || defined(__s390__) || defined(__m32c__) || defined(cris) \ + || defined(__CR16__) || defined(__vax__) || defined(__m68k__) \ + || defined(__aarch64__) +#define _MUM_UNALIGNED_ACCESS 1 +#else +#define _MUM_UNALIGNED_ACCESS 0 +#endif +#endif + +/* When we need an aligned access to data being hashed we move part of + the unaligned data to an aligned block of given size and then + process it, repeating processing the data by the block. */ +#ifndef _MUM_BLOCK_LEN +#define _MUM_BLOCK_LEN 1024 +#endif + +#if _MUM_BLOCK_LEN < 8 +#error "too small block length" +#endif + +static inline uint64_t +#if defined(__x86_64__) +_MUM_TARGET("inline-all-stringops") +#endif +_mum_hash_default (const void *key, size_t len, uint64_t seed) { + uint64_t result; + const unsigned char *str = (const unsigned char *) key; + size_t block_len; + uint64_t buf[_MUM_BLOCK_LEN / sizeof (uint64_t)]; + + result = seed + len; + if (_MUM_UNALIGNED_ACCESS || ((size_t) str & 0x7) == 0) + result = _mum_hash_aligned (result, key, len); + else { + while (len != 0) { + block_len = len < _MUM_BLOCK_LEN ? len : _MUM_BLOCK_LEN; + memmove (buf, str, block_len); + result = _mum_hash_aligned (result, buf, block_len); + len -= block_len; + str += block_len; + } + } + return _mum_final (result); +} + +static inline uint64_t +_mum_next_factor (void) { + uint64_t start = 0; + int i; + + for (i = 0; i < 8; i++) + start = (start << 8) | rand() % 256; + return start; +} + +/* ++++++++++++++++++++++++++ Interface functions: +++++++++++++++++++ */ + +/* Set random multiplicators depending on SEED. */ +static inline void +mum_hash_randomize (uint64_t seed) { + int i; + + srand (seed); + _mum_hash_step_prime = _mum_next_factor (); + _mum_key_step_prime = _mum_next_factor (); + _mum_finish_prime1 = _mum_next_factor (); + _mum_finish_prime2 = _mum_next_factor (); + _mum_block_start_prime = _mum_next_factor (); + _mum_unroll_prime = _mum_next_factor (); + _mum_tail_prime = _mum_next_factor (); + for (i = 0; i < (int)(sizeof (_mum_primes) / sizeof (uint64_t)); i++) + _mum_primes[i] = _mum_next_factor (); +} + +/* Start hashing data with SEED. Return the state. */ +static inline uint64_t +mum_hash_init (uint64_t seed) { + return seed; +} + +/* Process data KEY with the state H and return the updated state. */ +static inline uint64_t +mum_hash_step (uint64_t h, uint64_t key) +{ + return _mum (h, _mum_hash_step_prime) ^ _mum (key, _mum_key_step_prime); +} + +/* Return the result of hashing using the current state H. */ +static inline uint64_t +mum_hash_finish (uint64_t h) { + return _mum_final (h); +} + +/* Fast hashing of KEY with SEED. The hash is always the same for the + same key on any target. */ +static inline size_t +mum_hash64 (uint64_t key, uint64_t seed) { + return mum_hash_finish (mum_hash_step (mum_hash_init (seed), key)); +} + +/* Hash data KEY of length LEN and SEED. The hash depends on the + target endianess and the unroll factor. */ +static inline uint64_t +mum_hash (const void *key, size_t len, uint64_t seed) { +#if defined(__x86_64__) && defined(_MUM_FRESH_GCC) + static int avx2_support = 0; + + if (avx2_support > 0) + return _mum_hash_avx2 (key, len, seed); + else if (! avx2_support) { + __builtin_cpu_init (); + avx2_support = __builtin_cpu_supports ("avx2") ? 1 : -1; + if (avx2_support > 0) + return _mum_hash_avx2 (key, len, seed); + } +#endif + return _mum_hash_default (key, len, seed); +} + +#endif diff --git a/contrib/libucl/src/ucl_hash.c b/contrib/libucl/src/ucl_hash.c index c54fba7..bdc7fb4 100644 --- a/contrib/libucl/src/ucl_hash.c +++ b/contrib/libucl/src/ucl_hash.c @@ -25,6 +25,7 @@ #include "ucl_hash.h" #include "khash.h" #include "kvec.h" +#include "mum.h" #include <time.h> #include <limits.h> @@ -99,20 +100,11 @@ static const unsigned char lc_map[256] = { #define UCL64_BIT_HASH 1 #endif -#ifdef UCL64_BIT_HASH static inline uint32_t ucl_hash_func (const ucl_object_t *o) { - return XXH64 (o->key, o->keylen, ucl_hash_seed ()); + return mum_hash (o->key, o->keylen, ucl_hash_seed ()); } -#else -static inline uint32_t -ucl_hash_func (const ucl_object_t *o) -{ - return XXH32 (o->key, o->keylen, ucl_hash_seed ()); -} -#endif - static inline int ucl_hash_equal (const ucl_object_t *k1, const ucl_object_t *k2) { @@ -126,91 +118,60 @@ ucl_hash_equal (const ucl_object_t *k1, const ucl_object_t *k2) KHASH_INIT (ucl_hash_node, const ucl_object_t *, struct ucl_hash_elt, 1, ucl_hash_func, ucl_hash_equal) -#ifdef UCL64_BIT_HASH static inline uint32_t ucl_hash_caseless_func (const ucl_object_t *o) { unsigned len = o->keylen; - unsigned leftover = o->keylen % 4; + unsigned leftover = o->keylen % 8; unsigned fp, i; const uint8_t* s = (const uint8_t*)o->key; union { struct { - unsigned char c1, c2, c3, c4; + unsigned char c1, c2, c3, c4, c5, c6, c7, c8; } c; - uint32_t pp; + uint64_t pp; } u; - XXH64_state_t st; + uint64_t r; fp = len - leftover; - XXH64_reset (&st, ucl_hash_seed ()); + r = ucl_hash_seed (); - for (i = 0; i != fp; i += 4) { + for (i = 0; i != fp; i += 8) { u.c.c1 = s[i], u.c.c2 = s[i + 1], u.c.c3 = s[i + 2], u.c.c4 = s[i + 3]; + u.c.c5 = s[i + 4], u.c.c6 = s[i + 5], u.c.c7 = s[i + 6], u.c.c8 = s[i + 7]; u.c.c1 = lc_map[u.c.c1]; u.c.c2 = lc_map[u.c.c2]; u.c.c3 = lc_map[u.c.c3]; u.c.c4 = lc_map[u.c.c4]; - XXH64_update (&st, &u.pp, sizeof (u)); + u.c.c1 = lc_map[u.c.c5]; + u.c.c2 = lc_map[u.c.c6]; + u.c.c3 = lc_map[u.c.c7]; + u.c.c4 = lc_map[u.c.c8]; + r = mum_hash_step (r, u.pp); } u.pp = 0; switch (leftover) { + case 7: + u.c.c7 = lc_map[(unsigned char)s[i++]]; + case 6: + u.c.c6 = lc_map[(unsigned char)s[i++]]; + case 5: + u.c.c5 = lc_map[(unsigned char)s[i++]]; + case 4: + u.c.c4 = lc_map[(unsigned char)s[i++]]; case 3: u.c.c3 = lc_map[(unsigned char)s[i++]]; case 2: u.c.c2 = lc_map[(unsigned char)s[i++]]; case 1: u.c.c1 = lc_map[(unsigned char)s[i]]; - XXH64_update (&st, &u.pp, leftover); + r = mum_hash_step (r, u.pp); break; } - return XXH64_digest (&st); + return mum_hash_finish (r); } -#else -static inline uint32_t -ucl_hash_caseless_func (const ucl_object_t *o) -{ - unsigned len = o->keylen; - unsigned leftover = o->keylen % 4; - unsigned fp, i; - const uint8_t* s = (const uint8_t*)o->key; - union { - struct { - unsigned char c1, c2, c3, c4; - } c; - uint32_t pp; - } u; - XXH32_state_t st; - - fp = len - leftover; - XXH32_reset (&st, ucl_hash_seed ()); - - for (i = 0; i != fp; i += 4) { - u.c.c1 = s[i], u.c.c2 = s[i + 1], u.c.c3 = s[i + 2], u.c.c4 = s[i + 3]; - u.c.c1 = lc_map[u.c.c1]; - u.c.c2 = lc_map[u.c.c2]; - u.c.c3 = lc_map[u.c.c3]; - u.c.c4 = lc_map[u.c.c4]; - XXH32_update (&st, &u.pp, sizeof (u)); - } - - u.pp = 0; - switch (leftover) { - case 3: - u.c.c3 = lc_map[(unsigned char)s[i++]]; - case 2: - u.c.c2 = lc_map[(unsigned char)s[i++]]; - case 1: - u.c.c1 = lc_map[(unsigned char)s[i]]; - XXH32_update (&st, &u.pp, leftover); - break; - } - - return XXH32_digest (&st); -} -#endif static inline int ucl_hash_caseless_equal (const ucl_object_t *k1, const ucl_object_t *k2) diff --git a/contrib/libucl/src/ucl_internal.h b/contrib/libucl/src/ucl_internal.h index db8a12c..37871eb 100644 --- a/contrib/libucl/src/ucl_internal.h +++ b/contrib/libucl/src/ucl_internal.h @@ -93,7 +93,6 @@ #include "uthash.h" #include "ucl.h" #include "ucl_hash.h" -#include "xxhash.h" #ifdef HAVE_OPENSSL #include <openssl/evp.h> diff --git a/contrib/libucl/src/ucl_msgpack.c b/contrib/libucl/src/ucl_msgpack.c index 96f4809..bd7c3a1 100644 --- a/contrib/libucl/src/ucl_msgpack.c +++ b/contrib/libucl/src/ucl_msgpack.c @@ -1423,6 +1423,10 @@ ucl_msgpack_parse_int (struct ucl_parser *parser, int16_t iv16; int32_t iv32; int64_t iv64; + uint16_t uiv16; + uint32_t uiv32; + uint64_t uiv64; + if (len > remain) { return -1; @@ -1455,7 +1459,9 @@ ucl_msgpack_parse_int (struct ucl_parser *parser, len = 2; break; case msgpack_uint16: - obj->value.iv = FROM_BE16 (*(uint16_t *)pos); + memcpy (&uiv16, pos, sizeof (uiv16)); + uiv16 = FROM_BE16 (uiv16); + obj->value.iv = uiv16; len = 2; break; case msgpack_int32: @@ -1465,7 +1471,9 @@ ucl_msgpack_parse_int (struct ucl_parser *parser, len = 4; break; case msgpack_uint32: - obj->value.iv = FROM_BE32 (*(uint32_t *)pos); + memcpy(&uiv32, pos, sizeof(uiv32)); + uiv32 = FROM_BE32(uiv32); + obj->value.iv = uiv32; len = 4; break; case msgpack_int64: @@ -1475,7 +1483,9 @@ ucl_msgpack_parse_int (struct ucl_parser *parser, len = 8; break; case msgpack_uint64: - obj->value.iv = FROM_BE64 (*(uint64_t *)pos); + memcpy(&uiv64, pos, sizeof(uiv64)); + uiv64 = FROM_BE64(uiv64); + obj->value.iv = uiv64; len = 8; break; default: @@ -1498,6 +1508,7 @@ ucl_msgpack_parse_float (struct ucl_parser *parser, uint32_t i; float f; } d; + uint64_t uiv64; if (len > remain) { return -1; @@ -1507,13 +1518,16 @@ ucl_msgpack_parse_float (struct ucl_parser *parser, switch (fmt) { case msgpack_float32: - d.i = FROM_BE32 (*(uint32_t *)pos); + memcpy(&d.i, pos, sizeof(d.i)); + d.i = FROM_BE32(d.i); /* XXX: can be slow */ obj->value.dv = d.f; len = 4; break; case msgpack_float64: - obj->value.iv = FROM_BE64 (*(uint64_t *)pos); + memcpy(&uiv64, pos, sizeof(uiv64)); + uiv64 = FROM_BE64(uiv64); + obj->value.iv = uiv64; len = 8; break; default: diff --git a/contrib/libucl/src/ucl_parser.c b/contrib/libucl/src/ucl_parser.c index 0aaa4dd..fc7cea0 100644 --- a/contrib/libucl/src/ucl_parser.c +++ b/contrib/libucl/src/ucl_parser.c @@ -2597,12 +2597,7 @@ ucl_parser_add_chunk_full (struct ucl_parser *parser, const unsigned char *data, return false; } - if (len == 0) { - parser->top_obj = ucl_object_new_full (UCL_OBJECT, priority); - return true; - } - - if (data == NULL) { + if (data == NULL && len != 0) { ucl_create_err (&parser->err, "invalid chunk added"); return false; } @@ -2613,6 +2608,7 @@ ucl_parser_add_chunk_full (struct ucl_parser *parser, const unsigned char *data, ucl_create_err (&parser->err, "cannot allocate chunk structure"); return false; } + chunk->begin = data; chunk->remain = len; chunk->pos = chunk->begin; @@ -2631,12 +2627,27 @@ ucl_parser_add_chunk_full (struct ucl_parser *parser, const unsigned char *data, return false; } - switch (parse_type) { - default: - case UCL_PARSE_UCL: - return ucl_state_machine (parser); - case UCL_PARSE_MSGPACK: - return ucl_parse_msgpack (parser); + if (len > 0) { + /* Need to parse something */ + switch (parse_type) { + default: + case UCL_PARSE_UCL: + return ucl_state_machine (parser); + case UCL_PARSE_MSGPACK: + return ucl_parse_msgpack (parser); + } + } + else { + /* Just add empty chunk and go forward */ + if (parser->top_obj == NULL) { + /* + * In case of empty object, create one to indicate that we've + * read something + */ + parser->top_obj = ucl_object_new_full (UCL_OBJECT, priority); + } + + return true; } } diff --git a/contrib/libucl/src/ucl_util.c b/contrib/libucl/src/ucl_util.c index 261bf95..900658b 100644 --- a/contrib/libucl/src/ucl_util.c +++ b/contrib/libucl/src/ucl_util.c @@ -975,6 +975,7 @@ ucl_include_file_single (const unsigned char *data, size_t len, if (params->soft_fail) { return false; } + return (!params->must_exist || false); } @@ -1172,11 +1173,14 @@ ucl_include_file_single (const unsigned char *data, size_t len, res = ucl_parser_add_chunk_full (parser, buf, buflen, params->priority, params->strat, params->parse_type); - if (!res && !params->must_exist) { - /* Free error */ - utstring_free (parser->err); - parser->err = NULL; - parser->state = UCL_STATE_AFTER_VALUE; + + if (!res) { + if (!params->must_exist) { + /* Free error */ + utstring_free (parser->err); + parser->err = NULL; + res = true; + } } /* Stop nesting the include, take 1 level off the stack */ @@ -1849,6 +1853,9 @@ ucl_parser_add_fd_priority (struct ucl_parser *parser, int fd, fd, strerror (errno)); return false; } + if (st.st_size == 0) { + return true; + } if ((buf = ucl_mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) { ucl_create_err (&parser->err, "cannot mmap fd %d: %s", fd, strerror (errno)); diff --git a/contrib/libucl/src/xxhash.c b/contrib/libucl/src/xxhash.c deleted file mode 100644 index 3473eb4..0000000 --- a/contrib/libucl/src/xxhash.c +++ /dev/null @@ -1,941 +0,0 @@ -/* -xxHash - Fast Hash algorithm -Copyright (C) 2012-2014, Yann Collet. -BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -You can contact the author at : -- xxHash source repository : http://code.google.com/p/xxhash/ -- public discussion board : https://groups.google.com/forum/#!forum/lz4c -*/ - - -//************************************** -// Tuning parameters -//************************************** -// Unaligned memory access is automatically enabled for "common" CPU, such as x86. -// For others CPU, the compiler will be more cautious, and insert extra code to ensure aligned access is respected. -// If you know your target CPU supports unaligned memory access, you want to force this option manually to improve performance. -// You can also enable this parameter if you know your input data will always be aligned (boundaries of 4, for U32). -#if defined(__ARM_FEATURE_UNALIGNED) || defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) -# define XXH_USE_UNALIGNED_ACCESS 1 -#endif - -// XXH_ACCEPT_NULL_INPUT_POINTER : -// If the input pointer is a null pointer, xxHash default behavior is to trigger a memory access error, since it is a bad pointer. -// When this option is enabled, xxHash output for null input pointers will be the same as a null-length input. -// This option has a very small performance cost (only measurable on small inputs). -// By default, this option is disabled. To enable it, uncomment below define : -// #define XXH_ACCEPT_NULL_INPUT_POINTER 1 - -// XXH_FORCE_NATIVE_FORMAT : -// By default, xxHash library provides endian-independant Hash values, based on little-endian convention. -// Results are therefore identical for little-endian and big-endian CPU. -// This comes at a performance cost for big-endian CPU, since some swapping is required to emulate little-endian format. -// Should endian-independance be of no importance for your application, you may set the #define below to 1. -// It will improve speed for Big-endian CPU. -// This option has no impact on Little_Endian CPU. -#define XXH_FORCE_NATIVE_FORMAT 0 - -//************************************** -// Compiler Specific Options -//************************************** -// Disable some Visual warning messages -#ifdef _MSC_VER // Visual Studio -# pragma warning(disable : 4127) // disable: C4127: conditional expression is constant -#endif - -#ifdef _MSC_VER // Visual Studio -# define FORCE_INLINE static __forceinline -#else -# ifdef __GNUC__ -# define FORCE_INLINE static inline __attribute__((always_inline)) -# else -# define FORCE_INLINE static inline -# endif -#endif - -//************************************** -// Includes & Memory related functions -//************************************** -#include "xxhash.h" -// Modify the local functions below should you wish to use some other memory routines -// for malloc(), free() -#include <stdlib.h> -static void* XXH_malloc(size_t s) { return malloc(s); } -static void XXH_free (void* p) { free(p); } -// for memcpy() -#include <string.h> -static void* XXH_memcpy(void* dest, const void* src, size_t size) -{ - return memcpy(dest,src,size); -} - - -//************************************** -// Basic Types -//************************************** -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L // C99 -# include <stdint.h> -typedef uint8_t BYTE; -typedef uint16_t U16; -typedef uint32_t U32; -typedef int32_t S32; -typedef uint64_t U64; -#else -typedef unsigned char BYTE; -typedef unsigned short U16; -typedef unsigned int U32; -typedef signed int S32; -typedef uint64_t U64; -#endif - -#if defined(__GNUC__) && !defined(XXH_USE_UNALIGNED_ACCESS) -# define _PACKED __attribute__ ((packed)) -#else -# define _PACKED -#endif - -#if !defined(XXH_USE_UNALIGNED_ACCESS) && !defined(__GNUC__) -# ifdef __IBMC__ -# pragma pack(1) -# else -# pragma pack(push, 1) -# endif -#endif - -typedef struct _U32_S -{ - U32 v; -} _PACKED U32_S; -typedef struct _U64_S -{ - U64 v; -} _PACKED U64_S; - -#if !defined(XXH_USE_UNALIGNED_ACCESS) && !defined(__GNUC__) -# pragma pack(pop) -#endif - -#define A32(x) (((U32_S *)(x))->v) -#define A64(x) (((U64_S *)(x))->v) - - -//*************************************** -// Compiler-specific Functions and Macros -//*************************************** -#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) - -// Note : although _rotl exists for minGW (GCC under windows), performance seems poor -#if defined(_MSC_VER) -# define XXH_rotl32(x,r) _rotl(x,r) -# define XXH_rotl64(x,r) _rotl64(x,r) -#else -# define XXH_rotl32(x,r) ((x << r) | (x >> (32 - r))) -# define XXH_rotl64(x,r) ((x << r) | (x >> (64 - r))) -#endif - -#if defined(_MSC_VER) // Visual Studio -# define XXH_swap32 _byteswap_ulong -# define XXH_swap64 _byteswap_uint64 -#elif GCC_VERSION >= 403 || defined(__clang__) -# define XXH_swap32 __builtin_bswap32 -# define XXH_swap64 __builtin_bswap64 -#else -static inline U32 XXH_swap32 (U32 x) -{ - return ((x << 24) & 0xff000000 ) | - ((x << 8) & 0x00ff0000 ) | - ((x >> 8) & 0x0000ff00 ) | - ((x >> 24) & 0x000000ff ); -} -static inline U64 XXH_swap64 (U64 x) -{ - return ((x << 56) & 0xff00000000000000ULL) | - ((x << 40) & 0x00ff000000000000ULL) | - ((x << 24) & 0x0000ff0000000000ULL) | - ((x << 8) & 0x000000ff00000000ULL) | - ((x >> 8) & 0x00000000ff000000ULL) | - ((x >> 24) & 0x0000000000ff0000ULL) | - ((x >> 40) & 0x000000000000ff00ULL) | - ((x >> 56) & 0x00000000000000ffULL); -} -#endif - - -//************************************** -// Constants -//************************************** -#define PRIME32_1 2654435761U -#define PRIME32_2 2246822519U -#define PRIME32_3 3266489917U -#define PRIME32_4 668265263U -#define PRIME32_5 374761393U - -#define PRIME64_1 11400714785074694791ULL -#define PRIME64_2 14029467366897019727ULL -#define PRIME64_3 1609587929392839161ULL -#define PRIME64_4 9650029242287828579ULL -#define PRIME64_5 2870177450012600261ULL - -//************************************** -// Architecture Macros -//************************************** -typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; -#ifndef XXH_CPU_LITTLE_ENDIAN // It is possible to define XXH_CPU_LITTLE_ENDIAN externally, for example using a compiler switch -static const int one = 1; -# define XXH_CPU_LITTLE_ENDIAN (*(char*)(&one)) -#endif - - -//************************************** -// Macros -//************************************** -#define XXH_STATIC_ASSERT(c) { enum { XXH_static_assert = 1/(!!(c)) }; } // use only *after* variable declarations - - -//**************************** -// Memory reads -//**************************** -typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment; - -FORCE_INLINE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endian, XXH_alignment align) -{ - if (align==XXH_unaligned) - return endian==XXH_littleEndian ? A32(ptr) : XXH_swap32(A32(ptr)); - else - return endian==XXH_littleEndian ? *(U32*)ptr : XXH_swap32(*(U32*)ptr); -} - -FORCE_INLINE U32 XXH_readLE32(const void* ptr, XXH_endianess endian) -{ - return XXH_readLE32_align(ptr, endian, XXH_unaligned); -} - -FORCE_INLINE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endian, XXH_alignment align) -{ - if (align==XXH_unaligned) - return endian==XXH_littleEndian ? A64(ptr) : XXH_swap64(A64(ptr)); - else - return endian==XXH_littleEndian ? *(U64*)ptr : XXH_swap64(*(U64*)ptr); -} - -FORCE_INLINE U64 XXH_readLE64(const void* ptr, XXH_endianess endian) -{ - return XXH_readLE64_align(ptr, endian, XXH_unaligned); -} - - -//**************************** -// Simple Hash Functions -//**************************** -FORCE_INLINE U32 XXH32_endian_align(const void* input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align) -{ - const BYTE* p = (const BYTE*)input; - const BYTE* bEnd = p + len; - U32 h32; -#define XXH_get32bits(p) XXH_readLE32_align(p, endian, align) - -#ifdef XXH_ACCEPT_NULL_INPUT_POINTER - if (p==NULL) - { - len=0; - bEnd=p=(const BYTE*)(size_t)16; - } -#endif - - if (len>=16) - { - const BYTE* const limit = bEnd - 16; - U32 v1 = seed + PRIME32_1 + PRIME32_2; - U32 v2 = seed + PRIME32_2; - U32 v3 = seed + 0; - U32 v4 = seed - PRIME32_1; - - do - { - v1 += XXH_get32bits(p) * PRIME32_2; - v1 = XXH_rotl32(v1, 13); - v1 *= PRIME32_1; - p+=4; - v2 += XXH_get32bits(p) * PRIME32_2; - v2 = XXH_rotl32(v2, 13); - v2 *= PRIME32_1; - p+=4; - v3 += XXH_get32bits(p) * PRIME32_2; - v3 = XXH_rotl32(v3, 13); - v3 *= PRIME32_1; - p+=4; - v4 += XXH_get32bits(p) * PRIME32_2; - v4 = XXH_rotl32(v4, 13); - v4 *= PRIME32_1; - p+=4; - } - while (p<=limit); - - h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); - } - else - { - h32 = seed + PRIME32_5; - } - - h32 += (U32) len; - - while (p+4<=bEnd) - { - h32 += XXH_get32bits(p) * PRIME32_3; - h32 = XXH_rotl32(h32, 17) * PRIME32_4 ; - p+=4; - } - - while (p<bEnd) - { - h32 += (*p) * PRIME32_5; - h32 = XXH_rotl32(h32, 11) * PRIME32_1 ; - p++; - } - - h32 ^= h32 >> 15; - h32 *= PRIME32_2; - h32 ^= h32 >> 13; - h32 *= PRIME32_3; - h32 ^= h32 >> 16; - - return h32; -} - - -unsigned int XXH32 (const void* input, size_t len, unsigned seed) -{ -#if 0 - // Simple version, good for code maintenance, but unfortunately slow for small inputs - XXH32_state_t state; - XXH32_reset(&state, seed); - XXH32_update(&state, input, len); - return XXH32_digest(&state); -#else - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - -# if !defined(XXH_USE_UNALIGNED_ACCESS) - if ((((size_t)input) & 3) == 0) // Input is aligned, let's leverage the speed advantage - { - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); - else - return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); - } -# endif - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); - else - return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); -#endif -} - -FORCE_INLINE U64 XXH64_endian_align(const void* input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align) -{ - const BYTE* p = (const BYTE*)input; - const BYTE* bEnd = p + len; - U64 h64; -#define XXH_get64bits(p) XXH_readLE64_align(p, endian, align) - -#ifdef XXH_ACCEPT_NULL_INPUT_POINTER - if (p==NULL) - { - len=0; - bEnd=p=(const BYTE*)(size_t)32; - } -#endif - - if (len>=32) - { - const BYTE* const limit = bEnd - 32; - U64 v1 = seed + PRIME64_1 + PRIME64_2; - U64 v2 = seed + PRIME64_2; - U64 v3 = seed + 0; - U64 v4 = seed - PRIME64_1; - - do - { - v1 += XXH_get64bits(p) * PRIME64_2; - p+=8; - v1 = XXH_rotl64(v1, 31); - v1 *= PRIME64_1; - v2 += XXH_get64bits(p) * PRIME64_2; - p+=8; - v2 = XXH_rotl64(v2, 31); - v2 *= PRIME64_1; - v3 += XXH_get64bits(p) * PRIME64_2; - p+=8; - v3 = XXH_rotl64(v3, 31); - v3 *= PRIME64_1; - v4 += XXH_get64bits(p) * PRIME64_2; - p+=8; - v4 = XXH_rotl64(v4, 31); - v4 *= PRIME64_1; - } - while (p<=limit); - - h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); - - v1 *= PRIME64_2; - v1 = XXH_rotl64(v1, 31); - v1 *= PRIME64_1; - h64 ^= v1; - h64 = h64 * PRIME64_1 + PRIME64_4; - - v2 *= PRIME64_2; - v2 = XXH_rotl64(v2, 31); - v2 *= PRIME64_1; - h64 ^= v2; - h64 = h64 * PRIME64_1 + PRIME64_4; - - v3 *= PRIME64_2; - v3 = XXH_rotl64(v3, 31); - v3 *= PRIME64_1; - h64 ^= v3; - h64 = h64 * PRIME64_1 + PRIME64_4; - - v4 *= PRIME64_2; - v4 = XXH_rotl64(v4, 31); - v4 *= PRIME64_1; - h64 ^= v4; - h64 = h64 * PRIME64_1 + PRIME64_4; - } - else - { - h64 = seed + PRIME64_5; - } - - h64 += (U64) len; - - while (p+8<=bEnd) - { - U64 k1 = XXH_get64bits(p); - k1 *= PRIME64_2; - k1 = XXH_rotl64(k1,31); - k1 *= PRIME64_1; - h64 ^= k1; - h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; - p+=8; - } - - if (p+4<=bEnd) - { - h64 ^= (U64)(XXH_get32bits(p)) * PRIME64_1; - h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; - p+=4; - } - - while (p<bEnd) - { - h64 ^= (*p) * PRIME64_5; - h64 = XXH_rotl64(h64, 11) * PRIME64_1; - p++; - } - - h64 ^= h64 >> 33; - h64 *= PRIME64_2; - h64 ^= h64 >> 29; - h64 *= PRIME64_3; - h64 ^= h64 >> 32; - - return h64; -} - - -uint64_t XXH64 (const void* input, size_t len, uint64_t seed) -{ -#if 0 - // Simple version, good for code maintenance, but unfortunately slow for small inputs - XXH64_state_t state; - XXH64_reset(&state, seed); - XXH64_update(&state, input, len); - return XXH64_digest(&state); -#else - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - -# if !defined(XXH_USE_UNALIGNED_ACCESS) - if ((((size_t)input) & 7)==0) // Input is aligned, let's leverage the speed advantage - { - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); - else - return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); - } -# endif - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); - else - return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); -#endif -} - -/**************************************************** - * Advanced Hash Functions -****************************************************/ - -/*** Allocation ***/ -typedef struct -{ - U64 total_len; - U32 seed; - U32 v1; - U32 v2; - U32 v3; - U32 v4; - U32 mem32[4]; /* defined as U32 for alignment */ - U32 memsize; -} XXH_istate32_t; - -typedef struct -{ - U64 total_len; - U64 seed; - U64 v1; - U64 v2; - U64 v3; - U64 v4; - U64 mem64[4]; /* defined as U64 for alignment */ - U32 memsize; -} XXH_istate64_t; - - -XXH32_state_t* XXH32_createState(void) -{ - XXH_STATIC_ASSERT(sizeof(XXH32_state_t) >= sizeof(XXH_istate32_t)); // A compilation error here means XXH32_state_t is not large enough - return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); -} - -void* XXH32_init (unsigned seed) -{ - XXH32_state_t *st = XXH32_createState(); - XXH32_reset(st, seed); - - return st; -} - -XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) -{ - XXH_free(statePtr); - return XXH_OK; -}; - -XXH64_state_t* XXH64_createState(void) -{ - XXH_STATIC_ASSERT(sizeof(XXH64_state_t) >= sizeof(XXH_istate64_t)); // A compilation error here means XXH64_state_t is not large enough - return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); -} -XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) -{ - XXH_free(statePtr); - return XXH_OK; -}; - - -/*** Hash feed ***/ - -XXH_errorcode XXH32_reset(XXH32_state_t* state_in, U32 seed) -{ - XXH_istate32_t* state = (XXH_istate32_t*) state_in; - state->seed = seed; - state->v1 = seed + PRIME32_1 + PRIME32_2; - state->v2 = seed + PRIME32_2; - state->v3 = seed + 0; - state->v4 = seed - PRIME32_1; - state->total_len = 0; - state->memsize = 0; - return XXH_OK; -} - -XXH_errorcode XXH64_reset(XXH64_state_t* state_in, uint64_t seed) -{ - XXH_istate64_t* state = (XXH_istate64_t*) state_in; - state->seed = seed; - state->v1 = seed + PRIME64_1 + PRIME64_2; - state->v2 = seed + PRIME64_2; - state->v3 = seed + 0; - state->v4 = seed - PRIME64_1; - state->total_len = 0; - state->memsize = 0; - return XXH_OK; -} - - -FORCE_INLINE XXH_errorcode XXH32_update_endian (XXH32_state_t* state_in, const void* input, size_t len, XXH_endianess endian) -{ - XXH_istate32_t* state = (XXH_istate32_t *) state_in; - const BYTE* p = (const BYTE*)input; - const BYTE* const bEnd = p + len; - -#ifdef XXH_ACCEPT_NULL_INPUT_POINTER - if (input==NULL) return XXH_ERROR; -#endif - - state->total_len += len; - - if (state->memsize + len < 16) // fill in tmp buffer - { - XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, len); - state->memsize += (U32)len; - return XXH_OK; - } - - if (state->memsize) // some data left from previous update - { - XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, 16-state->memsize); - { - const U32* p32 = state->mem32; - state->v1 += XXH_readLE32(p32, endian) * PRIME32_2; - state->v1 = XXH_rotl32(state->v1, 13); - state->v1 *= PRIME32_1; - p32++; - state->v2 += XXH_readLE32(p32, endian) * PRIME32_2; - state->v2 = XXH_rotl32(state->v2, 13); - state->v2 *= PRIME32_1; - p32++; - state->v3 += XXH_readLE32(p32, endian) * PRIME32_2; - state->v3 = XXH_rotl32(state->v3, 13); - state->v3 *= PRIME32_1; - p32++; - state->v4 += XXH_readLE32(p32, endian) * PRIME32_2; - state->v4 = XXH_rotl32(state->v4, 13); - state->v4 *= PRIME32_1; - p32++; - } - p += 16-state->memsize; - state->memsize = 0; - } - - if (p <= bEnd-16) - { - const BYTE* const limit = bEnd - 16; - U32 v1 = state->v1; - U32 v2 = state->v2; - U32 v3 = state->v3; - U32 v4 = state->v4; - - do - { - v1 += XXH_readLE32(p, endian) * PRIME32_2; - v1 = XXH_rotl32(v1, 13); - v1 *= PRIME32_1; - p+=4; - v2 += XXH_readLE32(p, endian) * PRIME32_2; - v2 = XXH_rotl32(v2, 13); - v2 *= PRIME32_1; - p+=4; - v3 += XXH_readLE32(p, endian) * PRIME32_2; - v3 = XXH_rotl32(v3, 13); - v3 *= PRIME32_1; - p+=4; - v4 += XXH_readLE32(p, endian) * PRIME32_2; - v4 = XXH_rotl32(v4, 13); - v4 *= PRIME32_1; - p+=4; - } - while (p<=limit); - - state->v1 = v1; - state->v2 = v2; - state->v3 = v3; - state->v4 = v4; - } - - if (p < bEnd) - { - XXH_memcpy(state->mem32, p, bEnd-p); - state->memsize = (int)(bEnd-p); - } - - return XXH_OK; -} - -XXH_errorcode XXH32_update (XXH32_state_t* state_in, const void* input, size_t len) -{ - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH32_update_endian(state_in, input, len, XXH_littleEndian); - else - return XXH32_update_endian(state_in, input, len, XXH_bigEndian); -} - - - -FORCE_INLINE U32 XXH32_digest_endian (const XXH32_state_t* state_in, XXH_endianess endian) -{ - XXH_istate32_t* state = (XXH_istate32_t*) state_in; - const BYTE * p = (const BYTE*)state->mem32; - BYTE* bEnd = (BYTE*)(state->mem32) + state->memsize; - U32 h32; - - if (state->total_len >= 16) - { - h32 = XXH_rotl32(state->v1, 1) + XXH_rotl32(state->v2, 7) + XXH_rotl32(state->v3, 12) + XXH_rotl32(state->v4, 18); - } - else - { - h32 = state->seed + PRIME32_5; - } - - h32 += (U32) state->total_len; - - while (p+4<=bEnd) - { - h32 += XXH_readLE32(p, endian) * PRIME32_3; - h32 = XXH_rotl32(h32, 17) * PRIME32_4; - p+=4; - } - - while (p<bEnd) - { - h32 += (*p) * PRIME32_5; - h32 = XXH_rotl32(h32, 11) * PRIME32_1; - p++; - } - - h32 ^= h32 >> 15; - h32 *= PRIME32_2; - h32 ^= h32 >> 13; - h32 *= PRIME32_3; - h32 ^= h32 >> 16; -#if 0 - XXH32_freeState((XXH32_state_t *)state_in); -#endif - return h32; -} - - -U32 XXH32_digest (const XXH32_state_t* state_in) -{ - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH32_digest_endian(state_in, XXH_littleEndian); - else - return XXH32_digest_endian(state_in, XXH_bigEndian); -} - - -FORCE_INLINE XXH_errorcode XXH64_update_endian (XXH64_state_t* state_in, const void* input, size_t len, XXH_endianess endian) -{ - XXH_istate64_t * state = (XXH_istate64_t *) state_in; - const BYTE* p = (const BYTE*)input; - const BYTE* const bEnd = p + len; - -#ifdef XXH_ACCEPT_NULL_INPUT_POINTER - if (input==NULL) return XXH_ERROR; -#endif - - state->total_len += len; - - if (state->memsize + len < 32) // fill in tmp buffer - { - XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, len); - state->memsize += (U32)len; - return XXH_OK; - } - - if (state->memsize) // some data left from previous update - { - XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, 32-state->memsize); - { - const U64* p64 = state->mem64; - state->v1 += XXH_readLE64(p64, endian) * PRIME64_2; - state->v1 = XXH_rotl64(state->v1, 31); - state->v1 *= PRIME64_1; - p64++; - state->v2 += XXH_readLE64(p64, endian) * PRIME64_2; - state->v2 = XXH_rotl64(state->v2, 31); - state->v2 *= PRIME64_1; - p64++; - state->v3 += XXH_readLE64(p64, endian) * PRIME64_2; - state->v3 = XXH_rotl64(state->v3, 31); - state->v3 *= PRIME64_1; - p64++; - state->v4 += XXH_readLE64(p64, endian) * PRIME64_2; - state->v4 = XXH_rotl64(state->v4, 31); - state->v4 *= PRIME64_1; - p64++; - } - p += 32-state->memsize; - state->memsize = 0; - } - - if (p+32 <= bEnd) - { - const BYTE* const limit = bEnd - 32; - U64 v1 = state->v1; - U64 v2 = state->v2; - U64 v3 = state->v3; - U64 v4 = state->v4; - - do - { - v1 += XXH_readLE64(p, endian) * PRIME64_2; - v1 = XXH_rotl64(v1, 31); - v1 *= PRIME64_1; - p+=8; - v2 += XXH_readLE64(p, endian) * PRIME64_2; - v2 = XXH_rotl64(v2, 31); - v2 *= PRIME64_1; - p+=8; - v3 += XXH_readLE64(p, endian) * PRIME64_2; - v3 = XXH_rotl64(v3, 31); - v3 *= PRIME64_1; - p+=8; - v4 += XXH_readLE64(p, endian) * PRIME64_2; - v4 = XXH_rotl64(v4, 31); - v4 *= PRIME64_1; - p+=8; - } - while (p<=limit); - - state->v1 = v1; - state->v2 = v2; - state->v3 = v3; - state->v4 = v4; - } - - if (p < bEnd) - { - XXH_memcpy(state->mem64, p, bEnd-p); - state->memsize = (int)(bEnd-p); - } - - return XXH_OK; -} - -XXH_errorcode XXH64_update (XXH64_state_t* state_in, const void* input, size_t len) -{ - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH64_update_endian(state_in, input, len, XXH_littleEndian); - else - return XXH64_update_endian(state_in, input, len, XXH_bigEndian); -} - - - -FORCE_INLINE U64 XXH64_digest_endian (const XXH64_state_t* state_in, XXH_endianess endian) -{ - XXH_istate64_t * state = (XXH_istate64_t *) state_in; - const BYTE * p = (const BYTE*)state->mem64; - BYTE* bEnd = (BYTE*)state->mem64 + state->memsize; - U64 h64; - - if (state->total_len >= 32) - { - U64 v1 = state->v1; - U64 v2 = state->v2; - U64 v3 = state->v3; - U64 v4 = state->v4; - - h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); - - v1 *= PRIME64_2; - v1 = XXH_rotl64(v1, 31); - v1 *= PRIME64_1; - h64 ^= v1; - h64 = h64*PRIME64_1 + PRIME64_4; - - v2 *= PRIME64_2; - v2 = XXH_rotl64(v2, 31); - v2 *= PRIME64_1; - h64 ^= v2; - h64 = h64*PRIME64_1 + PRIME64_4; - - v3 *= PRIME64_2; - v3 = XXH_rotl64(v3, 31); - v3 *= PRIME64_1; - h64 ^= v3; - h64 = h64*PRIME64_1 + PRIME64_4; - - v4 *= PRIME64_2; - v4 = XXH_rotl64(v4, 31); - v4 *= PRIME64_1; - h64 ^= v4; - h64 = h64*PRIME64_1 + PRIME64_4; - } - else - { - h64 = state->seed + PRIME64_5; - } - - h64 += (U64) state->total_len; - - while (p+8<=bEnd) - { - U64 k1 = XXH_readLE64(p, endian); - k1 *= PRIME64_2; - k1 = XXH_rotl64(k1,31); - k1 *= PRIME64_1; - h64 ^= k1; - h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; - p+=8; - } - - if (p+4<=bEnd) - { - h64 ^= (U64)(XXH_readLE32(p, endian)) * PRIME64_1; - h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; - p+=4; - } - - while (p<bEnd) - { - h64 ^= (*p) * PRIME64_5; - h64 = XXH_rotl64(h64, 11) * PRIME64_1; - p++; - } - - h64 ^= h64 >> 33; - h64 *= PRIME64_2; - h64 ^= h64 >> 29; - h64 *= PRIME64_3; - h64 ^= h64 >> 32; -#if 0 - XXH64_freeState((XXH64_state_t *)state_in); -#endif - return h64; -} - - -uint64_t XXH64_digest (const XXH64_state_t* state_in) -{ - XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; - - if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) - return XXH64_digest_endian(state_in, XXH_littleEndian); - else - return XXH64_digest_endian(state_in, XXH_bigEndian); -} - - diff --git a/contrib/libucl/src/xxhash.h b/contrib/libucl/src/xxhash.h deleted file mode 100644 index 49b0239..0000000 --- a/contrib/libucl/src/xxhash.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - xxHash - Extremely Fast Hash algorithm - Header File - Copyright (C) 2012-2014, Yann Collet. - BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - You can contact the author at : - - xxHash source repository : http://code.google.com/p/xxhash/ -*/ - -/* Notice extracted from xxHash homepage : - -xxHash is an extremely fast Hash algorithm, running at RAM speed limits. -It also successfully passes all tests from the SMHasher suite. - -Comparison (single thread, Windows Seven 32 bits, using SMHasher on a Core 2 Duo @3GHz) - -Name Speed Q.Score Author -xxHash 5.4 GB/s 10 -CrapWow 3.2 GB/s 2 Andrew -MumurHash 3a 2.7 GB/s 10 Austin Appleby -SpookyHash 2.0 GB/s 10 Bob Jenkins -SBox 1.4 GB/s 9 Bret Mulvey -Lookup3 1.2 GB/s 9 Bob Jenkins -SuperFastHash 1.2 GB/s 1 Paul Hsieh -CityHash64 1.05 GB/s 10 Pike & Alakuijala -FNV 0.55 GB/s 5 Fowler, Noll, Vo -CRC32 0.43 GB/s 9 -MD5-32 0.33 GB/s 10 Ronald L. Rivest -SHA1-32 0.28 GB/s 10 - -Q.Score is a measure of quality of the hash function. -It depends on successfully passing SMHasher test set. -10 is a perfect score. -*/ -#ifndef LIBUCL_XXHASH_H -#define LIBUCL_XXHASH_H - -#if defined (__cplusplus) -extern "C" { -#endif - - -/***************************** - Includes -*****************************/ -#include <stddef.h> /* size_t */ -#include <stdint.h> - - -/***************************** - Type -*****************************/ -typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; - - - -/***************************** - Simple Hash Functions -*****************************/ - -unsigned int XXH32 (const void* input, size_t length, unsigned seed); -uint64_t XXH64 (const void* input, size_t length, uint64_t seed); - -/* -XXH32() : - Calculate the 32-bits hash of sequence "length" bytes stored at memory address "input". - The memory between input & input+length must be valid (allocated and read-accessible). - "seed" can be used to alter the result predictably. - This function successfully passes all SMHasher tests. - Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark) : 5.4 GB/s -XXH64() : - Calculate the 64-bits hash of sequence of length "len" stored at memory address "input". -*/ - - - -/***************************** - Advanced Hash Functions -*****************************/ -typedef struct { int64_t ll[ 6]; } XXH32_state_t; -typedef struct { int64_t ll[11]; } XXH64_state_t; - -/* -These structures allow static allocation of XXH states. -States must then be initialized using XXHnn_reset() before first use. - -If you prefer dynamic allocation, please refer to functions below. -*/ - -/* - * !!! - * Rspamd specific: we use the legacy method to free state when digest is obtained - * !!! - */ -void * XXH32_init (unsigned seed); -XXH32_state_t* XXH32_createState(void); -XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); - -XXH64_state_t* XXH64_createState(void); -XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); - -/* -These functions create and release memory for XXH state. -States must then be initialized using XXHnn_reset() before first use. -*/ - - -XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, unsigned seed); -XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); -unsigned int XXH32_digest (const XXH32_state_t* statePtr); - -XXH_errorcode XXH64_reset (XXH64_state_t* statePtr, uint64_t seed); -XXH_errorcode XXH64_update (XXH64_state_t* statePtr, const void* input, size_t length); -uint64_t XXH64_digest (const XXH64_state_t* statePtr); - -/* -These functions calculate the xxHash of an input provided in multiple smaller packets, -as opposed to an input provided as a single block. - -XXH state space must first be allocated, using either static or dynamic method provided above. - -Start a new hash by initializing state with a seed, using XXHnn_reset(). - -Then, feed the hash state by calling XXHnn_update() as many times as necessary. -Obviously, input must be valid, meaning allocated and read accessible. -The function returns an error code, with 0 meaning OK, and any other value meaning there is an error. - -Finally, you can produce a hash anytime, by using XXHnn_digest(). -This function returns the final nn-bits hash. -You can nonetheless continue feeding the hash state with more input, -and therefore get some new hashes, by calling again XXHnn_digest(). - -When you are done, don't forget to free XXH state space, using typically XXHnn_freeState(). -*/ - - -#if defined (__cplusplus) -} -#endif - -#endif diff --git a/contrib/libucl/uthash/uthash.h b/contrib/libucl/uthash/uthash.h index 36b1cf4..9ed8bea 100644 --- a/contrib/libucl/uthash/uthash.h +++ b/contrib/libucl/uthash/uthash.h @@ -22,12 +22,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UTHASH_H -#define UTHASH_H +#define UTHASH_H #include <string.h> /* memcmp,strlen */ #include <stddef.h> /* ptrdiff_t */ #include <stdlib.h> /* exit() */ -#include "xxhash.h" +#include "mum.h" /* These macros use decltype or the earlier __typeof GNU extension. As decltype is only available in newer compilers (VS2010 or gcc 4.3+ @@ -50,7 +50,7 @@ do { char **_da_dst = (char**)(&(dst)); \ *_da_dst = (char*)(src); \ } while(0) -#else +#else #define DECLTYPE_ASSIGN(dst,src) \ do { \ (dst) = DECLTYPE(dst)(src); \ @@ -115,12 +115,12 @@ do { if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \ memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \ (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ -} while (0) +} while (0) #define HASH_BLOOM_FREE(tbl) \ do { \ uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ -} while (0) +} while (0) #define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8))) #define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8))) @@ -132,9 +132,9 @@ do { HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) #else -#define HASH_BLOOM_MAKE(tbl) -#define HASH_BLOOM_FREE(tbl) -#define HASH_BLOOM_ADD(tbl,hashv) +#define HASH_BLOOM_MAKE(tbl) +#define HASH_BLOOM_FREE(tbl) +#define HASH_BLOOM_ADD(tbl,hashv) #define HASH_BLOOM_TEST(tbl,hashv) (1) #define HASH_BLOOM_BYTELEN 0 #endif @@ -170,7 +170,7 @@ do { }; \ HASH_ADD(hh,head,fieldname,keylen_in,add); \ } while(0) - + #define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ do { \ unsigned _ha_bkt; \ @@ -328,10 +328,10 @@ do { } \ } while (0) #else -#define HASH_FSCK(hh,head) +#define HASH_FSCK(hh,head) #endif -/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to +/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to * the descriptor to which this macro is defined for tuning the hash function. * The app can #include <unistd.h> to get the prototype for write(2). */ #ifdef HASH_EMIT_KEYS @@ -341,12 +341,12 @@ do { write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ write(HASH_EMIT_KEYS, keyptr, fieldlen); \ } while (0) -#else -#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) +#else +#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) #endif /* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ -#ifdef HASH_FUNCTION +#ifdef HASH_FUNCTION #define HASH_FCN HASH_FUNCTION #else #define HASH_FCN HASH_XX @@ -356,14 +356,14 @@ do { #define HASH_XX(key,keylen,num_bkts,hashv,bkt) \ do { \ - hashv = XXH32 (key, keylen, XX_HASH_PRIME); \ + hashv = mum_hash (key, keylen, XX_HASH_PRIME); \ bkt = (hashv) & (num_bkts-1); \ } while (0) /* key comparison function; return 0 if keys equal */ -#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) +#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) /* iterate over items in a known bucket to find desired item */ #define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \ @@ -404,36 +404,36 @@ do { } \ if (hh_del->hh_next) { \ hh_del->hh_next->hh_prev = hh_del->hh_prev; \ - } + } /* Bucket expansion has the effect of doubling the number of buckets * and redistributing the items into the new buckets. Ideally the * items will distribute more or less evenly into the new buckets * (the extent to which this is true is a measure of the quality of - * the hash function as it applies to the key domain). - * + * the hash function as it applies to the key domain). + * * With the items distributed into more buckets, the chain length * (item count) in each bucket is reduced. Thus by expanding buckets - * the hash keeps a bound on the chain length. This bounded chain + * the hash keeps a bound on the chain length. This bounded chain * length is the essence of how a hash provides constant time lookup. - * + * * The calculation of tbl->ideal_chain_maxlen below deserves some * explanation. First, keep in mind that we're calculating the ideal * maximum chain length based on the *new* (doubled) bucket count. * In fractions this is just n/b (n=number of items,b=new num buckets). - * Since the ideal chain length is an integer, we want to calculate + * Since the ideal chain length is an integer, we want to calculate * ceil(n/b). We don't depend on floating point arithmetic in this * hash, so to calculate ceil(n/b) with integers we could write - * + * * ceil(n/b) = (n/b) + ((n%b)?1:0) - * + * * and in fact a previous version of this hash did just that. * But now we have improved things a bit by recognizing that b is * always a power of two. We keep its base 2 log handy (call it lb), * so now we can write this with a bit shift and logical AND: - * + * * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) - * + * */ #define HASH_EXPAND_BUCKETS(tbl) \ do { \ @@ -485,7 +485,7 @@ do { /* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ -/* Note that HASH_SORT assumes the hash handle name to be hh. +/* Note that HASH_SORT assumes the hash handle name to be hh. * HASH_SRT was added to allow the hash handle name to be passed in. */ #define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) #define HASH_SRT(hh,head,cmpfcn) \ @@ -575,10 +575,10 @@ do { } \ } while (0) -/* This function selects items from one hash into another hash. - * The end result is that the selected items have dual presence - * in both hashes. There is no copy of the items made; rather - * they are added into the new hash through a secondary hash +/* This function selects items from one hash into another hash. + * The end result is that the selected items have dual presence + * in both hashes. There is no copy of the items made; rather + * they are added into the new hash through a secondary hash * hash handle that must be present in the structure. */ #define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ do { \ @@ -638,7 +638,7 @@ do { #ifdef NO_DECLTYPE #define HASH_ITER(hh,head,el,tmp) \ for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \ - el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) + el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) #else #define HASH_ITER(hh,head,el,tmp) \ for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \ @@ -646,7 +646,7 @@ for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); #endif /* obtain a count of items in the hash */ -#define HASH_COUNT(head) HASH_CNT(hh,head) +#define HASH_COUNT(head) HASH_CNT(hh,head) #define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0) typedef struct UT_hash_bucket { @@ -655,7 +655,7 @@ typedef struct UT_hash_bucket { /* expand_mult is normally set to 0. In this situation, the max chain length * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If - * the bucket's chain exceeds this length, bucket expansion is triggered). + * the bucket's chain exceeds this length, bucket expansion is triggered). * However, setting expand_mult to a non-zero value delays bucket expansion * (that would be triggered by additions to this particular bucket) * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. @@ -663,7 +663,7 @@ typedef struct UT_hash_bucket { * multiplier is to reduce bucket expansions, since they are expensive, in * situations where we know that a particular bucket tends to be overused. * It is better to let its chain length grow to a longer yet-still-bounded - * value, than to do an O(n) bucket expansion too often. + * value, than to do an O(n) bucket expansion too often. */ unsigned expand_mult; @@ -689,7 +689,7 @@ typedef struct UT_hash_table { * hash distribution; reaching them in a chain traversal takes >ideal steps */ unsigned nonideal_items; - /* ineffective expands occur when a bucket doubling was performed, but + /* ineffective expands occur when a bucket doubling was performed, but * afterward, more than half the items in the hash had nonideal chain * positions. If this happens on two consecutive expansions we inhibit any * further expansion, as it's not helping; this happens when the hash diff --git a/contrib/ntp/ChangeLog b/contrib/ntp/ChangeLog index f61a447..0805467 100644 --- a/contrib/ntp/ChangeLog +++ b/contrib/ntp/ChangeLog @@ -1,4 +1,26 @@ --- +(4.2.8p8) 2016/06/02 Released by Harlan Stenn <stenn@ntp.org> + +* [Sec 3042] Broadcast Interleave. HStenn. +* [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + - validate origin timestamps on bad MACs, too. stenn@ntp.org +* [Sec 3044] Spoofed server packets are partially processed. HStenn. +* [Sec 3045] Bad authentication demobilizes ephemeral associations. JPerlinger. +* [Sec 3046] CRYPTO_NAK crash. stenn@ntp.org +* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org + - provide build environment + - 'wint_t' and 'struct timespec' defined by VS2015 + - fixed print()/scanf() format issues +* [Bug 3052] Add a .gitignore file. Edmund Wong. +* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite. +* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, + JPerlinger, HStenn. +* Update the NEWS file for 4.2.8p8. HStenn. +* Fix typo in ntp-wait and plot_summary. HStenn. +* Make sure we have an "author" file for git imports. HStenn. +* Update the sntp problem tests for MacOS. HStenn. + +--- (4.2.8p7) 2016/04/26 Released by Harlan Stenn <stenn@ntp.org> * [Sec 2901] KoD packets must have non-zero transmit timestamps. HStenn. diff --git a/contrib/ntp/CommitLog b/contrib/ntp/CommitLog index 3c221ac..4577755 100644 --- a/contrib/ntp/CommitLog +++ b/contrib/ntp/CommitLog @@ -1,3 +1,774 @@ +ChangeSet@1.3686, 2016-06-02 07:40:06-04:00, stenn@deacon.udel.edu + NTP_4_2_8P8 + TAG: NTP_4_2_8P8 + + ChangeLog@1.1834 +1 -0 + NTP_4_2_8P8 + + ntpd/invoke-ntp.conf.texi@1.200 +1 -1 + NTP_4_2_8P8 + + ntpd/invoke-ntp.keys.texi@1.190 +1 -1 + NTP_4_2_8P8 + + ntpd/invoke-ntpd.texi@1.506 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.conf.5man@1.234 +3 -3 + NTP_4_2_8P8 + + ntpd/ntp.conf.5mdoc@1.234 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.conf.html@1.185 +55 -19 + NTP_4_2_8P8 + + ntpd/ntp.conf.man.in@1.234 +3 -3 + NTP_4_2_8P8 + + ntpd/ntp.conf.mdoc.in@1.234 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.keys.5man@1.224 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.keys.5mdoc@1.224 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.keys.html@1.186 +1 -1 + NTP_4_2_8P8 + + ntpd/ntp.keys.man.in@1.224 +2 -2 + NTP_4_2_8P8 + + ntpd/ntp.keys.mdoc.in@1.224 +2 -2 + NTP_4_2_8P8 + + ntpd/ntpd-opts.c@1.528 +7 -7 + NTP_4_2_8P8 + + ntpd/ntpd-opts.h@1.527 +3 -3 + NTP_4_2_8P8 + + ntpd/ntpd.1ntpdman@1.335 +3 -3 + NTP_4_2_8P8 + + ntpd/ntpd.1ntpdmdoc@1.335 +2 -2 + NTP_4_2_8P8 + + ntpd/ntpd.html@1.179 +2 -2 + NTP_4_2_8P8 + + ntpd/ntpd.man.in@1.335 +3 -3 + NTP_4_2_8P8 + + ntpd/ntpd.mdoc.in@1.335 +2 -2 + NTP_4_2_8P8 + + ntpdc/invoke-ntpdc.texi@1.503 +2 -2 + NTP_4_2_8P8 + + ntpdc/ntpdc-opts.c@1.521 +7 -7 + NTP_4_2_8P8 + + ntpdc/ntpdc-opts.h@1.520 +3 -3 + NTP_4_2_8P8 + + ntpdc/ntpdc.1ntpdcman@1.334 +3 -3 + NTP_4_2_8P8 + + ntpdc/ntpdc.1ntpdcmdoc@1.334 +2 -2 + NTP_4_2_8P8 + + ntpdc/ntpdc.html@1.347 +2 -2 + NTP_4_2_8P8 + + ntpdc/ntpdc.man.in@1.334 +3 -3 + NTP_4_2_8P8 + + ntpdc/ntpdc.mdoc.in@1.334 +2 -2 + NTP_4_2_8P8 + + ntpq/invoke-ntpq.texi@1.511 +2 -2 + NTP_4_2_8P8 + + ntpq/ntpq-opts.c@1.528 +7 -7 + NTP_4_2_8P8 + + ntpq/ntpq-opts.h@1.526 +3 -3 + NTP_4_2_8P8 + + ntpq/ntpq.1ntpqman@1.339 +3 -3 + NTP_4_2_8P8 + + ntpq/ntpq.1ntpqmdoc@1.339 +2 -2 + NTP_4_2_8P8 + + ntpq/ntpq.html@1.176 +2 -2 + NTP_4_2_8P8 + + ntpq/ntpq.man.in@1.339 +3 -3 + NTP_4_2_8P8 + + ntpq/ntpq.mdoc.in@1.339 +2 -2 + NTP_4_2_8P8 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.505 +2 -2 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd-opts.c@1.523 +7 -7 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd-opts.h@1.522 +3 -3 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.334 +3 -3 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.334 +2 -2 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd.html@1.174 +1 -1 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd.man.in@1.334 +3 -3 + NTP_4_2_8P8 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.334 +2 -2 + NTP_4_2_8P8 + + packageinfo.sh@1.528 +2 -2 + NTP_4_2_8P8 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.95 +3 -3 + NTP_4_2_8P8 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.96 +2 -2 + NTP_4_2_8P8 + + scripts/calc_tickadj/calc_tickadj.html@1.97 +1 -1 + NTP_4_2_8P8 + + scripts/calc_tickadj/calc_tickadj.man.in@1.94 +3 -3 + NTP_4_2_8P8 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.96 +2 -2 + NTP_4_2_8P8 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.99 +1 -1 + NTP_4_2_8P8 + + scripts/invoke-plot_summary.texi@1.117 +2 -2 + NTP_4_2_8P8 + + scripts/invoke-summary.texi@1.116 +2 -2 + NTP_4_2_8P8 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.326 +2 -2 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait-opts@1.62 +2 -2 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.323 +3 -3 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.324 +2 -2 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait.html@1.343 +2 -2 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait.man.in@1.323 +3 -3 + NTP_4_2_8P8 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.324 +2 -2 + NTP_4_2_8P8 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.114 +2 -2 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep-opts@1.64 +2 -2 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.102 +3 -3 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.102 +2 -2 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep.html@1.115 +2 -2 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep.man.in@1.102 +3 -3 + NTP_4_2_8P8 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.103 +2 -2 + NTP_4_2_8P8 + + scripts/ntptrace/invoke-ntptrace.texi@1.115 +2 -2 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace-opts@1.64 +2 -2 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace.1ntptraceman@1.102 +3 -3 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.103 +2 -2 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace.html@1.116 +2 -2 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace.man.in@1.102 +3 -3 + NTP_4_2_8P8 + + scripts/ntptrace/ntptrace.mdoc.in@1.104 +2 -2 + NTP_4_2_8P8 + + scripts/plot_summary-opts@1.65 +2 -2 + NTP_4_2_8P8 + + scripts/plot_summary.1plot_summaryman@1.115 +3 -3 + NTP_4_2_8P8 + + scripts/plot_summary.1plot_summarymdoc@1.115 +2 -2 + NTP_4_2_8P8 + + scripts/plot_summary.html@1.118 +40 -58 + NTP_4_2_8P8 + + scripts/plot_summary.man.in@1.115 +3 -3 + NTP_4_2_8P8 + + scripts/plot_summary.mdoc.in@1.115 +2 -2 + NTP_4_2_8P8 + + scripts/summary-opts@1.64 +2 -2 + NTP_4_2_8P8 + + scripts/summary.1summaryman@1.114 +3 -3 + NTP_4_2_8P8 + + scripts/summary.1summarymdoc@1.114 +2 -2 + NTP_4_2_8P8 + + scripts/summary.html@1.117 +2 -2 + NTP_4_2_8P8 + + scripts/summary.man.in@1.114 +3 -3 + NTP_4_2_8P8 + + scripts/summary.mdoc.in@1.114 +2 -2 + NTP_4_2_8P8 + + scripts/update-leap/invoke-update-leap.texi@1.15 +1 -1 + NTP_4_2_8P8 + + scripts/update-leap/update-leap-opts@1.15 +2 -2 + NTP_4_2_8P8 + + scripts/update-leap/update-leap.1update-leapman@1.15 +3 -3 + NTP_4_2_8P8 + + scripts/update-leap/update-leap.1update-leapmdoc@1.15 +2 -2 + NTP_4_2_8P8 + + scripts/update-leap/update-leap.html@1.15 +1 -1 + NTP_4_2_8P8 + + scripts/update-leap/update-leap.man.in@1.15 +3 -3 + NTP_4_2_8P8 + + scripts/update-leap/update-leap.mdoc.in@1.15 +2 -2 + NTP_4_2_8P8 + + sntp/invoke-sntp.texi@1.503 +2 -2 + NTP_4_2_8P8 + + sntp/sntp-opts.c@1.522 +7 -7 + NTP_4_2_8P8 + + sntp/sntp-opts.h@1.520 +3 -3 + NTP_4_2_8P8 + + sntp/sntp.1sntpman@1.338 +3 -3 + NTP_4_2_8P8 + + sntp/sntp.1sntpmdoc@1.338 +2 -2 + NTP_4_2_8P8 + + sntp/sntp.html@1.518 +2 -2 + NTP_4_2_8P8 + + sntp/sntp.man.in@1.338 +3 -3 + NTP_4_2_8P8 + + sntp/sntp.mdoc.in@1.338 +2 -2 + NTP_4_2_8P8 + + util/invoke-ntp-keygen.texi@1.506 +2 -2 + NTP_4_2_8P8 + + util/ntp-keygen-opts.c@1.524 +7 -7 + NTP_4_2_8P8 + + util/ntp-keygen-opts.h@1.522 +3 -3 + NTP_4_2_8P8 + + util/ntp-keygen.1ntp-keygenman@1.334 +3 -3 + NTP_4_2_8P8 + + util/ntp-keygen.1ntp-keygenmdoc@1.334 +2 -2 + NTP_4_2_8P8 + + util/ntp-keygen.html@1.180 +2 -2 + NTP_4_2_8P8 + + util/ntp-keygen.man.in@1.334 +3 -3 + NTP_4_2_8P8 + + util/ntp-keygen.mdoc.in@1.334 +2 -2 + NTP_4_2_8P8 + +ChangeSet@1.3685, 2016-06-02 06:50:37-04:00, stenn@deacon.udel.edu + 4.2.8p8 + + packageinfo.sh@1.527 +1 -1 + 4.2.8p8 + +ChangeSet@1.3684, 2016-05-27 08:02:09+00:00, stenn@psp-deb1.ntp.org + typo + + NEWS@1.174 +1 -1 + typo + +ChangeSet@1.3683, 2016-05-27 00:07:22-07:00, harlan@max.pfcs.com + [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn. + + ChangeLog@1.1833 +2 -0 + [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn. + + NEWS@1.173 +2 -0 + [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn. + + ntpd/ntp_io.c@1.417 +41 -41 + [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn. + +ChangeSet@1.3682, 2016-05-26 22:37:19-07:00, harlan@max.pfcs.com + [Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org + + ChangeLog@1.1832 +2 -1 + [Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org + + NEWS@1.172 +9 -9 + [Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org + + ntpd/ntp_proto.c@1.392 +19 -6 + [Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org + +ChangeSet@1.3681, 2016-05-24 23:31:36+00:00, stenn@psp-deb1.ntp.org + Update the NEWS file for 4.2.8p8. HStenn. + + ChangeLog@1.1831 +1 -0 + Update the NEWS file for 4.2.8p8. HStenn. + + NEWS@1.171 +103 -2 + Update the NEWS file for 4.2.8p8. HStenn. + +ChangeSet@1.3680, 2016-05-24 12:05:06+00:00, stenn@psp-deb1.ntp.org + [Sec 3044] Spoofed server packets are partially processed. HStenn. + + ChangeLog@1.1830 +3 -2 + [Sec 3044] Spoofed server packets are partially processed. HStenn. + + ntpd/ntp_proto.c@1.391 +39 -24 + [Sec 3044] Spoofed server packets are partially processed. HStenn. + +ChangeSet@1.3669.3.2, 2016-05-24 02:58:00-07:00, harlan@hms-mbp11.pfcs.com + Make sure we have an "author" file for git imports. HStenn. + + ChangeLog@1.1820.3.3 +1 -0 + Update the problem tests for MacOS for sntp. HStenn. + + ChangeLog@1.1820.3.2 +1 -0 + Make sure we have an "author" file for git imports. HStenn. + + configure.ac@1.606 +1 -0 + Make sure we have an "author" file for git imports. HStenn. + + scripts/build/Makefile.am@1.5 +1 -1 + Make sure we have an "author" file for git imports. HStenn. + + scripts/build/genAuthors.in@1.1 +82 -0 + BitKeeper file /Users/harlan/src/ntp-stable/scripts/build/genAuthors.in + + scripts/build/genAuthors.in@1.0 +0 -0 + + sntp/configure.ac@1.83 +2 -0 + Make sure we have an "author" file for git imports. HStenn. + + sntp/m4/ntp_problemtests.m4@1.5 +1 -0 + Make sure we have an "author" file for git imports. HStenn. + + sntp/m4/sntp_problemtests.m4@1.1 +47 -0 + BitKeeper file /Users/harlan/src/ntp-stable/sntp/m4/sntp_problemtests.m4 + + sntp/m4/sntp_problemtests.m4@1.0 +0 -0 + + sntp/tests/Makefile.am@1.67 +8 -2 + Update the problem tests for MacOS for sntp. HStenn. + +ChangeSet@1.3669.3.1, 2016-05-24 02:25:46-07:00, harlan@hms-mbp11.pfcs.com + [Sec 3042] Broadcast Interleave. HStenn. + + ChangeLog@1.1820.3.1 +4 -0 + [Sec 3042] Broadcast Interleave. HStenn. + + ntpd/ntp_proto.c@1.386.1.1 +69 -14 + [Sec 3042] Broadcast Interleave. HStenn. + +ChangeSet@1.3678, 2016-05-23 09:53:37+00:00, stenn@psp-deb1.ntp.org + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ChangeLog@1.1828 +1 -1 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + include/ntp.h@1.220 +1 -0 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/complete.conf.in@1.31 +1 -1 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/invoke-ntp.conf.texi@1.199 +23 -3 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/keyword-gen-utd@1.28 +1 -1 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/keyword-gen.c@1.34 +2 -1 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp.conf.5man@1.233 +27 -6 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp.conf.5mdoc@1.233 +24 -2 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp.conf.def@1.24 +22 -0 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp.conf.man.in@1.233 +27 -6 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp.conf.mdoc.in@1.233 +24 -2 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_config.c@1.338 +6 -2 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_keyword.h@1.30 +617 -597 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_parser.c@1.102 +1541 -1773 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_parser.h@1.66 +294 -306 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_parser.y@1.92 +2 -0 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + + ntpd/ntp_proto.c@1.389 +29 -8 + [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org + +ChangeSet@1.3671.1.3, 2016-05-17 06:49:41+00:00, stenn@psp-deb1.ntp.org + [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite. + + ChangeLog@1.1822.1.3 +1 -0 + [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite. + + html/miscopt.html@1.86 +2 -2 + [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite. + +ChangeSet@1.3671.1.2, 2016-05-17 04:25:50+00:00, stenn@psp-deb1.ntp.org + [Bug 3052] Add a .gitignore file. Edmund Wong. + + .gitignore@1.1 +9 -0 + BitKeeper file /home/stenn/ntp-stable/.gitignore + + .gitignore@1.0 +0 -0 + + BitKeeper/etc/ignore@1.91 +0 -1 + [Bug 3052] Add a .gitignore file. Edmund Wong. + + ChangeLog@1.1822.1.2 +1 -0 + [Bug 3052] Add a .gitignore file. Edmund Wong. + +ChangeSet@1.3675, 2016-05-08 11:59:28+02:00, perlinger@ntp.org + [Sec 3043] Autokey association reset. perlinger@ntp.org + (fixes [Sec 3044] and [Sec 3045], too) + + ChangeLog@1.1825 +2 -0 + [Sec 3043] Autokey association reset. perlinger@ntp.org + + ntpd/ntp_proto.c@1.388 +28 -22 + [Sec 3043] Autokey association reset. perlinger@ntp.org + (fixes [Sec 3044] and [Sec 3045], too) + +ChangeSet@1.3674, 2016-05-06 11:05:44+00:00, stenn@psp-deb1.ntp.org + [Sec 3046] CRYPTO_NAK crash + + ChangeLog@1.1824 +1 -0 + [Sec 3046] CRYPTO_NAK crash + + ntpd/ntp_proto.c@1.387 +2 -1 + [Sec 3046] CRYPTO_NAK crash + +ChangeSet@1.3669.2.1, 2016-05-06 09:20:29+00:00, stenn@psp-deb1.ntp.org + Fix typo in ntp-wait and plot_summary. HStenn. + + ChangeLog@1.1820.2.1 +4 -0 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/invoke-plot_summary.texi@1.116 +2 -2 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/ntp-wait/ntp-wait.in@1.12 +1 -1 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary-opts@1.64 +1 -1 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary-opts.def@1.3 +1 -1 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary.1plot_summaryman@1.114 +4 -4 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary.1plot_summarymdoc@1.114 +3 -3 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary.html@1.117 +58 -40 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary.man.in@1.114 +4 -4 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/plot_summary.mdoc.in@1.114 +3 -3 + Fix typo in ntp-wait and plot_summary. HStenn. + + scripts/t/ntp-wait.t@1.2 +1 -1 + Fix typo in ntp-wait and plot_summary. HStenn. + +ChangeSet@1.3672, 2016-05-05 06:17:20+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for 4.2.8p9 for Bug 3038 + + NEWS@1.170 +9 -0 + Update NEWS file for 4.2.8p9 for Bug 3038 + +ChangeSet@1.3671, 2016-05-05 06:09:53+00:00, stenn@psp-deb1.ntp.org + trivial cleanup + + ChangeLog@1.1822 +1 -0 + trivial cleanup + +ChangeSet@1.3670, 2016-04-27 21:54:12+02:00, perlinger@ntp.org + [Bug 3038] NTP fails to build in VS2015 Community Edition + - new build environment + - 'wint_t' and 'struct timespec' defined by VS2015 + - fixed several format clashes in 'printf()' and 'scanf' + + BitKeeper/etc/ignore@1.90 +1 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - skip next version of MSVC symbol database + + ChangeLog@1.1821 +6 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + + ntpd/refclock_parse.c@1.83 +6 -6 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - work around clash SOCKET vs file descriptor formatting + + ntpdc/ntpdc.c@1.107 +2 -2 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - fix format warnings/errors + + ntpq/ntpq.c@1.170 +5 -2 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - fix format warnings/errors + + ports/winnt/include/config.h@1.115 +4 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - VS2015 has 'wint_t' + + ports/winnt/include/sys/time.h@1.9 +2 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - VS2015 has 'struct timespec' + + ports/winnt/libntp/termios.c@1.33 +3 -3 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - fix format parsing error + + ports/winnt/ppsapi/loopback/src/sys/time.h@1.2 +2 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - VS2015 has 'struct timespec' + + ports/winnt/vs2013/common.props@1.3 +1 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + -enable multiprocessor build + + ports/winnt/vs2015/common.props@1.1 +60 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/common.props@1.0 +0 -0 + + ports/winnt/vs2015/debug-x64.props@1.1 +24 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/debug-x64.props@1.0 +0 -0 + + ports/winnt/vs2015/debug.props@1.1 +24 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/debug.props@1.0 +0 -0 + + ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.1 +269 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.1 +28 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/libntp/libntp.vcxproj@1.1 +431 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/libntp/libntp.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.1 +574 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.1 +252 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.1 +39 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.1 +270 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj.filters@1.1 +36 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntp.sln@1.1 +166 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntp.sln@1.0 +0 -0 + + ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.1 +227 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.1 +69 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.1 +53 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.0 +0 -0 + + ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.1 +515 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.1 +556 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.1 +287 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.1 +72 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.1 +278 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntpdc/ntpdc.vcxproj.filters@1.1 +45 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpdc/ntpdc.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.1 +277 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.0 +0 -0 + + ports/winnt/vs2015/ntpq/ntpq.vcxproj.filters@1.1 +42 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/ntpq/ntpq.vcxproj.filters@1.0 +0 -0 + + ports/winnt/vs2015/release-x64.props@1.1 +25 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/release-x64.props@1.0 +0 -0 + + ports/winnt/vs2015/release.props@1.1 +25 -0 + [Bug 3038] NTP fails to build in VS2015 Community Edition + - add build environment + + ports/winnt/vs2015/release.props@1.0 +0 -0 + ChangeSet@1.3669, 2016-04-26 20:30:51-04:00, stenn@deacon.udel.edu NTP_4_2_8P7 TAG: NTP_4_2_8P7 diff --git a/contrib/ntp/NEWS b/contrib/ntp/NEWS index 1edaf5d..fd2551c 100644 --- a/contrib/ntp/NEWS +++ b/contrib/ntp/NEWS @@ -1,4 +1,116 @@ --- +NTP 4.2.8p8 (Harlan Stenn <stenn@ntp.org>, 2016/06/02) + +Focus: Security, Bug fixes, enhancements. + +Severity: HIGH + +In addition to bug fixes and enhancements, this release fixes the +following 1 high- and 4 low-severity vulnerabilities: + +* CRYPTO_NAK crash + Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016 + References: Sec 3046 / CVE-2016-4957 / VU#321640 + Affects: ntp-4.2.8p7, and ntp-4.3.92. + CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C) + CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H + Summary: The fix for Sec 3007 in ntp-4.2.8p7 contained a bug that + could cause ntpd to crash. + Mitigation: + Implement BCP-38. + Upgrade to 4.2.8p8, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + If you cannot upgrade from 4.2.8p7, the only other alternatives + are to patch your code or filter CRYPTO_NAK packets. + Properly monitor your ntpd instances, and auto-restart ntpd + (without -g) if it stops running. + Credit: This weakness was discovered by Nicolas Edet of Cisco. + +* Bad authentication demobilizes ephemeral associations + Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016 + References: Sec 3045 / CVE-2016-4953 / VU#321640 + Affects: ntp-4, up to but not including ntp-4.2.8p8, and + ntp-4.3.0 up to, but not including ntp-4.3.93. + CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P) + CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L + Summary: An attacker who knows the origin timestamp and can send a + spoofed packet containing a CRYPTO-NAK to an ephemeral peer + target before any other response is sent can demobilize that + association. + Mitigation: + Implement BCP-38. + Upgrade to 4.2.8p8, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Properly monitor your ntpd instances. + Credit: This weakness was discovered by Miroslav Lichvar of Red Hat. + +* Processing spoofed server packets + Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016 + References: Sec 3044 / CVE-2016-4954 / VU#321640 + Affects: ntp-4, up to but not including ntp-4.2.8p8, and + ntp-4.3.0 up to, but not including ntp-4.3.93. + CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P) + CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L + Summary: An attacker who is able to spoof packets with correct origin + timestamps from enough servers before the expected response + packets arrive at the target machine can affect some peer + variables and, for example, cause a false leap indication to be set. + Mitigation: + Implement BCP-38. + Upgrade to 4.2.8p8, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Properly monitor your ntpd instances. + Credit: This weakness was discovered by Jakub Prokes of Red Hat. + +* Autokey association reset + Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016 + References: Sec 3043 / CVE-2016-4955 / VU#321640 + Affects: ntp-4, up to but not including ntp-4.2.8p8, and + ntp-4.3.0 up to, but not including ntp-4.3.93. + CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P) + CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L + Summary: An attacker who is able to spoof a packet with a correct + origin timestamp before the expected response packet arrives at + the target machine can send a CRYPTO_NAK or a bad MAC and cause + the association's peer variables to be cleared. If this can be + done often enough, it will prevent that association from working. + Mitigation: + Implement BCP-38. + Upgrade to 4.2.8p8, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Properly monitor your ntpd instances. + Credit: This weakness was discovered by Miroslav Lichvar of Red Hat. + +* Broadcast interleave + Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016 + References: Sec 3042 / CVE-2016-4956 / VU#321640 + Affects: ntp-4, up to but not including ntp-4.2.8p8, and + ntp-4.3.0 up to, but not including ntp-4.3.93. + CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P) + CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L + Summary: The fix for NtpBug2978 does not cover broadcast associations, + so broadcast clients can be triggered to flip into interleave mode. + Mitigation: + Implement BCP-38. + Upgrade to 4.2.8p8, or later, from the NTP Project Download Page + or the NTP Public Services Project Download Page + Properly monitor your ntpd instances. + Credit: This weakness was discovered by Miroslav Lichvar of Red Hat. + +Other fixes: +* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org + - provide build environment + - 'wint_t' and 'struct timespec' defined by VS2015 + - fixed print()/scanf() format issues +* [Bug 3052] Add a .gitignore file. Edmund Wong. +* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite. +* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, + JPerlinger, HStenn. +* Fix typo in ntp-wait and plot_summary. HStenn. +* Make sure we have an "author" file for git imports. HStenn. +* Update the sntp problem tests for MacOS. HStenn. + +--- NTP 4.2.8p7 (Harlan Stenn <stenn@ntp.org>, 2016/04/26) Focus: Security, Bug fixes, enhancements. diff --git a/contrib/ntp/configure b/contrib/ntp/configure index 4639476..c38e7eb 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.69 for ntp 4.2.8p7. +# Generated by GNU Autoconf 2.69 for ntp 4.2.8p8. # # Report bugs to <http://bugs.ntp.org./>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ntp' PACKAGE_TARNAME='ntp' -PACKAGE_VERSION='4.2.8p7' -PACKAGE_STRING='ntp 4.2.8p7' +PACKAGE_VERSION='4.2.8p8' +PACKAGE_STRING='ntp 4.2.8p8' PACKAGE_BUGREPORT='http://bugs.ntp.org./' PACKAGE_URL='http://www.ntp.org./' @@ -1618,7 +1618,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.8p7 to adapt to many kinds of systems. +\`configure' configures ntp 4.2.8p8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1688,7 +1688,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ntp 4.2.8p7:";; + short | recursive ) echo "Configuration of ntp 4.2.8p8:";; esac cat <<\_ACEOF @@ -1924,7 +1924,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ntp configure 4.2.8p7 +ntp configure 4.2.8p8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2754,7 +2754,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.8p7, which was +It was created by ntp $as_me 4.2.8p8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3755,7 +3755,7 @@ fi # Define the identity of the package. PACKAGE='ntp' - VERSION='4.2.8p7' + VERSION='4.2.8p8' cat >>confdefs.h <<_ACEOF @@ -37251,6 +37251,7 @@ fi + ### @@ -37309,6 +37310,8 @@ ac_config_files="$ac_config_files scripts/Makefile" ac_config_files="$ac_config_files scripts/build/Makefile" +ac_config_files="$ac_config_files scripts/build/genAuthors" + ac_config_files="$ac_config_files scripts/build/mkver" ac_config_files="$ac_config_files scripts/calc_tickadj/Makefile" @@ -38000,7 +38003,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.8p7, which was +This file was extended by ntp $as_me 4.2.8p8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -38067,7 +38070,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.8p7 +ntp config.status 4.2.8p8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -38595,6 +38598,7 @@ do "parseutil/Makefile") CONFIG_FILES="$CONFIG_FILES parseutil/Makefile" ;; "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; "scripts/build/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/build/Makefile" ;; + "scripts/build/genAuthors") CONFIG_FILES="$CONFIG_FILES scripts/build/genAuthors" ;; "scripts/build/mkver") CONFIG_FILES="$CONFIG_FILES scripts/build/mkver" ;; "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" ;; @@ -40149,6 +40153,7 @@ _LT_EOF ;; "ntpd/complete.conf":F) sed -e '/^rlimit$/d' -e '/^$/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/build/genAuthors":F) chmod +x scripts/build/genAuthors ;; "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 ;; diff --git a/contrib/ntp/configure.ac b/contrib/ntp/configure.ac index caba8f6..a34ed6d 100644 --- a/contrib/ntp/configure.ac +++ b/contrib/ntp/configure.ac @@ -4397,6 +4397,7 @@ AC_CONFIG_FILES([ntpsnmpd/Makefile]) AC_CONFIG_FILES([parseutil/Makefile]) AC_CONFIG_FILES([scripts/Makefile]) AC_CONFIG_FILES([scripts/build/Makefile]) +AC_CONFIG_FILES([scripts/build/genAuthors], [chmod +x scripts/build/genAuthors]) AC_CONFIG_FILES([scripts/build/mkver], [chmod +x scripts/build/mkver]) AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) diff --git a/contrib/ntp/html/miscopt.html b/contrib/ntp/html/miscopt.html index bc520f6..bf4cfbf 100644 --- a/contrib/ntp/html/miscopt.html +++ b/contrib/ntp/html/miscopt.html @@ -11,7 +11,7 @@ <img src="pic/boom3.gif" alt="gif" align="left"><a href="http://www.eecis.udel.edu/~mills/pictures.html">from <i>Pogo</i>, Walt Kelly</a> <p>We have three, now looking for more.</p> <p>Last update: - <!-- #BeginDate format:En2m -->16-Jan-2016 13:08<!-- #EndDate --> + <!-- #BeginDate format:En2m -->17-May-2016 06:26<!-- #EndDate --> UTC</p> <br clear="left"> <h4>Related Links</h4> @@ -129,7 +129,7 @@ <dd> <dl> <dt><tt>allan <i>allan</i></tt></dt> - <dd>Specifies the Allan intercept, which is a parameter of the PLL/FLL clock discipline algorithm, in seconds with default 1500 s.</dd> + <dd>Specifies the Allan intercept, which is a parameter of the PLL/FLL clock discipline algorithm, in log2 seconds with default 11 (2048 s).</dd> <dt><tt>dispersion <i>dispersion</i></tt></dt> <dd>Specifies the dispersion increase rate in parts-per-million (PPM) with default 15 PPM.</dd> <dt><tt>freq <i>freq</i></tt></dt> diff --git a/contrib/ntp/include/ntp.h b/contrib/ntp/include/ntp.h index cad3003..84c30d9 100644 --- a/contrib/ntp/include/ntp.h +++ b/contrib/ntp/include/ntp.h @@ -723,6 +723,7 @@ struct pkt { #define PROTO_UECRYPTO 29 #define PROTO_UECRYPTONAK 30 #define PROTO_UEDIGEST 31 +#define PROTO_PCEDIGEST 32 /* * Configuration items for the loop filter diff --git a/contrib/ntp/ntpd/complete.conf.in b/contrib/ntp/ntpd/complete.conf.in index 747a48f..2c547fa 100644 --- a/contrib/ntp/ntpd/complete.conf.in +++ b/contrib/ntp/ntpd/complete.conf.in @@ -25,7 +25,7 @@ trustedkey 1 2 3 4 5 6 7 8 9 10 11 12 (14 ... 16) 18 (32768 ... 65534) controlkey 12 requestkey 12 enable auth ntp monitor stats -disable bclient calibrate kernel mode7 +disable bclient calibrate kernel mode7 peer_clear_digest_early unpeer_crypto_early unpeer_crypto_nak_early unpeer_digest_early tos beacon 3600 ceiling 16 cohort 0 floor 1 maxclock 10 maxdist 1.5 minclock 3 mindist 0.001 minsane 1 orphan 16 orphanwait 300 rlimit@HAVE_RLIMIT_MEMLOCK@@HAVE_RLIMIT_STACK@ tinker allan 1500 dispersion 15 freq 0 huffpuff 7200 panic 1000 step 0.128 stepout 900 tick 0.01 diff --git a/contrib/ntp/ntpd/invoke-ntp.conf.texi b/contrib/ntp/ntpd/invoke-ntp.conf.texi index fa8e87a..7efecee 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 April 26, 2016 at 08:28:27 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:36:07 AM by AutoGen 5.18.5 # From the definitions ntp.conf.def # and the template file agtexi-file.tpl @end ignore @@ -2335,8 +2335,8 @@ otherwise, should be avoided. This option specifies the Differentiated Services Control Point (DSCP) value, a 6-bit code. The default value is 46, signifying Expedited Forwarding. -@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]} -@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]} +@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{peer_clear_digest_early} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]} +@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{peer_clear_digest_early} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]} Provides a way to enable or disable various server options. Flags not mentioned are unaffected. Note that all of these flags @@ -2401,6 +2401,26 @@ closes the feedback loop, which is useful for testing. The default for this flag is @code{enable}. +@item @code{peer_clear_digest_early} +By default, if +@code{ntpd(1ntpdmdoc)} +is using autokey and it +receives a crypto-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +@code{peerstats} +file for evidence of any of these attacks. +The +default for this flag is +@code{enable}. @item @code{stats} Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/invoke-ntp.keys.texi b/contrib/ntp/ntpd/invoke-ntp.keys.texi index c3b8355..8585e65 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 April 26, 2016 at 08:28:30 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:36:10 AM by AutoGen 5.18.5 # 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 8856d36..7c1275a 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 April 26, 2016 at 08:28:32 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:36:12 AM by AutoGen 5.18.5 # From the definitions ntpd-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -142,7 +142,7 @@ with a status code of 0. @exampleindent 0 @example -ntpd - NTP daemon program - Ver. 4.2.8p7 +ntpd - NTP daemon program - Ver. 4.2.8p8 Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \ [ <server1> ... <serverN> ] Flg Arg Option-Name Description diff --git a/contrib/ntp/ntpd/keyword-gen-utd b/contrib/ntp/ntpd/keyword-gen-utd index 99c7220..69665c2 100644 --- a/contrib/ntp/ntpd/keyword-gen-utd +++ b/contrib/ntp/ntpd/keyword-gen-utd @@ -1 +1 @@ - * Generated 2016-01-16 08:33:03 UTC diff_ignore_line + * Generated 2016-05-19 06:35:34 UTC diff_ignore_line diff --git a/contrib/ntp/ntpd/keyword-gen.c b/contrib/ntp/ntpd/keyword-gen.c index 2e7f621..648b3ae 100644 --- a/contrib/ntp/ntpd/keyword-gen.c +++ b/contrib/ntp/ntpd/keyword-gen.c @@ -199,8 +199,9 @@ struct key_tok ntp_keywords[] = { { "bclient", T_Bclient, FOLLBY_TOKEN }, { "calibrate", T_Calibrate, FOLLBY_TOKEN }, { "kernel", T_Kernel, FOLLBY_TOKEN }, -{ "ntp", T_Ntp, FOLLBY_TOKEN }, { "mode7", T_Mode7, FOLLBY_TOKEN }, +{ "ntp", T_Ntp, FOLLBY_TOKEN }, +{ "peer_clear_digest_early", T_PCEdigest, FOLLBY_TOKEN }, { "stats", T_Stats, FOLLBY_TOKEN }, { "unpeer_crypto_early", T_UEcrypto, FOLLBY_TOKEN }, { "unpeer_crypto_nak_early", T_UEcryptonak, FOLLBY_TOKEN }, diff --git a/contrib/ntp/ntpd/ntp.conf.5man b/contrib/ntp/ntpd/ntp.conf.5man index 7804902..b3fc3d8 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 "26 Apr 2016" "4.2.8p7" "File Formats" +.TH ntp.conf 5man "02 Jun 2016" "4.2.8p8" "File Formats" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-ana4jE/ag-QnaWiE) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-OzaOIT/ag-3zaGHT) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:14 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:35:50 AM by AutoGen 5.18.5 .\" From the definitions ntp.conf.def .\" and the template file agman-cmd.tpl .SH NAME @@ -2618,9 +2618,9 @@ This option specifies the Differentiated Services Control Point (DSCP) value, a 6-bit code. The default value is 46, signifying Expedited Forwarding. .TP 7 -.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] +.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] .TP 7 -.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] +.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] Provides a way to enable or disable various server options. Flags not mentioned are unaffected. Note that all of these flags @@ -2693,6 +2693,27 @@ The default for this flag is \f\*[B-Font]enable\f[]. .TP 7 +.NOP \f\*[B-Font]peer_clear_digest_early\f[] +By default, if +\fCntpd\f[]\fR(1ntpdmdoc)\f[] +is using autokey and it +receives a crypto-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +\f\*[B-Font]peerstats\f[] +file for evidence of any of these attacks. +The +default for this flag is +\f\*[B-Font]enable\f[]. +.TP 7 .NOP \f\*[B-Font]stats\f[] Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/ntp.conf.5mdoc b/contrib/ntp/ntpd/ntp.conf.5mdoc index c6c7e6c..21806bc 100644 --- a/contrib/ntp/ntpd/ntp.conf.5mdoc +++ b/contrib/ntp/ntpd/ntp.conf.5mdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_CONF 5mdoc File Formats .Os .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:36 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:16 AM by AutoGen 5.18.5 .\" From the definitions ntp.conf.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -2440,6 +2440,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2449,6 +2450,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2516,6 +2518,26 @@ closes the feedback loop, which is useful for testing. The default for this flag is .Ic enable . +.It Cm peer_clear_digest_early +By default, if +.Xr ntpd 1ntpdmdoc +is using autokey and it +receives a crypto\-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto\-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +.Cm peerstats +file for evidence of any of these attacks. +The +default for this flag is +.Ic enable . .It Cm stats Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/ntp.conf.def b/contrib/ntp/ntpd/ntp.conf.def index 4993e02..a62e976 100644 --- a/contrib/ntp/ntpd/ntp.conf.def +++ b/contrib/ntp/ntpd/ntp.conf.def @@ -2442,6 +2442,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2451,6 +2452,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2518,6 +2520,26 @@ closes the feedback loop, which is useful for testing. The default for this flag is .Ic enable . +.It Cm peer_clear_digest_early +By default, if +.Xr ntpd 1ntpdmdoc +is using autokey and it +receives a crypto-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +.Cm peerstats +file for evidence of any of these attacks. +The +default for this flag is +.Ic enable . .It Cm stats Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/ntp.conf.html b/contrib/ntp/ntpd/ntp.conf.html index c7f1b74..2f0db05 100644 --- a/contrib/ntp/ntpd/ntp.conf.html +++ b/contrib/ntp/ntpd/ntp.conf.html @@ -33,7 +33,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <p>This document describes the configuration file for the NTP Project's <code>ntpd</code> program. - <p>This document applies to version 4.2.8p7 of <code>ntp.conf</code>. + <p>This document applies to version 4.2.8p8 of <code>ntp.conf</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -167,8 +167,14 @@ in some weird and even destructive behavior. <p>If the Basic Socket Interface Extensions for IPv6 (RFC-2553) is detected, support for the IPv6 address family is generated in addition to the default support of the IPv4 address family. -In a few cases, including the reslist billboard generated -by ntpdc, IPv6 addresses are automatically generated. +In a few cases, including the +<code>reslist</code> +billboard generated +by +<code>ntpq(1ntpqmdoc)</code> +or +<code>ntpdc(1ntpdcmdoc)</code>, +IPv6 addresses are automatically generated. IPv6 addresses can be identified by the presence of colons : in the address field. @@ -187,7 +193,7 @@ qualifier forces DNS resolution to the IPv6 namespace. See IPv6 references for the equivalent classes for that address family. <dl> -<dt><code>pool</code> <kbd>address</kbd> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>server</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>peer</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>broadcast</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code><br><dt><code>manycastclient</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code><dd></dl> +<dt><code>pool</code> <kbd>address</kbd> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>server</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code> <code>[true]</code><br><dt><code>peer</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code> <code>[true]</code> <code>[xleave]</code><br><dt><code>broadcast</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code> <code>[xleave]</code><br><dt><code>manycastclient</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code><dd></dl> <p>These five commands specify the time server name or address to be used and the mode in which to operate. @@ -341,6 +347,7 @@ option to a lower limit of 4 (16 s). The server is discarded by the selection algroithm. <br><dt><code>preempt</code><dd>Says the association can be preempted. <br><dt><code>true</code><dd>Marks the server as a truechimer. +Use this option only for testing. <br><dt><code>prefer</code><dd>Marks the server as preferred. All other things being equal, this host will be chosen for synchronization among a set of @@ -352,6 +359,10 @@ page provided in <span class="file">/usr/share/doc/ntp</span>) for further information. +<br><dt><code>true</code><dd>Forces the association to always survive the selection and clustering algorithms. +This option should almost certainly +<em>only</em> +be used while testing an association. <br><dt><code>ttl</code> <kbd>ttl</kbd><dd>This option is used only with broadcast server and manycast client modes. It specifies the time-to-live @@ -523,7 +534,7 @@ and commands and also by remote configuration commands sent by a <code>ntpdc(1ntpdcmdoc)</code> -program running in +program running on another machine. If this flag is enabled, which is the default case, new broadcast client and symmetric passive associations and @@ -709,7 +720,7 @@ using the host name, network address and public keys, all of which are bound together by the protocol specifically to deflect masquerade attacks. For this reason Autokey -includes the source and destinatino IP addresses in message digest +includes the source and destination IP addresses in message digest computations and so the same addresses must be available at both the server and client. For this reason operation @@ -895,8 +906,8 @@ This overrides the link <span class="file">ntpkey_key_</span><kbd>hostname</kbd> in the keys directory. -<br><dt><code>iffpar</code> <kbd>file</kbd><dd>Specifies the location of the optional IFF parameters file.This -overrides the link +<br><dt><code>iffpar</code> <kbd>file</kbd><dd>Specifies the location of the optional IFF parameters file. +This overrides the link <span class="file">ntpkey_iff_</span><kbd>hostname</kbd> in the keys directory. <br><dt><code>leap</code> <kbd>file</kbd><dd>Specifies the location of the optional leapsecond file. @@ -904,8 +915,7 @@ This overrides the link <span class="file">ntpkey_leap</span> in the keys directory. <br><dt><code>mvpar</code> <kbd>file</kbd><dd>Specifies the location of the optional MV parameters file. -This -overrides the link +This overrides the link <span class="file">ntpkey_mv_</span><kbd>hostname</kbd> in the keys directory. <br><dt><code>pw</code> <kbd>password</kbd><dd>Specifies the password to decrypt files containing private keys and @@ -1033,7 +1043,7 @@ supported. Statistic files are managed using file generation sets and scripts in the <span class="file">./scripts</span> -directory of this distribution. +directory of the source code distribution. Using these facilities and <span class="sc">unix</span> @@ -1331,7 +1341,9 @@ When there is already a file with this name and the number of links of this file is one, it is renamed appending a dot, the letter <code>C</code>, -and the pid of the ntpd server process. +and the pid of the +<code>ntpd(1ntpdmdoc)</code> +server process. When the number of links is greater than one, the file is unlinked. This @@ -1392,9 +1404,9 @@ at abusive rates. Some violations cause denied service only for the offending packet, others cause denied service for a timed period and others cause the denied service for -an indefinate period. +an indefinite period. When a client or network is denied access -for an indefinate period, the only way at present to remove +for an indefinite period, the only way at present to remove the restrictions is by restarting the server. <h5 class="subsubsection">The Kiss-of-Death Packet</h5> @@ -1560,7 +1572,9 @@ and queries. <br><dt><code>notrap</code><dd>Decline to provide mode 6 control message trap service to matching hosts. -The trap service is a subsystem of the ntpdq control message +The trap service is a subsystem of the +<code>ntpq(1ntpqmdoc)</code> +control message protocol which is intended for use by remote event logging programs. <br><dt><code>notrust</code><dd>Deny service unless the packet is cryptographically authenticated. <br><dt><code>ntpport</code><dd>This is actually a match algorithm modifier, rather than a @@ -2309,8 +2323,9 @@ must have write permission for the directory the drift file is located in, and that file system links, symbolic or otherwise, should be avoided. <br><dt><code>dscp</code> <kbd>value</kbd><dd>This option specifies the Differentiated Services Control Point (DSCP) value, -a 6-bit code. The default value is 46, signifying Expedited Forwarding. -<br><dt><code>enable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><br><dt><code>disable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><dd>Provides a way to enable or disable various server options. +a 6-bit code. +The default value is 46, signifying Expedited Forwarding. +<br><dt><code>enable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | peer_clear_digest_early | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><br><dt><code>disable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | peer_clear_digest_early | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><dd>Provides a way to enable or disable various server options. Flags not mentioned are unaffected. Note that all of these flags can be controlled remotely using the @@ -2367,6 +2382,25 @@ closes the feedback loop, which is useful for testing. The default for this flag is <code>enable</code>. +<br><dt><code>peer_clear_digest_early</code><dd>By default, if +<code>ntpd(1ntpdmdoc)</code> +is using autokey and it +receives a crypto-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +<code>peerstats</code> +file for evidence of any of these attacks. +The +default for this flag is +<code>enable</code>. <br><dt><code>stats</code><dd>Enables the statistics facility. See the <a href="#Monitoring-Options">Monitoring Options</a> @@ -2502,7 +2536,8 @@ A message class may also be followed by the <code>all</code> keyword to enable/disable all -messages of the respective message class.Thus, a minimal log configuration +messages of the respective message class. +Thus, a minimal log configuration could look like this: <pre class="verbatim"> logconfig =syncstatus +sysevents @@ -2641,7 +2676,8 @@ The default is 32 megabytes on non-Linux machines, and -1 under Linux. <code>mlockall()</code> function. Defaults to 50 4k pages (200 4k pages in OpenBSD). -<br><dt><code>filenum</code> <kbd>Nfiledescriptors</kbd><dd>Specifies the maximum number of file descriptors ntpd may have open at once. Defaults to the system default. +<br><dt><code>filenum</code> <kbd>Nfiledescriptors</kbd><dd>Specifies the maximum number of file descriptors ntpd may have open at once. +Defaults to the system default. </dl> <br><dt><code>trap</code> <kbd>host_address</kbd> <code>[port </code><kbd>port_number</kbd><code>]</code> <code>[interface </code><kbd>interface_address</kbd><code>]</code><dd>This command configures a trap receiver at the given host address and port number for sending messages with the specified diff --git a/contrib/ntp/ntpd/ntp.conf.man.in b/contrib/ntp/ntpd/ntp.conf.man.in index 98b37bc..8b794da 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 "26 Apr 2016" "4.2.8p7" "File Formats" +.TH ntp.conf 5 "02 Jun 2016" "4.2.8p8" "File Formats" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-ana4jE/ag-QnaWiE) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-OzaOIT/ag-3zaGHT) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:14 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:35:50 AM by AutoGen 5.18.5 .\" From the definitions ntp.conf.def .\" and the template file agman-cmd.tpl .SH NAME @@ -2618,9 +2618,9 @@ This option specifies the Differentiated Services Control Point (DSCP) value, a 6-bit code. The default value is 46, signifying Expedited Forwarding. .TP 7 -.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] +.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] .TP 7 -.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] +.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]] Provides a way to enable or disable various server options. Flags not mentioned are unaffected. Note that all of these flags @@ -2693,6 +2693,27 @@ The default for this flag is \f\*[B-Font]enable\f[]. .TP 7 +.NOP \f\*[B-Font]peer_clear_digest_early\f[] +By default, if +\fCntpd\f[]\fR(@NTPD_MS@)\f[] +is using autokey and it +receives a crypto-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +\f\*[B-Font]peerstats\f[] +file for evidence of any of these attacks. +The +default for this flag is +\f\*[B-Font]enable\f[]. +.TP 7 .NOP \f\*[B-Font]stats\f[] Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/ntp.conf.mdoc.in b/contrib/ntp/ntpd/ntp.conf.mdoc.in index 82164a3..a9a3424 100644 --- a/contrib/ntp/ntpd/ntp.conf.mdoc.in +++ b/contrib/ntp/ntpd/ntp.conf.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_CONF 5 File Formats .Os .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:36 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:16 AM by AutoGen 5.18.5 .\" From the definitions ntp.conf.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -2440,6 +2440,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2449,6 +2450,7 @@ The default value is 46, signifying Expedited Forwarding. .Cm calibrate | Cm kernel | .Cm mode7 | Cm monitor | .Cm ntp | Cm stats | +.Cm peer_clear_digest_early | .Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early .Oc .Xc @@ -2516,6 +2518,26 @@ closes the feedback loop, which is useful for testing. The default for this flag is .Ic enable . +.It Cm peer_clear_digest_early +By default, if +.Xr ntpd @NTPD_MS@ +is using autokey and it +receives a crypto\-NAK packet that +passes the duplicate packet and origin timestamp checks +the peer variables are immediately cleared. +While this is generally a feature +as it allows for quick recovery if a server key has changed, +a properly forged and appropriately delivered crypto\-NAK packet +can be used in a DoS attack. +If you have active noticable problems with this type of DoS attack +then you should consider +disabling this option. +You can check your +.Cm peerstats +file for evidence of any of these attacks. +The +default for this flag is +.Ic enable . .It Cm stats Enables the statistics facility. See the diff --git a/contrib/ntp/ntpd/ntp.keys.5man b/contrib/ntp/ntpd/ntp.keys.5man index 9843554..3e02861 100644 --- a/contrib/ntp/ntpd/ntp.keys.5man +++ b/contrib/ntp/ntpd/ntp.keys.5man @@ -1,8 +1,8 @@ -.TH ntp.keys 5man "26 Apr 2016" "4.2.8p7" "File Formats" +.TH ntp.keys 5man "02 Jun 2016" "4.2.8p8" "File Formats" .\" .\" EDIT THIS FILE WITH CAUTION (ntp.man) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:19 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:35:57 AM by AutoGen 5.18.5 .\" 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 ad9cc92..275b0d5 100644 --- a/contrib/ntp/ntpd/ntp.keys.5mdoc +++ b/contrib/ntp/ntpd/ntp.keys.5mdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_KEYS 5mdoc File Formats .Os SunOS 5.10 .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:39 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:20 AM by AutoGen 5.18.5 .\" 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 083b28b..5952608 100644 --- a/contrib/ntp/ntpd/ntp.keys.html +++ b/contrib/ntp/ntpd/ntp.keys.html @@ -33,7 +33,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <p>This document describes the symmetric key file for the NTP Project's <code>ntpd</code> program. - <p>This document applies to version 4.2.8p7 of <code>ntp.keys</code>. + <p>This document applies to version 4.2.8p8 of <code>ntp.keys</code>. <div class="shortcontents"> <h2>Short Contents</h2> diff --git a/contrib/ntp/ntpd/ntp.keys.man.in b/contrib/ntp/ntpd/ntp.keys.man.in index d68be1c..692a4e2 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 "26 Apr 2016" "4.2.8p7" "File Formats" +.TH ntp.keys 5 "02 Jun 2016" "4.2.8p8" "File Formats" .\" .\" EDIT THIS FILE WITH CAUTION (ntp.man) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:19 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:35:57 AM by AutoGen 5.18.5 .\" 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 c1a9c7d..7881296 100644 --- a/contrib/ntp/ntpd/ntp.keys.mdoc.in +++ b/contrib/ntp/ntpd/ntp.keys.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_KEYS 5 File Formats .Os SunOS 5.10 .\" EDIT THIS FILE WITH CAUTION (ntp.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:39 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:20 AM by AutoGen 5.18.5 .\" 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 cb32737..2d4ab52 100644 --- a/contrib/ntp/ntpd/ntp_config.c +++ b/contrib/ntp/ntpd/ntp_config.c @@ -2971,12 +2971,16 @@ apply_enable_disable( proto_config(PROTO_MONITOR, enable, 0., NULL); break; + case T_Mode7: + proto_config(PROTO_MODE7, enable, 0., NULL); + break; + case T_Ntp: proto_config(PROTO_NTP, enable, 0., NULL); break; - case T_Mode7: - proto_config(PROTO_MODE7, enable, 0., NULL); + case T_PCEdigest: + proto_config(PROTO_PCEDIGEST, enable, 0., NULL); break; case T_Stats: diff --git a/contrib/ntp/ntpd/ntp_io.c b/contrib/ntp/ntpd/ntp_io.c index 55f9ada..8064252 100644 --- a/contrib/ntp/ntpd/ntp_io.c +++ b/contrib/ntp/ntpd/ntp_io.c @@ -3285,15 +3285,6 @@ fetch_timestamp( ) { struct cmsghdr * cmsghdr; -#ifdef HAVE_BINTIME - struct bintime * btp; -#endif -#ifdef HAVE_TIMESTAMPNS - struct timespec * tsp; -#endif -#ifdef HAVE_TIMESTAMP - struct timeval * tvp; -#endif unsigned long ticks; double fuzz; l_fp lfpfuzz; @@ -3320,49 +3311,58 @@ fetch_timestamp( { #ifdef HAVE_BINTIME case SCM_BINTIME: - btp = (struct bintime *)CMSG_DATA(cmsghdr); - /* - * bintime documentation is at http://phk.freebsd.dk/pubs/timecounter.pdf - */ - nts.l_i = btp->sec + JAN_1970; - nts.l_uf = (u_int32)(btp->frac >> 32); - if (sys_tick > measured_tick && - sys_tick > 1e-9) { - ticks = (unsigned long)(nts.l_uf / (unsigned long)(sys_tick * FRAC)); - nts.l_uf = (unsigned long)(ticks * (unsigned long)(sys_tick * FRAC)); + { + struct bintime pbt; + memcpy(&pbt, CMSG_DATA(cmsghdr), sizeof(pbt)); + /* + * bintime documentation is at http://phk.freebsd.dk/pubs/timecounter.pdf + */ + nts.l_i = pbt.sec + JAN_1970; + nts.l_uf = (u_int32)(pbt.frac >> 32); + if (sys_tick > measured_tick && + sys_tick > 1e-9) { + ticks = (unsigned long)(nts.l_uf / (unsigned long)(sys_tick * FRAC)); + nts.l_uf = (unsigned long)(ticks * (unsigned long)(sys_tick * FRAC)); + } + DPRINTF(4, ("fetch_timestamp: system bintime network time stamp: %ld.%09lu\n", + pbt.sec, (unsigned long)((nts.l_uf / FRAC) * 1e9))); } - DPRINTF(4, ("fetch_timestamp: system bintime network time stamp: %ld.%09lu\n", - btp->sec, (unsigned long)((nts.l_uf / FRAC) * 1e9))); break; #endif /* HAVE_BINTIME */ #ifdef HAVE_TIMESTAMPNS case SCM_TIMESTAMPNS: - tsp = UA_PTR(struct timespec, CMSG_DATA(cmsghdr)); - if (sys_tick > measured_tick && - sys_tick > 1e-9) { - ticks = (unsigned long)((tsp->tv_nsec * 1e-9) / - sys_tick); - tsp->tv_nsec = (long)(ticks * 1e9 * - sys_tick); + { + struct timespec pts; + memcpy(&pts, CMSG_DATA(cmsghdr), sizeof(pts)); + if (sys_tick > measured_tick && + sys_tick > 1e-9) { + ticks = (unsigned long)((pts.tv_nsec * 1e-9) / + sys_tick); + pts.tv_nsec = (long)(ticks * 1e9 * + sys_tick); + } + DPRINTF(4, ("fetch_timestamp: system nsec network time stamp: %ld.%09ld\n", + pts.tv_sec, pts.tv_nsec)); + nts = tspec_stamp_to_lfp(pts); } - DPRINTF(4, ("fetch_timestamp: system nsec network time stamp: %ld.%09ld\n", - tsp->tv_sec, tsp->tv_nsec)); - nts = tspec_stamp_to_lfp(*tsp); break; #endif /* HAVE_TIMESTAMPNS */ #ifdef HAVE_TIMESTAMP case SCM_TIMESTAMP: - tvp = (struct timeval *)CMSG_DATA(cmsghdr); - if (sys_tick > measured_tick && - sys_tick > 1e-6) { - ticks = (unsigned long)((tvp->tv_usec * 1e-6) / - sys_tick); - tvp->tv_usec = (long)(ticks * 1e6 * - sys_tick); + { + struct timeval ptv; + memcpy(&ptv, CMSG_DATA(cmsghdr), sizeof(ptv)); + if (sys_tick > measured_tick && + sys_tick > 1e-6) { + ticks = (unsigned long)((ptv.tv_usec * 1e-6) / + sys_tick); + ptv.tv_usec = (long)(ticks * 1e6 * + sys_tick); + } + DPRINTF(4, ("fetch_timestamp: system usec network time stamp: %jd.%06ld\n", + (intmax_t)ptv.tv_sec, (long)ptv.tv_usec)); + nts = tval_stamp_to_lfp(ptv); } - DPRINTF(4, ("fetch_timestamp: system usec network time stamp: %jd.%06ld\n", - (intmax_t)tvp->tv_sec, (long)tvp->tv_usec)); - nts = tval_stamp_to_lfp(*tvp); break; #endif /* HAVE_TIMESTAMP */ } diff --git a/contrib/ntp/ntpd/ntp_keyword.h b/contrib/ntp/ntpd/ntp_keyword.h index c726c60..ec373cf 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 2016-01-16 08:33:03 UTC diff_ignore_line + * Generated 2016-05-19 06:35:34 UTC diff_ignore_line * */ #include "ntp_scanner.h" @@ -10,7 +10,7 @@ #define LOWEST_KEYWORD_ID 258 -const char * const keyword_text[194] = { +const char * const keyword_text[195] = { /* 0 258 T_Abbrev */ "abbrev", /* 1 259 T_Age */ "age", /* 2 260 T_All */ "all", @@ -133,83 +133,84 @@ const char * const keyword_text[194] = { /* 119 377 T_NtpSignDsocket */ "ntpsigndsocket", /* 120 378 T_Orphan */ "orphan", /* 121 379 T_Orphanwait */ "orphanwait", - /* 122 380 T_Panic */ "panic", - /* 123 381 T_Peer */ "peer", - /* 124 382 T_Peerstats */ "peerstats", - /* 125 383 T_Phone */ "phone", - /* 126 384 T_Pid */ "pid", - /* 127 385 T_Pidfile */ "pidfile", - /* 128 386 T_Pool */ "pool", - /* 129 387 T_Port */ "port", - /* 130 388 T_Preempt */ "preempt", - /* 131 389 T_Prefer */ "prefer", - /* 132 390 T_Protostats */ "protostats", - /* 133 391 T_Pw */ "pw", - /* 134 392 T_Randfile */ "randfile", - /* 135 393 T_Rawstats */ "rawstats", - /* 136 394 T_Refid */ "refid", - /* 137 395 T_Requestkey */ "requestkey", - /* 138 396 T_Reset */ "reset", - /* 139 397 T_Restrict */ "restrict", - /* 140 398 T_Revoke */ "revoke", - /* 141 399 T_Rlimit */ "rlimit", - /* 142 400 T_Saveconfigdir */ "saveconfigdir", - /* 143 401 T_Server */ "server", - /* 144 402 T_Setvar */ "setvar", - /* 145 403 T_Source */ "source", - /* 146 404 T_Stacksize */ "stacksize", - /* 147 405 T_Statistics */ "statistics", - /* 148 406 T_Stats */ "stats", - /* 149 407 T_Statsdir */ "statsdir", - /* 150 408 T_Step */ "step", - /* 151 409 T_Stepback */ "stepback", - /* 152 410 T_Stepfwd */ "stepfwd", - /* 153 411 T_Stepout */ "stepout", - /* 154 412 T_Stratum */ "stratum", - /* 155 413 T_String */ NULL, - /* 156 414 T_Sys */ "sys", - /* 157 415 T_Sysstats */ "sysstats", - /* 158 416 T_Tick */ "tick", - /* 159 417 T_Time1 */ "time1", - /* 160 418 T_Time2 */ "time2", - /* 161 419 T_Timer */ "timer", - /* 162 420 T_Timingstats */ "timingstats", - /* 163 421 T_Tinker */ "tinker", - /* 164 422 T_Tos */ "tos", - /* 165 423 T_Trap */ "trap", - /* 166 424 T_True */ "true", - /* 167 425 T_Trustedkey */ "trustedkey", - /* 168 426 T_Ttl */ "ttl", - /* 169 427 T_Type */ "type", - /* 170 428 T_U_int */ NULL, - /* 171 429 T_UEcrypto */ "unpeer_crypto_early", - /* 172 430 T_UEcryptonak */ "unpeer_crypto_nak_early", - /* 173 431 T_UEdigest */ "unpeer_digest_early", - /* 174 432 T_Unconfig */ "unconfig", - /* 175 433 T_Unpeer */ "unpeer", - /* 176 434 T_Version */ "version", - /* 177 435 T_WanderThreshold */ NULL, - /* 178 436 T_Week */ "week", - /* 179 437 T_Wildcard */ "wildcard", - /* 180 438 T_Xleave */ "xleave", - /* 181 439 T_Year */ "year", - /* 182 440 T_Flag */ NULL, - /* 183 441 T_EOC */ NULL, - /* 184 442 T_Simulate */ "simulate", - /* 185 443 T_Beep_Delay */ "beep_delay", - /* 186 444 T_Sim_Duration */ "simulation_duration", - /* 187 445 T_Server_Offset */ "server_offset", - /* 188 446 T_Duration */ "duration", - /* 189 447 T_Freq_Offset */ "freq_offset", - /* 190 448 T_Wander */ "wander", - /* 191 449 T_Jitter */ "jitter", - /* 192 450 T_Prop_Delay */ "prop_delay", - /* 193 451 T_Proc_Delay */ "proc_delay" + /* 122 380 T_PCEdigest */ "peer_clear_digest_early", + /* 123 381 T_Panic */ "panic", + /* 124 382 T_Peer */ "peer", + /* 125 383 T_Peerstats */ "peerstats", + /* 126 384 T_Phone */ "phone", + /* 127 385 T_Pid */ "pid", + /* 128 386 T_Pidfile */ "pidfile", + /* 129 387 T_Pool */ "pool", + /* 130 388 T_Port */ "port", + /* 131 389 T_Preempt */ "preempt", + /* 132 390 T_Prefer */ "prefer", + /* 133 391 T_Protostats */ "protostats", + /* 134 392 T_Pw */ "pw", + /* 135 393 T_Randfile */ "randfile", + /* 136 394 T_Rawstats */ "rawstats", + /* 137 395 T_Refid */ "refid", + /* 138 396 T_Requestkey */ "requestkey", + /* 139 397 T_Reset */ "reset", + /* 140 398 T_Restrict */ "restrict", + /* 141 399 T_Revoke */ "revoke", + /* 142 400 T_Rlimit */ "rlimit", + /* 143 401 T_Saveconfigdir */ "saveconfigdir", + /* 144 402 T_Server */ "server", + /* 145 403 T_Setvar */ "setvar", + /* 146 404 T_Source */ "source", + /* 147 405 T_Stacksize */ "stacksize", + /* 148 406 T_Statistics */ "statistics", + /* 149 407 T_Stats */ "stats", + /* 150 408 T_Statsdir */ "statsdir", + /* 151 409 T_Step */ "step", + /* 152 410 T_Stepback */ "stepback", + /* 153 411 T_Stepfwd */ "stepfwd", + /* 154 412 T_Stepout */ "stepout", + /* 155 413 T_Stratum */ "stratum", + /* 156 414 T_String */ NULL, + /* 157 415 T_Sys */ "sys", + /* 158 416 T_Sysstats */ "sysstats", + /* 159 417 T_Tick */ "tick", + /* 160 418 T_Time1 */ "time1", + /* 161 419 T_Time2 */ "time2", + /* 162 420 T_Timer */ "timer", + /* 163 421 T_Timingstats */ "timingstats", + /* 164 422 T_Tinker */ "tinker", + /* 165 423 T_Tos */ "tos", + /* 166 424 T_Trap */ "trap", + /* 167 425 T_True */ "true", + /* 168 426 T_Trustedkey */ "trustedkey", + /* 169 427 T_Ttl */ "ttl", + /* 170 428 T_Type */ "type", + /* 171 429 T_U_int */ NULL, + /* 172 430 T_UEcrypto */ "unpeer_crypto_early", + /* 173 431 T_UEcryptonak */ "unpeer_crypto_nak_early", + /* 174 432 T_UEdigest */ "unpeer_digest_early", + /* 175 433 T_Unconfig */ "unconfig", + /* 176 434 T_Unpeer */ "unpeer", + /* 177 435 T_Version */ "version", + /* 178 436 T_WanderThreshold */ NULL, + /* 179 437 T_Week */ "week", + /* 180 438 T_Wildcard */ "wildcard", + /* 181 439 T_Xleave */ "xleave", + /* 182 440 T_Year */ "year", + /* 183 441 T_Flag */ NULL, + /* 184 442 T_EOC */ NULL, + /* 185 443 T_Simulate */ "simulate", + /* 186 444 T_Beep_Delay */ "beep_delay", + /* 187 445 T_Sim_Duration */ "simulation_duration", + /* 188 446 T_Server_Offset */ "server_offset", + /* 189 447 T_Duration */ "duration", + /* 190 448 T_Freq_Offset */ "freq_offset", + /* 191 449 T_Wander */ "wander", + /* 192 450 T_Jitter */ "jitter", + /* 193 451 T_Prop_Delay */ "prop_delay", + /* 194 452 T_Proc_Delay */ "proc_delay" }; -#define SCANNER_INIT_S 887 +#define SCANNER_INIT_S 906 -const scan_state sst[890] = { +const scan_state sst[909] = { /*SS_T( ch, f-by, match, other ), */ 0, /* 0 */ S_ST( '-', 3, 323, 0 ), /* 1 */ @@ -255,7 +256,7 @@ const scan_state sst[890] = { 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, 443, 0 ), /* 44 beep_del */ + S_ST( 'a', 3, 444, 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 */ @@ -355,7 +356,7 @@ const scan_state sst[890] = { S_ST( 'a', 3, 142, 0 ), /* 141 dur */ S_ST( 't', 3, 143, 0 ), /* 142 dura */ S_ST( 'i', 3, 144, 0 ), /* 143 durat */ - S_ST( 'o', 3, 446, 0 ), /* 144 durati */ + S_ST( 'o', 3, 447, 0 ), /* 144 durati */ S_ST( 'e', 3, 146, 105 ), /* 145 */ S_ST( 'n', 3, 293, 0 ), /* 146 e */ S_ST( 'a', 3, 148, 0 ), /* 147 en */ @@ -381,7 +382,7 @@ const scan_state sst[890] = { S_ST( 'f', 3, 168, 0 ), /* 167 freq_o */ S_ST( 'f', 3, 169, 0 ), /* 168 freq_of */ S_ST( 's', 3, 170, 0 ), /* 169 freq_off */ - S_ST( 'e', 3, 447, 0 ), /* 170 freq_offs */ + S_ST( 'e', 3, 448, 0 ), /* 170 freq_offs */ S_ST( 'u', 3, 172, 163 ), /* 171 f */ S_ST( 'd', 3, 173, 0 ), /* 172 fu */ S_ST( 'g', 3, 305, 0 ), /* 173 fud */ @@ -441,7 +442,7 @@ const scan_state sst[890] = { S_ST( 'i', 3, 228, 0 ), /* 227 j */ S_ST( 't', 3, 229, 0 ), /* 228 ji */ S_ST( 't', 3, 230, 0 ), /* 229 jit */ - S_ST( 'e', 3, 449, 0 ), /* 230 jitt */ + S_ST( 'e', 3, 450, 0 ), /* 230 jitt */ S_ST( 'k', 3, 238, 226 ), /* 231 */ S_ST( 'e', 3, 325, 0 ), /* 232 k */ S_ST( 'r', 3, 234, 0 ), /* 233 ke */ @@ -450,7 +451,7 @@ const scan_state sst[890] = { S_ST( 'd', 3, 237, 0 ), /* 236 keys */ S_ST( 'i', 3, 327, 0 ), /* 237 keysd */ S_ST( 'o', 3, 328, 232 ), /* 238 k */ - S_ST( 'l', 3, 452, 231 ), /* 239 */ + S_ST( 'l', 3, 453, 231 ), /* 239 */ S_ST( 'e', 3, 241, 0 ), /* 240 l */ S_ST( 'a', 3, 242, 0 ), /* 241 le */ S_ST( 'p', 3, 246, 0 ), /* 242 lea */ @@ -498,7 +499,7 @@ const scan_state sst[890] = { S_ST( 'e', 0, 0, 0 ), /* 284 T_Disable */ S_ST( 'd', 0, 0, 0 ), /* 285 T_Discard */ S_ST( 'n', 0, 0, 0 ), /* 286 T_Dispersion */ - S_ST( 'i', 3, 435, 240 ), /* 287 l */ + S_ST( 'i', 3, 436, 240 ), /* 287 l */ S_ST( 'e', 1, 0, 0 ), /* 288 T_Driftfile */ S_ST( 'p', 0, 0, 0 ), /* 289 T_Drop */ S_ST( 'p', 0, 0, 0 ), /* 290 T_Dscp */ @@ -529,7 +530,7 @@ const scan_state sst[890] = { S_ST( 'e', 1, 0, 0 ), /* 315 T_Includefile */ S_ST( 'i', 3, 318, 0 ), /* 316 lim */ S_ST( 'e', 0, 0, 0 ), /* 317 T_Interface */ - S_ST( 't', 3, 413, 0 ), /* 318 limi */ + S_ST( 't', 3, 414, 0 ), /* 318 limi */ S_ST( 'o', 0, 0, 195 ), /* 319 T_Io */ S_ST( '4', 0, 0, 0 ), /* 320 T_Ipv4 */ S_ST( '4', 0, 0, 0 ), /* 321 T_Ipv4_flag */ @@ -560,7 +561,7 @@ const scan_state sst[890] = { S_ST( 'm', 0, 0, 0 ), /* 346 T_Maxmem */ S_ST( 'l', 0, 0, 0 ), /* 347 T_Maxpoll */ S_ST( 's', 0, 0, 0 ), /* 348 T_Mdnstries */ - S_ST( 'm', 0, 521, 0 ), /* 349 T_Mem */ + S_ST( 'm', 0, 522, 0 ), /* 349 T_Mem */ S_ST( 'k', 0, 0, 0 ), /* 350 T_Memlock */ S_ST( 'k', 0, 0, 0 ), /* 351 T_Minclock */ S_ST( 'h', 0, 0, 0 ), /* 352 T_Mindepth */ @@ -586,520 +587,539 @@ const scan_state sst[890] = { S_ST( 'e', 0, 0, 0 ), /* 372 T_Noserve */ S_ST( 'p', 0, 0, 0 ), /* 373 T_Notrap */ S_ST( 't', 0, 0, 0 ), /* 374 T_Notrust */ - S_ST( 'p', 0, 617, 0 ), /* 375 T_Ntp */ + S_ST( 'p', 0, 618, 0 ), /* 375 T_Ntp */ S_ST( 't', 0, 0, 0 ), /* 376 T_Ntpport */ S_ST( 't', 1, 0, 0 ), /* 377 T_NtpSignDsocket */ - S_ST( 'n', 0, 632, 0 ), /* 378 T_Orphan */ + S_ST( 'n', 0, 633, 0 ), /* 378 T_Orphan */ S_ST( 't', 0, 0, 0 ), /* 379 T_Orphanwait */ - S_ST( 'c', 0, 0, 0 ), /* 380 T_Panic */ - S_ST( 'r', 1, 641, 0 ), /* 381 T_Peer */ - S_ST( 's', 0, 0, 0 ), /* 382 T_Peerstats */ - S_ST( 'e', 2, 0, 0 ), /* 383 T_Phone */ - S_ST( 'd', 0, 649, 0 ), /* 384 T_Pid */ - S_ST( 'e', 1, 0, 0 ), /* 385 T_Pidfile */ - S_ST( 'l', 1, 0, 0 ), /* 386 T_Pool */ - S_ST( 't', 0, 0, 0 ), /* 387 T_Port */ - S_ST( 't', 0, 0, 0 ), /* 388 T_Preempt */ - S_ST( 'r', 0, 0, 0 ), /* 389 T_Prefer */ - S_ST( 's', 0, 0, 0 ), /* 390 T_Protostats */ - S_ST( 'w', 1, 0, 655 ), /* 391 T_Pw */ - S_ST( 'e', 1, 0, 0 ), /* 392 T_Randfile */ - S_ST( 's', 0, 0, 0 ), /* 393 T_Rawstats */ - S_ST( 'd', 1, 0, 0 ), /* 394 T_Refid */ - S_ST( 'y', 0, 0, 0 ), /* 395 T_Requestkey */ - S_ST( 't', 0, 0, 0 ), /* 396 T_Reset */ - S_ST( 't', 0, 0, 0 ), /* 397 T_Restrict */ - S_ST( 'e', 0, 0, 0 ), /* 398 T_Revoke */ - S_ST( 't', 0, 0, 0 ), /* 399 T_Rlimit */ - S_ST( 'r', 1, 0, 0 ), /* 400 T_Saveconfigdir */ - S_ST( 'r', 1, 732, 0 ), /* 401 T_Server */ - S_ST( 'r', 1, 0, 0 ), /* 402 T_Setvar */ - S_ST( 'e', 0, 0, 0 ), /* 403 T_Source */ - S_ST( 'e', 0, 0, 0 ), /* 404 T_Stacksize */ - S_ST( 's', 0, 0, 0 ), /* 405 T_Statistics */ - S_ST( 's', 0, 775, 770 ), /* 406 T_Stats */ - S_ST( 'r', 1, 0, 0 ), /* 407 T_Statsdir */ - S_ST( 'p', 0, 783, 0 ), /* 408 T_Step */ - S_ST( 'k', 0, 0, 0 ), /* 409 T_Stepback */ - S_ST( 'd', 0, 0, 0 ), /* 410 T_Stepfwd */ - S_ST( 't', 0, 0, 0 ), /* 411 T_Stepout */ - S_ST( 'm', 0, 0, 0 ), /* 412 T_Stratum */ - S_ST( 'e', 3, 332, 0 ), /* 413 limit */ - S_ST( 's', 0, 790, 0 ), /* 414 T_Sys */ - S_ST( 's', 0, 0, 0 ), /* 415 T_Sysstats */ - S_ST( 'k', 0, 0, 0 ), /* 416 T_Tick */ - S_ST( '1', 0, 0, 0 ), /* 417 T_Time1 */ - S_ST( '2', 0, 0, 417 ), /* 418 T_Time2 */ - S_ST( 'r', 0, 0, 418 ), /* 419 T_Timer */ - S_ST( 's', 0, 0, 0 ), /* 420 T_Timingstats */ - S_ST( 'r', 0, 0, 0 ), /* 421 T_Tinker */ - S_ST( 's', 0, 0, 0 ), /* 422 T_Tos */ - S_ST( 'p', 1, 0, 0 ), /* 423 T_Trap */ - S_ST( 'e', 0, 0, 0 ), /* 424 T_True */ - S_ST( 'y', 0, 0, 0 ), /* 425 T_Trustedkey */ - S_ST( 'l', 0, 0, 0 ), /* 426 T_Ttl */ - S_ST( 'e', 0, 0, 0 ), /* 427 T_Type */ - S_ST( 'n', 3, 333, 294 ), /* 428 li */ - S_ST( 'y', 0, 0, 0 ), /* 429 T_UEcrypto */ - S_ST( 'y', 0, 0, 0 ), /* 430 T_UEcryptonak */ - S_ST( 'y', 0, 0, 0 ), /* 431 T_UEdigest */ - S_ST( 'g', 1, 0, 0 ), /* 432 T_Unconfig */ - S_ST( 'r', 1, 832, 0 ), /* 433 T_Unpeer */ - S_ST( 'n', 0, 0, 0 ), /* 434 T_Version */ - S_ST( 's', 3, 440, 428 ), /* 435 li */ - S_ST( 'k', 0, 0, 0 ), /* 436 T_Week */ - S_ST( 'd', 0, 0, 0 ), /* 437 T_Wildcard */ - S_ST( 'e', 0, 0, 0 ), /* 438 T_Xleave */ - S_ST( 'r', 0, 0, 0 ), /* 439 T_Year */ - S_ST( 't', 3, 441, 0 ), /* 440 lis */ - S_ST( 'e', 3, 334, 0 ), /* 441 list */ - S_ST( 'e', 0, 0, 0 ), /* 442 T_Simulate */ - S_ST( 'y', 0, 0, 0 ), /* 443 T_Beep_Delay */ - S_ST( 'n', 0, 0, 0 ), /* 444 T_Sim_Duration */ - S_ST( 't', 0, 0, 0 ), /* 445 T_Server_Offset */ - S_ST( 'n', 0, 0, 0 ), /* 446 T_Duration */ - S_ST( 't', 0, 0, 0 ), /* 447 T_Freq_Offset */ - S_ST( 'r', 0, 0, 0 ), /* 448 T_Wander */ - S_ST( 'r', 0, 0, 0 ), /* 449 T_Jitter */ - S_ST( 'y', 0, 0, 0 ), /* 450 T_Prop_Delay */ - S_ST( 'y', 0, 0, 0 ), /* 451 T_Proc_Delay */ - S_ST( 'o', 3, 468, 287 ), /* 452 l */ - S_ST( 'g', 3, 459, 0 ), /* 453 lo */ - S_ST( 'c', 3, 455, 0 ), /* 454 log */ - S_ST( 'o', 3, 456, 0 ), /* 455 logc */ - S_ST( 'n', 3, 457, 0 ), /* 456 logco */ - S_ST( 'f', 3, 458, 0 ), /* 457 logcon */ - S_ST( 'i', 3, 335, 0 ), /* 458 logconf */ - S_ST( 'f', 3, 460, 454 ), /* 459 log */ - S_ST( 'i', 3, 461, 0 ), /* 460 logf */ - S_ST( 'l', 3, 336, 0 ), /* 461 logfi */ - S_ST( 'o', 3, 463, 453 ), /* 462 lo */ - S_ST( 'p', 3, 464, 0 ), /* 463 loo */ - S_ST( 's', 3, 465, 0 ), /* 464 loop */ - S_ST( 't', 3, 466, 0 ), /* 465 loops */ - S_ST( 'a', 3, 467, 0 ), /* 466 loopst */ - S_ST( 't', 3, 337, 0 ), /* 467 loopsta */ - S_ST( 'w', 3, 469, 462 ), /* 468 lo */ - S_ST( 'p', 3, 470, 0 ), /* 469 low */ - S_ST( 'r', 3, 471, 0 ), /* 470 lowp */ - S_ST( 'i', 3, 472, 0 ), /* 471 lowpr */ - S_ST( 'o', 3, 473, 0 ), /* 472 lowpri */ - S_ST( 't', 3, 474, 0 ), /* 473 lowprio */ - S_ST( 'r', 3, 475, 0 ), /* 474 lowpriot */ - S_ST( 'a', 3, 338, 0 ), /* 475 lowpriotr */ - S_ST( 'm', 3, 557, 239 ), /* 476 */ - S_ST( 'a', 3, 495, 0 ), /* 477 m */ - S_ST( 'n', 3, 479, 0 ), /* 478 ma */ - S_ST( 'y', 3, 480, 0 ), /* 479 man */ - S_ST( 'c', 3, 481, 0 ), /* 480 many */ - S_ST( 'a', 3, 482, 0 ), /* 481 manyc */ - S_ST( 's', 3, 483, 0 ), /* 482 manyca */ - S_ST( 't', 3, 489, 0 ), /* 483 manycas */ - S_ST( 'c', 3, 485, 0 ), /* 484 manycast */ - S_ST( 'l', 3, 486, 0 ), /* 485 manycastc */ - S_ST( 'i', 3, 487, 0 ), /* 486 manycastcl */ - S_ST( 'e', 3, 488, 0 ), /* 487 manycastcli */ - S_ST( 'n', 3, 339, 0 ), /* 488 manycastclie */ - S_ST( 's', 3, 490, 484 ), /* 489 manycast */ - S_ST( 'e', 3, 491, 0 ), /* 490 manycasts */ - S_ST( 'r', 3, 492, 0 ), /* 491 manycastse */ - S_ST( 'v', 3, 493, 0 ), /* 492 manycastser */ - S_ST( 'e', 3, 340, 0 ), /* 493 manycastserv */ - S_ST( 's', 3, 341, 478 ), /* 494 ma */ - S_ST( 'x', 3, 510, 494 ), /* 495 ma */ - S_ST( 'a', 3, 497, 0 ), /* 496 max */ - S_ST( 'g', 3, 342, 0 ), /* 497 maxa */ - S_ST( 'c', 3, 499, 496 ), /* 498 max */ - S_ST( 'l', 3, 500, 0 ), /* 499 maxc */ - S_ST( 'o', 3, 501, 0 ), /* 500 maxcl */ - S_ST( 'c', 3, 343, 0 ), /* 501 maxclo */ - S_ST( 'd', 3, 506, 498 ), /* 502 max */ - S_ST( 'e', 3, 504, 0 ), /* 503 maxd */ - S_ST( 'p', 3, 505, 0 ), /* 504 maxde */ - S_ST( 't', 3, 344, 0 ), /* 505 maxdep */ - S_ST( 'i', 3, 507, 503 ), /* 506 maxd */ - S_ST( 's', 3, 345, 0 ), /* 507 maxdi */ - S_ST( 'm', 3, 509, 502 ), /* 508 max */ - S_ST( 'e', 3, 346, 0 ), /* 509 maxm */ - S_ST( 'p', 3, 511, 508 ), /* 510 max */ - S_ST( 'o', 3, 512, 0 ), /* 511 maxp */ - S_ST( 'l', 3, 347, 0 ), /* 512 maxpo */ - S_ST( 'd', 3, 514, 477 ), /* 513 m */ - S_ST( 'n', 3, 515, 0 ), /* 514 md */ - S_ST( 's', 3, 516, 0 ), /* 515 mdn */ - S_ST( 't', 3, 517, 0 ), /* 516 mdns */ - S_ST( 'r', 3, 518, 0 ), /* 517 mdnst */ - S_ST( 'i', 3, 519, 0 ), /* 518 mdnstr */ - S_ST( 'e', 3, 348, 0 ), /* 519 mdnstri */ - S_ST( 'e', 3, 349, 513 ), /* 520 m */ - S_ST( 'l', 3, 522, 0 ), /* 521 mem */ - S_ST( 'o', 3, 523, 0 ), /* 522 meml */ - S_ST( 'c', 3, 350, 0 ), /* 523 memlo */ - S_ST( 'i', 3, 525, 520 ), /* 524 m */ - S_ST( 'n', 3, 542, 0 ), /* 525 mi */ - S_ST( 'c', 3, 527, 0 ), /* 526 min */ - S_ST( 'l', 3, 528, 0 ), /* 527 minc */ - S_ST( 'o', 3, 529, 0 ), /* 528 mincl */ - S_ST( 'c', 3, 351, 0 ), /* 529 minclo */ - S_ST( 'd', 3, 534, 526 ), /* 530 min */ - S_ST( 'e', 3, 532, 0 ), /* 531 mind */ - S_ST( 'p', 3, 533, 0 ), /* 532 minde */ - S_ST( 't', 3, 352, 0 ), /* 533 mindep */ - S_ST( 'i', 3, 535, 531 ), /* 534 mind */ - S_ST( 's', 3, 353, 0 ), /* 535 mindi */ - S_ST( 'i', 3, 537, 530 ), /* 536 min */ - S_ST( 'm', 3, 538, 0 ), /* 537 mini */ - S_ST( 'u', 3, 354, 0 ), /* 538 minim */ - S_ST( 'p', 3, 540, 536 ), /* 539 min */ - S_ST( 'o', 3, 541, 0 ), /* 540 minp */ - S_ST( 'l', 3, 355, 0 ), /* 541 minpo */ - S_ST( 's', 3, 543, 539 ), /* 542 min */ - S_ST( 'a', 3, 544, 0 ), /* 543 mins */ - S_ST( 'n', 3, 356, 0 ), /* 544 minsa */ - S_ST( 'o', 3, 547, 524 ), /* 545 m */ - S_ST( 'd', 3, 357, 0 ), /* 546 mo */ - S_ST( 'n', 3, 551, 546 ), /* 547 mo */ - S_ST( 'i', 3, 549, 0 ), /* 548 mon */ - S_ST( 't', 3, 550, 0 ), /* 549 moni */ - S_ST( 'o', 3, 359, 0 ), /* 550 monit */ - S_ST( 't', 3, 360, 548 ), /* 551 mon */ - S_ST( 'r', 3, 361, 545 ), /* 552 m */ - S_ST( 's', 3, 554, 552 ), /* 553 m */ - S_ST( 's', 3, 555, 0 ), /* 554 ms */ - S_ST( 'n', 3, 556, 0 ), /* 555 mss */ - S_ST( 't', 3, 329, 0 ), /* 556 mssn */ - S_ST( 'u', 3, 558, 553 ), /* 557 m */ - S_ST( 'l', 3, 559, 0 ), /* 558 mu */ - S_ST( 't', 3, 560, 0 ), /* 559 mul */ - S_ST( 'i', 3, 561, 0 ), /* 560 mult */ - S_ST( 'c', 3, 562, 0 ), /* 561 multi */ - S_ST( 'a', 3, 563, 0 ), /* 562 multic */ - S_ST( 's', 3, 564, 0 ), /* 563 multica */ - S_ST( 't', 3, 565, 0 ), /* 564 multicas */ - S_ST( 'c', 3, 566, 0 ), /* 565 multicast */ - S_ST( 'l', 3, 567, 0 ), /* 566 multicastc */ - S_ST( 'i', 3, 568, 0 ), /* 567 multicastcl */ - S_ST( 'e', 3, 569, 0 ), /* 568 multicastcli */ - S_ST( 'n', 3, 362, 0 ), /* 569 multicastclie */ - S_ST( 'n', 3, 613, 476 ), /* 570 */ - S_ST( 'i', 3, 363, 0 ), /* 571 n */ - S_ST( 'o', 3, 608, 571 ), /* 572 n */ - S_ST( 'l', 3, 574, 0 ), /* 573 no */ - S_ST( 'i', 3, 575, 0 ), /* 574 nol */ - S_ST( 'n', 3, 364, 0 ), /* 575 noli */ - S_ST( 'm', 3, 581, 573 ), /* 576 no */ - S_ST( 'o', 3, 578, 0 ), /* 577 nom */ - S_ST( 'd', 3, 579, 0 ), /* 578 nomo */ - S_ST( 'i', 3, 580, 0 ), /* 579 nomod */ - S_ST( 'f', 3, 365, 0 ), /* 580 nomodi */ - S_ST( 'r', 3, 582, 577 ), /* 581 nom */ - S_ST( 'u', 3, 583, 0 ), /* 582 nomr */ - S_ST( 'l', 3, 584, 0 ), /* 583 nomru */ - S_ST( 'i', 3, 585, 0 ), /* 584 nomrul */ - S_ST( 's', 3, 366, 0 ), /* 585 nomruli */ - S_ST( 'n', 3, 587, 576 ), /* 586 no */ - S_ST( 'v', 3, 588, 367 ), /* 587 non */ - S_ST( 'o', 3, 589, 0 ), /* 588 nonv */ - S_ST( 'l', 3, 590, 0 ), /* 589 nonvo */ - S_ST( 'a', 3, 591, 0 ), /* 590 nonvol */ - S_ST( 't', 3, 592, 0 ), /* 591 nonvola */ - S_ST( 'i', 3, 593, 0 ), /* 592 nonvolat */ - S_ST( 'l', 3, 368, 0 ), /* 593 nonvolati */ - S_ST( 'p', 3, 595, 586 ), /* 594 no */ - S_ST( 'e', 3, 596, 0 ), /* 595 nop */ - S_ST( 'e', 3, 369, 0 ), /* 596 nope */ - S_ST( 'q', 3, 598, 594 ), /* 597 no */ - S_ST( 'u', 3, 599, 0 ), /* 598 noq */ - S_ST( 'e', 3, 600, 0 ), /* 599 noqu */ - S_ST( 'r', 3, 370, 0 ), /* 600 noque */ - S_ST( 's', 3, 602, 597 ), /* 601 no */ - S_ST( 'e', 3, 606, 0 ), /* 602 nos */ - S_ST( 'l', 3, 604, 0 ), /* 603 nose */ - S_ST( 'e', 3, 605, 0 ), /* 604 nosel */ - S_ST( 'c', 3, 371, 0 ), /* 605 nosele */ - S_ST( 'r', 3, 607, 603 ), /* 606 nose */ - S_ST( 'v', 3, 372, 0 ), /* 607 noser */ - S_ST( 't', 3, 609, 601 ), /* 608 no */ - S_ST( 'r', 3, 611, 0 ), /* 609 not */ - S_ST( 'a', 3, 373, 0 ), /* 610 notr */ - S_ST( 'u', 3, 612, 610 ), /* 611 notr */ - S_ST( 's', 3, 374, 0 ), /* 612 notru */ - S_ST( 't', 3, 375, 572 ), /* 613 n */ - S_ST( 'p', 3, 615, 0 ), /* 614 ntp */ - S_ST( 'o', 3, 616, 0 ), /* 615 ntpp */ - S_ST( 'r', 3, 376, 0 ), /* 616 ntppo */ - S_ST( 's', 3, 618, 614 ), /* 617 ntp */ - S_ST( 'i', 3, 619, 0 ), /* 618 ntps */ - S_ST( 'g', 3, 620, 0 ), /* 619 ntpsi */ - S_ST( 'n', 3, 621, 0 ), /* 620 ntpsig */ - S_ST( 'd', 3, 622, 0 ), /* 621 ntpsign */ - S_ST( 's', 3, 623, 0 ), /* 622 ntpsignd */ - S_ST( 'o', 3, 624, 0 ), /* 623 ntpsignds */ - S_ST( 'c', 3, 625, 0 ), /* 624 ntpsigndso */ - S_ST( 'k', 3, 626, 0 ), /* 625 ntpsigndsoc */ - S_ST( 'e', 3, 377, 0 ), /* 626 ntpsigndsock */ - S_ST( 'o', 3, 628, 570 ), /* 627 */ - S_ST( 'r', 3, 629, 0 ), /* 628 o */ - S_ST( 'p', 3, 630, 0 ), /* 629 or */ - S_ST( 'h', 3, 631, 0 ), /* 630 orp */ - S_ST( 'a', 3, 378, 0 ), /* 631 orph */ - S_ST( 'w', 3, 633, 0 ), /* 632 orphan */ - S_ST( 'a', 3, 634, 0 ), /* 633 orphanw */ - S_ST( 'i', 3, 379, 0 ), /* 634 orphanwa */ - S_ST( 'p', 3, 391, 627 ), /* 635 */ - S_ST( 'a', 3, 637, 0 ), /* 636 p */ - S_ST( 'n', 3, 638, 0 ), /* 637 pa */ - S_ST( 'i', 3, 380, 0 ), /* 638 pan */ - S_ST( 'e', 3, 640, 636 ), /* 639 p */ - S_ST( 'e', 3, 381, 0 ), /* 640 pe */ - S_ST( 's', 3, 642, 0 ), /* 641 peer */ - S_ST( 't', 3, 643, 0 ), /* 642 peers */ - S_ST( 'a', 3, 644, 0 ), /* 643 peerst */ - S_ST( 't', 3, 382, 0 ), /* 644 peersta */ - S_ST( 'h', 3, 646, 639 ), /* 645 p */ - S_ST( 'o', 3, 647, 0 ), /* 646 ph */ - S_ST( 'n', 3, 383, 0 ), /* 647 pho */ - S_ST( 'i', 3, 384, 645 ), /* 648 p */ - S_ST( 'f', 3, 650, 0 ), /* 649 pid */ - S_ST( 'i', 3, 651, 0 ), /* 650 pidf */ - S_ST( 'l', 3, 385, 0 ), /* 651 pidfi */ - S_ST( 'o', 3, 654, 648 ), /* 652 p */ - S_ST( 'o', 3, 386, 0 ), /* 653 po */ - S_ST( 'r', 3, 387, 653 ), /* 654 po */ - S_ST( 'r', 3, 662, 652 ), /* 655 p */ - S_ST( 'e', 3, 660, 0 ), /* 656 pr */ - S_ST( 'e', 3, 658, 0 ), /* 657 pre */ - S_ST( 'm', 3, 659, 0 ), /* 658 pree */ - S_ST( 'p', 3, 388, 0 ), /* 659 preem */ - S_ST( 'f', 3, 661, 657 ), /* 660 pre */ - S_ST( 'e', 3, 389, 0 ), /* 661 pref */ - S_ST( 'o', 3, 675, 656 ), /* 662 pr */ - S_ST( 'c', 3, 664, 0 ), /* 663 pro */ - S_ST( '_', 3, 665, 0 ), /* 664 proc */ - S_ST( 'd', 3, 666, 0 ), /* 665 proc_ */ - S_ST( 'e', 3, 667, 0 ), /* 666 proc_d */ - S_ST( 'l', 3, 668, 0 ), /* 667 proc_de */ - S_ST( 'a', 3, 451, 0 ), /* 668 proc_del */ - S_ST( 'p', 3, 670, 663 ), /* 669 pro */ - S_ST( '_', 3, 671, 0 ), /* 670 prop */ - S_ST( 'd', 3, 672, 0 ), /* 671 prop_ */ - S_ST( 'e', 3, 673, 0 ), /* 672 prop_d */ - S_ST( 'l', 3, 674, 0 ), /* 673 prop_de */ - S_ST( 'a', 3, 450, 0 ), /* 674 prop_del */ - S_ST( 't', 3, 676, 669 ), /* 675 pro */ - S_ST( 'o', 3, 677, 0 ), /* 676 prot */ - S_ST( 's', 3, 678, 0 ), /* 677 proto */ - S_ST( 't', 3, 679, 0 ), /* 678 protos */ - S_ST( 'a', 3, 680, 0 ), /* 679 protost */ - S_ST( 't', 3, 390, 0 ), /* 680 protosta */ - S_ST( 'r', 3, 712, 635 ), /* 681 */ - S_ST( 'a', 3, 688, 0 ), /* 682 r */ - S_ST( 'n', 3, 684, 0 ), /* 683 ra */ - S_ST( 'd', 3, 685, 0 ), /* 684 ran */ - S_ST( 'f', 3, 686, 0 ), /* 685 rand */ - S_ST( 'i', 3, 687, 0 ), /* 686 randf */ - S_ST( 'l', 3, 392, 0 ), /* 687 randfi */ - S_ST( 'w', 3, 689, 683 ), /* 688 ra */ - S_ST( 's', 3, 690, 0 ), /* 689 raw */ - S_ST( 't', 3, 691, 0 ), /* 690 raws */ - S_ST( 'a', 3, 692, 0 ), /* 691 rawst */ - S_ST( 't', 3, 393, 0 ), /* 692 rawsta */ - S_ST( 'e', 3, 709, 682 ), /* 693 r */ - S_ST( 'f', 3, 695, 0 ), /* 694 re */ - S_ST( 'i', 3, 394, 0 ), /* 695 ref */ - S_ST( 'q', 3, 697, 694 ), /* 696 re */ - S_ST( 'u', 3, 698, 0 ), /* 697 req */ - S_ST( 'e', 3, 699, 0 ), /* 698 requ */ - S_ST( 's', 3, 700, 0 ), /* 699 reque */ - S_ST( 't', 3, 701, 0 ), /* 700 reques */ - S_ST( 'k', 3, 702, 0 ), /* 701 request */ - S_ST( 'e', 3, 395, 0 ), /* 702 requestk */ - S_ST( 's', 3, 705, 696 ), /* 703 re */ - S_ST( 'e', 3, 396, 0 ), /* 704 res */ - S_ST( 't', 3, 706, 704 ), /* 705 res */ - S_ST( 'r', 3, 707, 0 ), /* 706 rest */ - S_ST( 'i', 3, 708, 0 ), /* 707 restr */ - S_ST( 'c', 3, 397, 0 ), /* 708 restri */ - S_ST( 'v', 3, 710, 703 ), /* 709 re */ - S_ST( 'o', 3, 711, 0 ), /* 710 rev */ - S_ST( 'k', 3, 398, 0 ), /* 711 revo */ - S_ST( 'l', 3, 713, 693 ), /* 712 r */ - S_ST( 'i', 3, 714, 0 ), /* 713 rl */ - S_ST( 'm', 3, 715, 0 ), /* 714 rli */ - S_ST( 'i', 3, 399, 0 ), /* 715 rlim */ - S_ST( 's', 3, 789, 681 ), /* 716 */ - S_ST( 'a', 3, 718, 0 ), /* 717 s */ - S_ST( 'v', 3, 719, 0 ), /* 718 sa */ - S_ST( 'e', 3, 720, 0 ), /* 719 sav */ - S_ST( 'c', 3, 721, 0 ), /* 720 save */ - S_ST( 'o', 3, 722, 0 ), /* 721 savec */ - S_ST( 'n', 3, 723, 0 ), /* 722 saveco */ - S_ST( 'f', 3, 724, 0 ), /* 723 savecon */ - S_ST( 'i', 3, 725, 0 ), /* 724 saveconf */ - S_ST( 'g', 3, 726, 0 ), /* 725 saveconfi */ - S_ST( 'd', 3, 727, 0 ), /* 726 saveconfig */ - S_ST( 'i', 3, 400, 0 ), /* 727 saveconfigd */ - S_ST( 'e', 3, 738, 717 ), /* 728 s */ - S_ST( 'r', 3, 730, 0 ), /* 729 se */ - S_ST( 'v', 3, 731, 0 ), /* 730 ser */ - S_ST( 'e', 3, 401, 0 ), /* 731 serv */ - S_ST( '_', 3, 733, 0 ), /* 732 server */ - S_ST( 'o', 3, 734, 0 ), /* 733 server_ */ - S_ST( 'f', 3, 735, 0 ), /* 734 server_o */ - S_ST( 'f', 3, 736, 0 ), /* 735 server_of */ - S_ST( 's', 3, 737, 0 ), /* 736 server_off */ - S_ST( 'e', 3, 445, 0 ), /* 737 server_offs */ - S_ST( 't', 3, 739, 729 ), /* 738 se */ - S_ST( 'v', 3, 740, 0 ), /* 739 set */ - S_ST( 'a', 3, 402, 0 ), /* 740 setv */ - S_ST( 'i', 3, 742, 728 ), /* 741 s */ - S_ST( 'm', 3, 743, 0 ), /* 742 si */ - S_ST( 'u', 3, 744, 0 ), /* 743 sim */ - S_ST( 'l', 3, 745, 0 ), /* 744 simu */ - S_ST( 'a', 3, 746, 0 ), /* 745 simul */ - S_ST( 't', 3, 747, 0 ), /* 746 simula */ - S_ST( 'i', 3, 748, 442 ), /* 747 simulat */ - S_ST( 'o', 3, 749, 0 ), /* 748 simulati */ - S_ST( 'n', 3, 750, 0 ), /* 749 simulatio */ - S_ST( '_', 3, 751, 0 ), /* 750 simulation */ - S_ST( 'd', 3, 752, 0 ), /* 751 simulation_ */ - S_ST( 'u', 3, 753, 0 ), /* 752 simulation_d */ - S_ST( 'r', 3, 754, 0 ), /* 753 simulation_du */ - S_ST( 'a', 3, 755, 0 ), /* 754 simulation_dur */ - S_ST( 't', 3, 756, 0 ), /* 755 simulation_dura */ - S_ST( 'i', 3, 757, 0 ), /* 756 simulation_durat */ - S_ST( 'o', 3, 444, 0 ), /* 757 simulation_durati */ - S_ST( 'o', 3, 759, 741 ), /* 758 s */ - S_ST( 'u', 3, 760, 0 ), /* 759 so */ - S_ST( 'r', 3, 761, 0 ), /* 760 sou */ - S_ST( 'c', 3, 403, 0 ), /* 761 sour */ - S_ST( 't', 3, 785, 758 ), /* 762 s */ - S_ST( 'a', 3, 769, 0 ), /* 763 st */ - S_ST( 'c', 3, 765, 0 ), /* 764 sta */ - S_ST( 'k', 3, 766, 0 ), /* 765 stac */ - S_ST( 's', 3, 767, 0 ), /* 766 stack */ - S_ST( 'i', 3, 768, 0 ), /* 767 stacks */ - S_ST( 'z', 3, 404, 0 ), /* 768 stacksi */ - S_ST( 't', 3, 406, 764 ), /* 769 sta */ - S_ST( 'i', 3, 771, 0 ), /* 770 stat */ - S_ST( 's', 3, 772, 0 ), /* 771 stati */ - S_ST( 't', 3, 773, 0 ), /* 772 statis */ - S_ST( 'i', 3, 774, 0 ), /* 773 statist */ - S_ST( 'c', 3, 405, 0 ), /* 774 statisti */ - S_ST( 'd', 3, 776, 0 ), /* 775 stats */ - S_ST( 'i', 3, 407, 0 ), /* 776 statsd */ - S_ST( 'e', 3, 408, 763 ), /* 777 st */ - S_ST( 'b', 3, 779, 0 ), /* 778 step */ - S_ST( 'a', 3, 780, 0 ), /* 779 stepb */ - S_ST( 'c', 3, 409, 0 ), /* 780 stepba */ - S_ST( 'f', 3, 782, 778 ), /* 781 step */ - S_ST( 'w', 3, 410, 0 ), /* 782 stepf */ - S_ST( 'o', 3, 784, 781 ), /* 783 step */ - S_ST( 'u', 3, 411, 0 ), /* 784 stepo */ - S_ST( 'r', 3, 786, 777 ), /* 785 st */ - S_ST( 'a', 3, 787, 0 ), /* 786 str */ - S_ST( 't', 3, 788, 0 ), /* 787 stra */ - S_ST( 'u', 3, 412, 0 ), /* 788 strat */ - S_ST( 'y', 3, 414, 762 ), /* 789 s */ - S_ST( 's', 3, 791, 0 ), /* 790 sys */ - S_ST( 't', 3, 792, 0 ), /* 791 syss */ - S_ST( 'a', 3, 793, 0 ), /* 792 sysst */ - S_ST( 't', 3, 415, 0 ), /* 793 syssta */ - S_ST( 't', 3, 820, 716 ), /* 794 */ - S_ST( 'i', 3, 806, 0 ), /* 795 t */ - S_ST( 'c', 3, 416, 0 ), /* 796 ti */ - S_ST( 'm', 3, 799, 796 ), /* 797 ti */ - S_ST( 'e', 3, 419, 0 ), /* 798 tim */ - S_ST( 'i', 3, 800, 798 ), /* 799 tim */ - S_ST( 'n', 3, 801, 0 ), /* 800 timi */ - S_ST( 'g', 3, 802, 0 ), /* 801 timin */ - S_ST( 's', 3, 803, 0 ), /* 802 timing */ - S_ST( 't', 3, 804, 0 ), /* 803 timings */ - S_ST( 'a', 3, 805, 0 ), /* 804 timingst */ - S_ST( 't', 3, 420, 0 ), /* 805 timingsta */ - S_ST( 'n', 3, 807, 797 ), /* 806 ti */ - S_ST( 'k', 3, 808, 0 ), /* 807 tin */ - S_ST( 'e', 3, 421, 0 ), /* 808 tink */ - S_ST( 'o', 3, 422, 795 ), /* 809 t */ - S_ST( 'r', 3, 812, 809 ), /* 810 t */ - S_ST( 'a', 3, 423, 0 ), /* 811 tr */ - S_ST( 'u', 3, 813, 811 ), /* 812 tr */ - S_ST( 's', 3, 814, 424 ), /* 813 tru */ - S_ST( 't', 3, 815, 0 ), /* 814 trus */ - S_ST( 'e', 3, 816, 0 ), /* 815 trust */ - S_ST( 'd', 3, 817, 0 ), /* 816 truste */ - S_ST( 'k', 3, 818, 0 ), /* 817 trusted */ - S_ST( 'e', 3, 425, 0 ), /* 818 trustedk */ - S_ST( 't', 3, 426, 810 ), /* 819 t */ - S_ST( 'y', 3, 821, 819 ), /* 820 t */ - S_ST( 'p', 3, 427, 0 ), /* 821 ty */ - S_ST( 'u', 3, 823, 794 ), /* 822 */ - S_ST( 'n', 3, 829, 0 ), /* 823 u */ - S_ST( 'c', 3, 825, 0 ), /* 824 un */ - S_ST( 'o', 3, 826, 0 ), /* 825 unc */ - S_ST( 'n', 3, 827, 0 ), /* 826 unco */ - S_ST( 'f', 3, 828, 0 ), /* 827 uncon */ - S_ST( 'i', 3, 432, 0 ), /* 828 unconf */ - S_ST( 'p', 3, 830, 824 ), /* 829 un */ - S_ST( 'e', 3, 831, 0 ), /* 830 unp */ - S_ST( 'e', 3, 433, 0 ), /* 831 unpe */ - S_ST( '_', 3, 852, 0 ), /* 832 unpeer */ - S_ST( 'c', 3, 834, 0 ), /* 833 unpeer_ */ - S_ST( 'r', 3, 835, 0 ), /* 834 unpeer_c */ - S_ST( 'y', 3, 836, 0 ), /* 835 unpeer_cr */ - S_ST( 'p', 3, 837, 0 ), /* 836 unpeer_cry */ - S_ST( 't', 3, 838, 0 ), /* 837 unpeer_cryp */ - S_ST( 'o', 3, 839, 0 ), /* 838 unpeer_crypt */ - S_ST( '_', 3, 844, 0 ), /* 839 unpeer_crypto */ - S_ST( 'e', 3, 841, 0 ), /* 840 unpeer_crypto_ */ - S_ST( 'a', 3, 842, 0 ), /* 841 unpeer_crypto_e */ - S_ST( 'r', 3, 843, 0 ), /* 842 unpeer_crypto_ea */ - S_ST( 'l', 3, 429, 0 ), /* 843 unpeer_crypto_ear */ - S_ST( 'n', 3, 845, 840 ), /* 844 unpeer_crypto_ */ - S_ST( 'a', 3, 846, 0 ), /* 845 unpeer_crypto_n */ - S_ST( 'k', 3, 847, 0 ), /* 846 unpeer_crypto_na */ - S_ST( '_', 3, 848, 0 ), /* 847 unpeer_crypto_nak */ - S_ST( 'e', 3, 849, 0 ), /* 848 unpeer_crypto_nak_ */ - S_ST( 'a', 3, 850, 0 ), /* 849 unpeer_crypto_nak_e */ - S_ST( 'r', 3, 851, 0 ), /* 850 unpeer_crypto_nak_ea */ - S_ST( 'l', 3, 430, 0 ), /* 851 unpeer_crypto_nak_ear */ - S_ST( 'd', 3, 853, 833 ), /* 852 unpeer_ */ - S_ST( 'i', 3, 854, 0 ), /* 853 unpeer_d */ - S_ST( 'g', 3, 855, 0 ), /* 854 unpeer_di */ - S_ST( 'e', 3, 856, 0 ), /* 855 unpeer_dig */ - S_ST( 's', 3, 857, 0 ), /* 856 unpeer_dige */ - S_ST( 't', 3, 858, 0 ), /* 857 unpeer_diges */ - S_ST( '_', 3, 859, 0 ), /* 858 unpeer_digest */ - S_ST( 'e', 3, 860, 0 ), /* 859 unpeer_digest_ */ - S_ST( 'a', 3, 861, 0 ), /* 860 unpeer_digest_e */ - S_ST( 'r', 3, 862, 0 ), /* 861 unpeer_digest_ea */ - S_ST( 'l', 3, 431, 0 ), /* 862 unpeer_digest_ear */ - S_ST( 'v', 3, 864, 822 ), /* 863 */ - S_ST( 'e', 3, 865, 0 ), /* 864 v */ - S_ST( 'r', 3, 866, 0 ), /* 865 ve */ - S_ST( 's', 3, 867, 0 ), /* 866 ver */ - S_ST( 'i', 3, 868, 0 ), /* 867 vers */ - S_ST( 'o', 3, 434, 0 ), /* 868 versi */ - S_ST( 'w', 3, 876, 863 ), /* 869 */ - S_ST( 'a', 3, 871, 0 ), /* 870 w */ - S_ST( 'n', 3, 872, 0 ), /* 871 wa */ - S_ST( 'd', 3, 873, 0 ), /* 872 wan */ - S_ST( 'e', 3, 448, 0 ), /* 873 wand */ - S_ST( 'e', 3, 875, 870 ), /* 874 w */ - S_ST( 'e', 3, 436, 0 ), /* 875 we */ - S_ST( 'i', 3, 877, 874 ), /* 876 w */ - S_ST( 'l', 3, 878, 0 ), /* 877 wi */ - S_ST( 'd', 3, 879, 0 ), /* 878 wil */ - S_ST( 'c', 3, 880, 0 ), /* 879 wild */ - S_ST( 'a', 3, 881, 0 ), /* 880 wildc */ - S_ST( 'r', 3, 437, 0 ), /* 881 wildca */ - S_ST( 'x', 3, 883, 869 ), /* 882 */ - S_ST( 'l', 3, 884, 0 ), /* 883 x */ - S_ST( 'e', 3, 885, 0 ), /* 884 xl */ - S_ST( 'a', 3, 886, 0 ), /* 885 xle */ - S_ST( 'v', 3, 438, 0 ), /* 886 xlea */ - S_ST( 'y', 3, 888, 882 ), /* 887 [initial state] */ - S_ST( 'e', 3, 889, 0 ), /* 888 y */ - S_ST( 'a', 3, 439, 0 ) /* 889 ye */ + S_ST( 'y', 0, 0, 0 ), /* 380 T_PCEdigest */ + S_ST( 'c', 0, 0, 0 ), /* 381 T_Panic */ + S_ST( 'r', 1, 660, 0 ), /* 382 T_Peer */ + S_ST( 's', 0, 0, 0 ), /* 383 T_Peerstats */ + S_ST( 'e', 2, 0, 0 ), /* 384 T_Phone */ + S_ST( 'd', 0, 668, 0 ), /* 385 T_Pid */ + S_ST( 'e', 1, 0, 0 ), /* 386 T_Pidfile */ + S_ST( 'l', 1, 0, 0 ), /* 387 T_Pool */ + S_ST( 't', 0, 0, 0 ), /* 388 T_Port */ + S_ST( 't', 0, 0, 0 ), /* 389 T_Preempt */ + S_ST( 'r', 0, 0, 0 ), /* 390 T_Prefer */ + S_ST( 's', 0, 0, 0 ), /* 391 T_Protostats */ + S_ST( 'w', 1, 0, 674 ), /* 392 T_Pw */ + S_ST( 'e', 1, 0, 0 ), /* 393 T_Randfile */ + S_ST( 's', 0, 0, 0 ), /* 394 T_Rawstats */ + S_ST( 'd', 1, 0, 0 ), /* 395 T_Refid */ + S_ST( 'y', 0, 0, 0 ), /* 396 T_Requestkey */ + S_ST( 't', 0, 0, 0 ), /* 397 T_Reset */ + S_ST( 't', 0, 0, 0 ), /* 398 T_Restrict */ + S_ST( 'e', 0, 0, 0 ), /* 399 T_Revoke */ + S_ST( 't', 0, 0, 0 ), /* 400 T_Rlimit */ + S_ST( 'r', 1, 0, 0 ), /* 401 T_Saveconfigdir */ + S_ST( 'r', 1, 751, 0 ), /* 402 T_Server */ + S_ST( 'r', 1, 0, 0 ), /* 403 T_Setvar */ + S_ST( 'e', 0, 0, 0 ), /* 404 T_Source */ + S_ST( 'e', 0, 0, 0 ), /* 405 T_Stacksize */ + S_ST( 's', 0, 0, 0 ), /* 406 T_Statistics */ + S_ST( 's', 0, 794, 789 ), /* 407 T_Stats */ + S_ST( 'r', 1, 0, 0 ), /* 408 T_Statsdir */ + S_ST( 'p', 0, 802, 0 ), /* 409 T_Step */ + S_ST( 'k', 0, 0, 0 ), /* 410 T_Stepback */ + S_ST( 'd', 0, 0, 0 ), /* 411 T_Stepfwd */ + S_ST( 't', 0, 0, 0 ), /* 412 T_Stepout */ + S_ST( 'm', 0, 0, 0 ), /* 413 T_Stratum */ + S_ST( 'e', 3, 332, 0 ), /* 414 limit */ + S_ST( 's', 0, 809, 0 ), /* 415 T_Sys */ + S_ST( 's', 0, 0, 0 ), /* 416 T_Sysstats */ + S_ST( 'k', 0, 0, 0 ), /* 417 T_Tick */ + S_ST( '1', 0, 0, 0 ), /* 418 T_Time1 */ + S_ST( '2', 0, 0, 418 ), /* 419 T_Time2 */ + S_ST( 'r', 0, 0, 419 ), /* 420 T_Timer */ + S_ST( 's', 0, 0, 0 ), /* 421 T_Timingstats */ + S_ST( 'r', 0, 0, 0 ), /* 422 T_Tinker */ + S_ST( 's', 0, 0, 0 ), /* 423 T_Tos */ + S_ST( 'p', 1, 0, 0 ), /* 424 T_Trap */ + S_ST( 'e', 0, 0, 0 ), /* 425 T_True */ + S_ST( 'y', 0, 0, 0 ), /* 426 T_Trustedkey */ + S_ST( 'l', 0, 0, 0 ), /* 427 T_Ttl */ + S_ST( 'e', 0, 0, 0 ), /* 428 T_Type */ + S_ST( 'n', 3, 333, 294 ), /* 429 li */ + S_ST( 'y', 0, 0, 0 ), /* 430 T_UEcrypto */ + S_ST( 'y', 0, 0, 0 ), /* 431 T_UEcryptonak */ + S_ST( 'y', 0, 0, 0 ), /* 432 T_UEdigest */ + S_ST( 'g', 1, 0, 0 ), /* 433 T_Unconfig */ + S_ST( 'r', 1, 851, 0 ), /* 434 T_Unpeer */ + S_ST( 'n', 0, 0, 0 ), /* 435 T_Version */ + S_ST( 's', 3, 441, 429 ), /* 436 li */ + S_ST( 'k', 0, 0, 0 ), /* 437 T_Week */ + S_ST( 'd', 0, 0, 0 ), /* 438 T_Wildcard */ + S_ST( 'e', 0, 0, 0 ), /* 439 T_Xleave */ + S_ST( 'r', 0, 0, 0 ), /* 440 T_Year */ + S_ST( 't', 3, 442, 0 ), /* 441 lis */ + S_ST( 'e', 3, 334, 0 ), /* 442 list */ + S_ST( 'e', 0, 0, 0 ), /* 443 T_Simulate */ + S_ST( 'y', 0, 0, 0 ), /* 444 T_Beep_Delay */ + S_ST( 'n', 0, 0, 0 ), /* 445 T_Sim_Duration */ + S_ST( 't', 0, 0, 0 ), /* 446 T_Server_Offset */ + S_ST( 'n', 0, 0, 0 ), /* 447 T_Duration */ + S_ST( 't', 0, 0, 0 ), /* 448 T_Freq_Offset */ + S_ST( 'r', 0, 0, 0 ), /* 449 T_Wander */ + S_ST( 'r', 0, 0, 0 ), /* 450 T_Jitter */ + S_ST( 'y', 0, 0, 0 ), /* 451 T_Prop_Delay */ + S_ST( 'y', 0, 0, 0 ), /* 452 T_Proc_Delay */ + S_ST( 'o', 3, 469, 287 ), /* 453 l */ + S_ST( 'g', 3, 460, 0 ), /* 454 lo */ + S_ST( 'c', 3, 456, 0 ), /* 455 log */ + S_ST( 'o', 3, 457, 0 ), /* 456 logc */ + S_ST( 'n', 3, 458, 0 ), /* 457 logco */ + S_ST( 'f', 3, 459, 0 ), /* 458 logcon */ + S_ST( 'i', 3, 335, 0 ), /* 459 logconf */ + S_ST( 'f', 3, 461, 455 ), /* 460 log */ + S_ST( 'i', 3, 462, 0 ), /* 461 logf */ + S_ST( 'l', 3, 336, 0 ), /* 462 logfi */ + S_ST( 'o', 3, 464, 454 ), /* 463 lo */ + S_ST( 'p', 3, 465, 0 ), /* 464 loo */ + S_ST( 's', 3, 466, 0 ), /* 465 loop */ + S_ST( 't', 3, 467, 0 ), /* 466 loops */ + S_ST( 'a', 3, 468, 0 ), /* 467 loopst */ + S_ST( 't', 3, 337, 0 ), /* 468 loopsta */ + S_ST( 'w', 3, 470, 463 ), /* 469 lo */ + S_ST( 'p', 3, 471, 0 ), /* 470 low */ + S_ST( 'r', 3, 472, 0 ), /* 471 lowp */ + S_ST( 'i', 3, 473, 0 ), /* 472 lowpr */ + S_ST( 'o', 3, 474, 0 ), /* 473 lowpri */ + S_ST( 't', 3, 475, 0 ), /* 474 lowprio */ + S_ST( 'r', 3, 476, 0 ), /* 475 lowpriot */ + S_ST( 'a', 3, 338, 0 ), /* 476 lowpriotr */ + S_ST( 'm', 3, 558, 239 ), /* 477 */ + S_ST( 'a', 3, 496, 0 ), /* 478 m */ + S_ST( 'n', 3, 480, 0 ), /* 479 ma */ + S_ST( 'y', 3, 481, 0 ), /* 480 man */ + S_ST( 'c', 3, 482, 0 ), /* 481 many */ + S_ST( 'a', 3, 483, 0 ), /* 482 manyc */ + S_ST( 's', 3, 484, 0 ), /* 483 manyca */ + S_ST( 't', 3, 490, 0 ), /* 484 manycas */ + S_ST( 'c', 3, 486, 0 ), /* 485 manycast */ + S_ST( 'l', 3, 487, 0 ), /* 486 manycastc */ + S_ST( 'i', 3, 488, 0 ), /* 487 manycastcl */ + S_ST( 'e', 3, 489, 0 ), /* 488 manycastcli */ + S_ST( 'n', 3, 339, 0 ), /* 489 manycastclie */ + S_ST( 's', 3, 491, 485 ), /* 490 manycast */ + S_ST( 'e', 3, 492, 0 ), /* 491 manycasts */ + S_ST( 'r', 3, 493, 0 ), /* 492 manycastse */ + S_ST( 'v', 3, 494, 0 ), /* 493 manycastser */ + S_ST( 'e', 3, 340, 0 ), /* 494 manycastserv */ + S_ST( 's', 3, 341, 479 ), /* 495 ma */ + S_ST( 'x', 3, 511, 495 ), /* 496 ma */ + S_ST( 'a', 3, 498, 0 ), /* 497 max */ + S_ST( 'g', 3, 342, 0 ), /* 498 maxa */ + S_ST( 'c', 3, 500, 497 ), /* 499 max */ + S_ST( 'l', 3, 501, 0 ), /* 500 maxc */ + S_ST( 'o', 3, 502, 0 ), /* 501 maxcl */ + S_ST( 'c', 3, 343, 0 ), /* 502 maxclo */ + S_ST( 'd', 3, 507, 499 ), /* 503 max */ + S_ST( 'e', 3, 505, 0 ), /* 504 maxd */ + S_ST( 'p', 3, 506, 0 ), /* 505 maxde */ + S_ST( 't', 3, 344, 0 ), /* 506 maxdep */ + S_ST( 'i', 3, 508, 504 ), /* 507 maxd */ + S_ST( 's', 3, 345, 0 ), /* 508 maxdi */ + S_ST( 'm', 3, 510, 503 ), /* 509 max */ + S_ST( 'e', 3, 346, 0 ), /* 510 maxm */ + S_ST( 'p', 3, 512, 509 ), /* 511 max */ + S_ST( 'o', 3, 513, 0 ), /* 512 maxp */ + S_ST( 'l', 3, 347, 0 ), /* 513 maxpo */ + S_ST( 'd', 3, 515, 478 ), /* 514 m */ + S_ST( 'n', 3, 516, 0 ), /* 515 md */ + S_ST( 's', 3, 517, 0 ), /* 516 mdn */ + S_ST( 't', 3, 518, 0 ), /* 517 mdns */ + S_ST( 'r', 3, 519, 0 ), /* 518 mdnst */ + S_ST( 'i', 3, 520, 0 ), /* 519 mdnstr */ + S_ST( 'e', 3, 348, 0 ), /* 520 mdnstri */ + S_ST( 'e', 3, 349, 514 ), /* 521 m */ + S_ST( 'l', 3, 523, 0 ), /* 522 mem */ + S_ST( 'o', 3, 524, 0 ), /* 523 meml */ + S_ST( 'c', 3, 350, 0 ), /* 524 memlo */ + S_ST( 'i', 3, 526, 521 ), /* 525 m */ + S_ST( 'n', 3, 543, 0 ), /* 526 mi */ + S_ST( 'c', 3, 528, 0 ), /* 527 min */ + S_ST( 'l', 3, 529, 0 ), /* 528 minc */ + S_ST( 'o', 3, 530, 0 ), /* 529 mincl */ + S_ST( 'c', 3, 351, 0 ), /* 530 minclo */ + S_ST( 'd', 3, 535, 527 ), /* 531 min */ + S_ST( 'e', 3, 533, 0 ), /* 532 mind */ + S_ST( 'p', 3, 534, 0 ), /* 533 minde */ + S_ST( 't', 3, 352, 0 ), /* 534 mindep */ + S_ST( 'i', 3, 536, 532 ), /* 535 mind */ + S_ST( 's', 3, 353, 0 ), /* 536 mindi */ + S_ST( 'i', 3, 538, 531 ), /* 537 min */ + S_ST( 'm', 3, 539, 0 ), /* 538 mini */ + S_ST( 'u', 3, 354, 0 ), /* 539 minim */ + S_ST( 'p', 3, 541, 537 ), /* 540 min */ + S_ST( 'o', 3, 542, 0 ), /* 541 minp */ + S_ST( 'l', 3, 355, 0 ), /* 542 minpo */ + S_ST( 's', 3, 544, 540 ), /* 543 min */ + S_ST( 'a', 3, 545, 0 ), /* 544 mins */ + S_ST( 'n', 3, 356, 0 ), /* 545 minsa */ + S_ST( 'o', 3, 548, 525 ), /* 546 m */ + S_ST( 'd', 3, 357, 0 ), /* 547 mo */ + S_ST( 'n', 3, 552, 547 ), /* 548 mo */ + S_ST( 'i', 3, 550, 0 ), /* 549 mon */ + S_ST( 't', 3, 551, 0 ), /* 550 moni */ + S_ST( 'o', 3, 359, 0 ), /* 551 monit */ + S_ST( 't', 3, 360, 549 ), /* 552 mon */ + S_ST( 'r', 3, 361, 546 ), /* 553 m */ + S_ST( 's', 3, 555, 553 ), /* 554 m */ + S_ST( 's', 3, 556, 0 ), /* 555 ms */ + S_ST( 'n', 3, 557, 0 ), /* 556 mss */ + S_ST( 't', 3, 329, 0 ), /* 557 mssn */ + S_ST( 'u', 3, 559, 554 ), /* 558 m */ + S_ST( 'l', 3, 560, 0 ), /* 559 mu */ + S_ST( 't', 3, 561, 0 ), /* 560 mul */ + S_ST( 'i', 3, 562, 0 ), /* 561 mult */ + S_ST( 'c', 3, 563, 0 ), /* 562 multi */ + S_ST( 'a', 3, 564, 0 ), /* 563 multic */ + S_ST( 's', 3, 565, 0 ), /* 564 multica */ + S_ST( 't', 3, 566, 0 ), /* 565 multicas */ + S_ST( 'c', 3, 567, 0 ), /* 566 multicast */ + S_ST( 'l', 3, 568, 0 ), /* 567 multicastc */ + S_ST( 'i', 3, 569, 0 ), /* 568 multicastcl */ + S_ST( 'e', 3, 570, 0 ), /* 569 multicastcli */ + S_ST( 'n', 3, 362, 0 ), /* 570 multicastclie */ + S_ST( 'n', 3, 614, 477 ), /* 571 */ + S_ST( 'i', 3, 363, 0 ), /* 572 n */ + S_ST( 'o', 3, 609, 572 ), /* 573 n */ + S_ST( 'l', 3, 575, 0 ), /* 574 no */ + S_ST( 'i', 3, 576, 0 ), /* 575 nol */ + S_ST( 'n', 3, 364, 0 ), /* 576 noli */ + S_ST( 'm', 3, 582, 574 ), /* 577 no */ + S_ST( 'o', 3, 579, 0 ), /* 578 nom */ + S_ST( 'd', 3, 580, 0 ), /* 579 nomo */ + S_ST( 'i', 3, 581, 0 ), /* 580 nomod */ + S_ST( 'f', 3, 365, 0 ), /* 581 nomodi */ + S_ST( 'r', 3, 583, 578 ), /* 582 nom */ + S_ST( 'u', 3, 584, 0 ), /* 583 nomr */ + S_ST( 'l', 3, 585, 0 ), /* 584 nomru */ + S_ST( 'i', 3, 586, 0 ), /* 585 nomrul */ + S_ST( 's', 3, 366, 0 ), /* 586 nomruli */ + S_ST( 'n', 3, 588, 577 ), /* 587 no */ + S_ST( 'v', 3, 589, 367 ), /* 588 non */ + S_ST( 'o', 3, 590, 0 ), /* 589 nonv */ + S_ST( 'l', 3, 591, 0 ), /* 590 nonvo */ + S_ST( 'a', 3, 592, 0 ), /* 591 nonvol */ + S_ST( 't', 3, 593, 0 ), /* 592 nonvola */ + S_ST( 'i', 3, 594, 0 ), /* 593 nonvolat */ + S_ST( 'l', 3, 368, 0 ), /* 594 nonvolati */ + S_ST( 'p', 3, 596, 587 ), /* 595 no */ + S_ST( 'e', 3, 597, 0 ), /* 596 nop */ + S_ST( 'e', 3, 369, 0 ), /* 597 nope */ + S_ST( 'q', 3, 599, 595 ), /* 598 no */ + S_ST( 'u', 3, 600, 0 ), /* 599 noq */ + S_ST( 'e', 3, 601, 0 ), /* 600 noqu */ + S_ST( 'r', 3, 370, 0 ), /* 601 noque */ + S_ST( 's', 3, 603, 598 ), /* 602 no */ + S_ST( 'e', 3, 607, 0 ), /* 603 nos */ + S_ST( 'l', 3, 605, 0 ), /* 604 nose */ + S_ST( 'e', 3, 606, 0 ), /* 605 nosel */ + S_ST( 'c', 3, 371, 0 ), /* 606 nosele */ + S_ST( 'r', 3, 608, 604 ), /* 607 nose */ + S_ST( 'v', 3, 372, 0 ), /* 608 noser */ + S_ST( 't', 3, 610, 602 ), /* 609 no */ + S_ST( 'r', 3, 612, 0 ), /* 610 not */ + S_ST( 'a', 3, 373, 0 ), /* 611 notr */ + S_ST( 'u', 3, 613, 611 ), /* 612 notr */ + S_ST( 's', 3, 374, 0 ), /* 613 notru */ + S_ST( 't', 3, 375, 573 ), /* 614 n */ + S_ST( 'p', 3, 616, 0 ), /* 615 ntp */ + S_ST( 'o', 3, 617, 0 ), /* 616 ntpp */ + S_ST( 'r', 3, 376, 0 ), /* 617 ntppo */ + S_ST( 's', 3, 619, 615 ), /* 618 ntp */ + S_ST( 'i', 3, 620, 0 ), /* 619 ntps */ + S_ST( 'g', 3, 621, 0 ), /* 620 ntpsi */ + S_ST( 'n', 3, 622, 0 ), /* 621 ntpsig */ + S_ST( 'd', 3, 623, 0 ), /* 622 ntpsign */ + S_ST( 's', 3, 624, 0 ), /* 623 ntpsignd */ + S_ST( 'o', 3, 625, 0 ), /* 624 ntpsignds */ + S_ST( 'c', 3, 626, 0 ), /* 625 ntpsigndso */ + S_ST( 'k', 3, 627, 0 ), /* 626 ntpsigndsoc */ + S_ST( 'e', 3, 377, 0 ), /* 627 ntpsigndsock */ + S_ST( 'o', 3, 629, 571 ), /* 628 */ + S_ST( 'r', 3, 630, 0 ), /* 629 o */ + S_ST( 'p', 3, 631, 0 ), /* 630 or */ + S_ST( 'h', 3, 632, 0 ), /* 631 orp */ + S_ST( 'a', 3, 378, 0 ), /* 632 orph */ + S_ST( 'w', 3, 634, 0 ), /* 633 orphan */ + S_ST( 'a', 3, 635, 0 ), /* 634 orphanw */ + S_ST( 'i', 3, 379, 0 ), /* 635 orphanwa */ + S_ST( 'p', 3, 392, 628 ), /* 636 */ + S_ST( 'a', 3, 638, 0 ), /* 637 p */ + S_ST( 'n', 3, 639, 0 ), /* 638 pa */ + S_ST( 'i', 3, 381, 0 ), /* 639 pan */ + S_ST( 'e', 3, 641, 637 ), /* 640 p */ + S_ST( 'e', 3, 382, 0 ), /* 641 pe */ + S_ST( '_', 3, 643, 0 ), /* 642 peer */ + S_ST( 'c', 3, 644, 0 ), /* 643 peer_ */ + S_ST( 'l', 3, 645, 0 ), /* 644 peer_c */ + S_ST( 'e', 3, 646, 0 ), /* 645 peer_cl */ + S_ST( 'a', 3, 647, 0 ), /* 646 peer_cle */ + S_ST( 'r', 3, 648, 0 ), /* 647 peer_clea */ + S_ST( '_', 3, 649, 0 ), /* 648 peer_clear */ + S_ST( 'd', 3, 650, 0 ), /* 649 peer_clear_ */ + S_ST( 'i', 3, 651, 0 ), /* 650 peer_clear_d */ + S_ST( 'g', 3, 652, 0 ), /* 651 peer_clear_di */ + S_ST( 'e', 3, 653, 0 ), /* 652 peer_clear_dig */ + S_ST( 's', 3, 654, 0 ), /* 653 peer_clear_dige */ + S_ST( 't', 3, 655, 0 ), /* 654 peer_clear_diges */ + S_ST( '_', 3, 656, 0 ), /* 655 peer_clear_digest */ + S_ST( 'e', 3, 657, 0 ), /* 656 peer_clear_digest_ */ + S_ST( 'a', 3, 658, 0 ), /* 657 peer_clear_digest_e */ + S_ST( 'r', 3, 659, 0 ), /* 658 peer_clear_digest_ea */ + S_ST( 'l', 3, 380, 0 ), /* 659 peer_clear_digest_ear */ + S_ST( 's', 3, 661, 642 ), /* 660 peer */ + S_ST( 't', 3, 662, 0 ), /* 661 peers */ + S_ST( 'a', 3, 663, 0 ), /* 662 peerst */ + S_ST( 't', 3, 383, 0 ), /* 663 peersta */ + S_ST( 'h', 3, 665, 640 ), /* 664 p */ + S_ST( 'o', 3, 666, 0 ), /* 665 ph */ + S_ST( 'n', 3, 384, 0 ), /* 666 pho */ + S_ST( 'i', 3, 385, 664 ), /* 667 p */ + S_ST( 'f', 3, 669, 0 ), /* 668 pid */ + S_ST( 'i', 3, 670, 0 ), /* 669 pidf */ + S_ST( 'l', 3, 386, 0 ), /* 670 pidfi */ + S_ST( 'o', 3, 673, 667 ), /* 671 p */ + S_ST( 'o', 3, 387, 0 ), /* 672 po */ + S_ST( 'r', 3, 388, 672 ), /* 673 po */ + S_ST( 'r', 3, 681, 671 ), /* 674 p */ + S_ST( 'e', 3, 679, 0 ), /* 675 pr */ + S_ST( 'e', 3, 677, 0 ), /* 676 pre */ + S_ST( 'm', 3, 678, 0 ), /* 677 pree */ + S_ST( 'p', 3, 389, 0 ), /* 678 preem */ + S_ST( 'f', 3, 680, 676 ), /* 679 pre */ + S_ST( 'e', 3, 390, 0 ), /* 680 pref */ + S_ST( 'o', 3, 694, 675 ), /* 681 pr */ + S_ST( 'c', 3, 683, 0 ), /* 682 pro */ + S_ST( '_', 3, 684, 0 ), /* 683 proc */ + S_ST( 'd', 3, 685, 0 ), /* 684 proc_ */ + S_ST( 'e', 3, 686, 0 ), /* 685 proc_d */ + S_ST( 'l', 3, 687, 0 ), /* 686 proc_de */ + S_ST( 'a', 3, 452, 0 ), /* 687 proc_del */ + S_ST( 'p', 3, 689, 682 ), /* 688 pro */ + S_ST( '_', 3, 690, 0 ), /* 689 prop */ + S_ST( 'd', 3, 691, 0 ), /* 690 prop_ */ + S_ST( 'e', 3, 692, 0 ), /* 691 prop_d */ + S_ST( 'l', 3, 693, 0 ), /* 692 prop_de */ + S_ST( 'a', 3, 451, 0 ), /* 693 prop_del */ + S_ST( 't', 3, 695, 688 ), /* 694 pro */ + S_ST( 'o', 3, 696, 0 ), /* 695 prot */ + S_ST( 's', 3, 697, 0 ), /* 696 proto */ + S_ST( 't', 3, 698, 0 ), /* 697 protos */ + S_ST( 'a', 3, 699, 0 ), /* 698 protost */ + S_ST( 't', 3, 391, 0 ), /* 699 protosta */ + S_ST( 'r', 3, 731, 636 ), /* 700 */ + S_ST( 'a', 3, 707, 0 ), /* 701 r */ + S_ST( 'n', 3, 703, 0 ), /* 702 ra */ + S_ST( 'd', 3, 704, 0 ), /* 703 ran */ + S_ST( 'f', 3, 705, 0 ), /* 704 rand */ + S_ST( 'i', 3, 706, 0 ), /* 705 randf */ + S_ST( 'l', 3, 393, 0 ), /* 706 randfi */ + S_ST( 'w', 3, 708, 702 ), /* 707 ra */ + S_ST( 's', 3, 709, 0 ), /* 708 raw */ + S_ST( 't', 3, 710, 0 ), /* 709 raws */ + S_ST( 'a', 3, 711, 0 ), /* 710 rawst */ + S_ST( 't', 3, 394, 0 ), /* 711 rawsta */ + S_ST( 'e', 3, 728, 701 ), /* 712 r */ + S_ST( 'f', 3, 714, 0 ), /* 713 re */ + S_ST( 'i', 3, 395, 0 ), /* 714 ref */ + S_ST( 'q', 3, 716, 713 ), /* 715 re */ + S_ST( 'u', 3, 717, 0 ), /* 716 req */ + S_ST( 'e', 3, 718, 0 ), /* 717 requ */ + S_ST( 's', 3, 719, 0 ), /* 718 reque */ + S_ST( 't', 3, 720, 0 ), /* 719 reques */ + S_ST( 'k', 3, 721, 0 ), /* 720 request */ + S_ST( 'e', 3, 396, 0 ), /* 721 requestk */ + S_ST( 's', 3, 724, 715 ), /* 722 re */ + S_ST( 'e', 3, 397, 0 ), /* 723 res */ + S_ST( 't', 3, 725, 723 ), /* 724 res */ + S_ST( 'r', 3, 726, 0 ), /* 725 rest */ + S_ST( 'i', 3, 727, 0 ), /* 726 restr */ + S_ST( 'c', 3, 398, 0 ), /* 727 restri */ + S_ST( 'v', 3, 729, 722 ), /* 728 re */ + S_ST( 'o', 3, 730, 0 ), /* 729 rev */ + S_ST( 'k', 3, 399, 0 ), /* 730 revo */ + S_ST( 'l', 3, 732, 712 ), /* 731 r */ + S_ST( 'i', 3, 733, 0 ), /* 732 rl */ + S_ST( 'm', 3, 734, 0 ), /* 733 rli */ + S_ST( 'i', 3, 400, 0 ), /* 734 rlim */ + S_ST( 's', 3, 808, 700 ), /* 735 */ + S_ST( 'a', 3, 737, 0 ), /* 736 s */ + S_ST( 'v', 3, 738, 0 ), /* 737 sa */ + S_ST( 'e', 3, 739, 0 ), /* 738 sav */ + S_ST( 'c', 3, 740, 0 ), /* 739 save */ + S_ST( 'o', 3, 741, 0 ), /* 740 savec */ + S_ST( 'n', 3, 742, 0 ), /* 741 saveco */ + S_ST( 'f', 3, 743, 0 ), /* 742 savecon */ + S_ST( 'i', 3, 744, 0 ), /* 743 saveconf */ + S_ST( 'g', 3, 745, 0 ), /* 744 saveconfi */ + S_ST( 'd', 3, 746, 0 ), /* 745 saveconfig */ + S_ST( 'i', 3, 401, 0 ), /* 746 saveconfigd */ + S_ST( 'e', 3, 757, 736 ), /* 747 s */ + S_ST( 'r', 3, 749, 0 ), /* 748 se */ + S_ST( 'v', 3, 750, 0 ), /* 749 ser */ + S_ST( 'e', 3, 402, 0 ), /* 750 serv */ + S_ST( '_', 3, 752, 0 ), /* 751 server */ + S_ST( 'o', 3, 753, 0 ), /* 752 server_ */ + S_ST( 'f', 3, 754, 0 ), /* 753 server_o */ + S_ST( 'f', 3, 755, 0 ), /* 754 server_of */ + S_ST( 's', 3, 756, 0 ), /* 755 server_off */ + S_ST( 'e', 3, 446, 0 ), /* 756 server_offs */ + S_ST( 't', 3, 758, 748 ), /* 757 se */ + S_ST( 'v', 3, 759, 0 ), /* 758 set */ + S_ST( 'a', 3, 403, 0 ), /* 759 setv */ + S_ST( 'i', 3, 761, 747 ), /* 760 s */ + S_ST( 'm', 3, 762, 0 ), /* 761 si */ + S_ST( 'u', 3, 763, 0 ), /* 762 sim */ + S_ST( 'l', 3, 764, 0 ), /* 763 simu */ + S_ST( 'a', 3, 765, 0 ), /* 764 simul */ + S_ST( 't', 3, 766, 0 ), /* 765 simula */ + S_ST( 'i', 3, 767, 443 ), /* 766 simulat */ + S_ST( 'o', 3, 768, 0 ), /* 767 simulati */ + S_ST( 'n', 3, 769, 0 ), /* 768 simulatio */ + S_ST( '_', 3, 770, 0 ), /* 769 simulation */ + S_ST( 'd', 3, 771, 0 ), /* 770 simulation_ */ + S_ST( 'u', 3, 772, 0 ), /* 771 simulation_d */ + S_ST( 'r', 3, 773, 0 ), /* 772 simulation_du */ + S_ST( 'a', 3, 774, 0 ), /* 773 simulation_dur */ + S_ST( 't', 3, 775, 0 ), /* 774 simulation_dura */ + S_ST( 'i', 3, 776, 0 ), /* 775 simulation_durat */ + S_ST( 'o', 3, 445, 0 ), /* 776 simulation_durati */ + S_ST( 'o', 3, 778, 760 ), /* 777 s */ + S_ST( 'u', 3, 779, 0 ), /* 778 so */ + S_ST( 'r', 3, 780, 0 ), /* 779 sou */ + S_ST( 'c', 3, 404, 0 ), /* 780 sour */ + S_ST( 't', 3, 804, 777 ), /* 781 s */ + S_ST( 'a', 3, 788, 0 ), /* 782 st */ + S_ST( 'c', 3, 784, 0 ), /* 783 sta */ + S_ST( 'k', 3, 785, 0 ), /* 784 stac */ + S_ST( 's', 3, 786, 0 ), /* 785 stack */ + S_ST( 'i', 3, 787, 0 ), /* 786 stacks */ + S_ST( 'z', 3, 405, 0 ), /* 787 stacksi */ + S_ST( 't', 3, 407, 783 ), /* 788 sta */ + S_ST( 'i', 3, 790, 0 ), /* 789 stat */ + S_ST( 's', 3, 791, 0 ), /* 790 stati */ + S_ST( 't', 3, 792, 0 ), /* 791 statis */ + S_ST( 'i', 3, 793, 0 ), /* 792 statist */ + S_ST( 'c', 3, 406, 0 ), /* 793 statisti */ + S_ST( 'd', 3, 795, 0 ), /* 794 stats */ + S_ST( 'i', 3, 408, 0 ), /* 795 statsd */ + S_ST( 'e', 3, 409, 782 ), /* 796 st */ + S_ST( 'b', 3, 798, 0 ), /* 797 step */ + S_ST( 'a', 3, 799, 0 ), /* 798 stepb */ + S_ST( 'c', 3, 410, 0 ), /* 799 stepba */ + S_ST( 'f', 3, 801, 797 ), /* 800 step */ + S_ST( 'w', 3, 411, 0 ), /* 801 stepf */ + S_ST( 'o', 3, 803, 800 ), /* 802 step */ + S_ST( 'u', 3, 412, 0 ), /* 803 stepo */ + S_ST( 'r', 3, 805, 796 ), /* 804 st */ + S_ST( 'a', 3, 806, 0 ), /* 805 str */ + S_ST( 't', 3, 807, 0 ), /* 806 stra */ + S_ST( 'u', 3, 413, 0 ), /* 807 strat */ + S_ST( 'y', 3, 415, 781 ), /* 808 s */ + S_ST( 's', 3, 810, 0 ), /* 809 sys */ + S_ST( 't', 3, 811, 0 ), /* 810 syss */ + S_ST( 'a', 3, 812, 0 ), /* 811 sysst */ + S_ST( 't', 3, 416, 0 ), /* 812 syssta */ + S_ST( 't', 3, 839, 735 ), /* 813 */ + S_ST( 'i', 3, 825, 0 ), /* 814 t */ + S_ST( 'c', 3, 417, 0 ), /* 815 ti */ + S_ST( 'm', 3, 818, 815 ), /* 816 ti */ + S_ST( 'e', 3, 420, 0 ), /* 817 tim */ + S_ST( 'i', 3, 819, 817 ), /* 818 tim */ + S_ST( 'n', 3, 820, 0 ), /* 819 timi */ + S_ST( 'g', 3, 821, 0 ), /* 820 timin */ + S_ST( 's', 3, 822, 0 ), /* 821 timing */ + S_ST( 't', 3, 823, 0 ), /* 822 timings */ + S_ST( 'a', 3, 824, 0 ), /* 823 timingst */ + S_ST( 't', 3, 421, 0 ), /* 824 timingsta */ + S_ST( 'n', 3, 826, 816 ), /* 825 ti */ + S_ST( 'k', 3, 827, 0 ), /* 826 tin */ + S_ST( 'e', 3, 422, 0 ), /* 827 tink */ + S_ST( 'o', 3, 423, 814 ), /* 828 t */ + S_ST( 'r', 3, 831, 828 ), /* 829 t */ + S_ST( 'a', 3, 424, 0 ), /* 830 tr */ + S_ST( 'u', 3, 832, 830 ), /* 831 tr */ + S_ST( 's', 3, 833, 425 ), /* 832 tru */ + S_ST( 't', 3, 834, 0 ), /* 833 trus */ + S_ST( 'e', 3, 835, 0 ), /* 834 trust */ + S_ST( 'd', 3, 836, 0 ), /* 835 truste */ + S_ST( 'k', 3, 837, 0 ), /* 836 trusted */ + S_ST( 'e', 3, 426, 0 ), /* 837 trustedk */ + S_ST( 't', 3, 427, 829 ), /* 838 t */ + S_ST( 'y', 3, 840, 838 ), /* 839 t */ + S_ST( 'p', 3, 428, 0 ), /* 840 ty */ + S_ST( 'u', 3, 842, 813 ), /* 841 */ + S_ST( 'n', 3, 848, 0 ), /* 842 u */ + S_ST( 'c', 3, 844, 0 ), /* 843 un */ + S_ST( 'o', 3, 845, 0 ), /* 844 unc */ + S_ST( 'n', 3, 846, 0 ), /* 845 unco */ + S_ST( 'f', 3, 847, 0 ), /* 846 uncon */ + S_ST( 'i', 3, 433, 0 ), /* 847 unconf */ + S_ST( 'p', 3, 849, 843 ), /* 848 un */ + S_ST( 'e', 3, 850, 0 ), /* 849 unp */ + S_ST( 'e', 3, 434, 0 ), /* 850 unpe */ + S_ST( '_', 3, 871, 0 ), /* 851 unpeer */ + S_ST( 'c', 3, 853, 0 ), /* 852 unpeer_ */ + S_ST( 'r', 3, 854, 0 ), /* 853 unpeer_c */ + S_ST( 'y', 3, 855, 0 ), /* 854 unpeer_cr */ + S_ST( 'p', 3, 856, 0 ), /* 855 unpeer_cry */ + S_ST( 't', 3, 857, 0 ), /* 856 unpeer_cryp */ + S_ST( 'o', 3, 858, 0 ), /* 857 unpeer_crypt */ + S_ST( '_', 3, 863, 0 ), /* 858 unpeer_crypto */ + S_ST( 'e', 3, 860, 0 ), /* 859 unpeer_crypto_ */ + S_ST( 'a', 3, 861, 0 ), /* 860 unpeer_crypto_e */ + S_ST( 'r', 3, 862, 0 ), /* 861 unpeer_crypto_ea */ + S_ST( 'l', 3, 430, 0 ), /* 862 unpeer_crypto_ear */ + S_ST( 'n', 3, 864, 859 ), /* 863 unpeer_crypto_ */ + S_ST( 'a', 3, 865, 0 ), /* 864 unpeer_crypto_n */ + S_ST( 'k', 3, 866, 0 ), /* 865 unpeer_crypto_na */ + S_ST( '_', 3, 867, 0 ), /* 866 unpeer_crypto_nak */ + S_ST( 'e', 3, 868, 0 ), /* 867 unpeer_crypto_nak_ */ + S_ST( 'a', 3, 869, 0 ), /* 868 unpeer_crypto_nak_e */ + S_ST( 'r', 3, 870, 0 ), /* 869 unpeer_crypto_nak_ea */ + S_ST( 'l', 3, 431, 0 ), /* 870 unpeer_crypto_nak_ear */ + S_ST( 'd', 3, 872, 852 ), /* 871 unpeer_ */ + S_ST( 'i', 3, 873, 0 ), /* 872 unpeer_d */ + S_ST( 'g', 3, 874, 0 ), /* 873 unpeer_di */ + S_ST( 'e', 3, 875, 0 ), /* 874 unpeer_dig */ + S_ST( 's', 3, 876, 0 ), /* 875 unpeer_dige */ + S_ST( 't', 3, 877, 0 ), /* 876 unpeer_diges */ + S_ST( '_', 3, 878, 0 ), /* 877 unpeer_digest */ + S_ST( 'e', 3, 879, 0 ), /* 878 unpeer_digest_ */ + S_ST( 'a', 3, 880, 0 ), /* 879 unpeer_digest_e */ + S_ST( 'r', 3, 881, 0 ), /* 880 unpeer_digest_ea */ + S_ST( 'l', 3, 432, 0 ), /* 881 unpeer_digest_ear */ + S_ST( 'v', 3, 883, 841 ), /* 882 */ + S_ST( 'e', 3, 884, 0 ), /* 883 v */ + S_ST( 'r', 3, 885, 0 ), /* 884 ve */ + S_ST( 's', 3, 886, 0 ), /* 885 ver */ + S_ST( 'i', 3, 887, 0 ), /* 886 vers */ + S_ST( 'o', 3, 435, 0 ), /* 887 versi */ + S_ST( 'w', 3, 895, 882 ), /* 888 */ + S_ST( 'a', 3, 890, 0 ), /* 889 w */ + S_ST( 'n', 3, 891, 0 ), /* 890 wa */ + S_ST( 'd', 3, 892, 0 ), /* 891 wan */ + S_ST( 'e', 3, 449, 0 ), /* 892 wand */ + S_ST( 'e', 3, 894, 889 ), /* 893 w */ + S_ST( 'e', 3, 437, 0 ), /* 894 we */ + S_ST( 'i', 3, 896, 893 ), /* 895 w */ + S_ST( 'l', 3, 897, 0 ), /* 896 wi */ + S_ST( 'd', 3, 898, 0 ), /* 897 wil */ + S_ST( 'c', 3, 899, 0 ), /* 898 wild */ + S_ST( 'a', 3, 900, 0 ), /* 899 wildc */ + S_ST( 'r', 3, 438, 0 ), /* 900 wildca */ + S_ST( 'x', 3, 902, 888 ), /* 901 */ + S_ST( 'l', 3, 903, 0 ), /* 902 x */ + S_ST( 'e', 3, 904, 0 ), /* 903 xl */ + S_ST( 'a', 3, 905, 0 ), /* 904 xle */ + S_ST( 'v', 3, 439, 0 ), /* 905 xlea */ + S_ST( 'y', 3, 907, 901 ), /* 906 [initial state] */ + S_ST( 'e', 3, 908, 0 ), /* 907 y */ + S_ST( 'a', 3, 440, 0 ) /* 908 ye */ }; diff --git a/contrib/ntp/ntpd/ntp_parser.c b/contrib/ntp/ntpd/ntp_parser.c index 3159669..c432694 100644 --- a/contrib/ntp/ntpd/ntp_parser.c +++ b/contrib/ntp/ntpd/ntp_parser.c @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7.12-4996" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,8 +62,7 @@ /* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 11 "../../ntpd/ntp_parser.y" +#line 11 "../../ntpd/ntp_parser.y" /* yacc.c:339 */ #ifdef HAVE_CONFIG_H # include <config.h> @@ -97,14 +96,13 @@ # define ONLY_SIM(a) NULL #endif -/* Line 371 of yacc.c */ -#line 102 "ntp_parser.c" +#line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339 */ -# ifndef YY_NULL +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -118,9 +116,9 @@ /* In a future release of Bison, this section will be replaced by #include "y.tab.h". */ -#ifndef YY_YY_NTP_PARSER_H_INCLUDED -# define YY_YY_NTP_PARSER_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_Y_TAB_H_INCLUDED +# define YY_YY_Y_TAB_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -128,207 +126,207 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - T_Abbrev = 258, - T_Age = 259, - T_All = 260, - T_Allan = 261, - T_Allpeers = 262, - T_Auth = 263, - T_Autokey = 264, - T_Automax = 265, - T_Average = 266, - T_Bclient = 267, - T_Beacon = 268, - T_Broadcast = 269, - T_Broadcastclient = 270, - T_Broadcastdelay = 271, - T_Burst = 272, - T_Calibrate = 273, - T_Ceiling = 274, - T_Clockstats = 275, - T_Cohort = 276, - T_ControlKey = 277, - T_Crypto = 278, - T_Cryptostats = 279, - T_Ctl = 280, - T_Day = 281, - T_Default = 282, - T_Digest = 283, - T_Disable = 284, - T_Discard = 285, - T_Dispersion = 286, - T_Double = 287, - T_Driftfile = 288, - T_Drop = 289, - T_Dscp = 290, - T_Ellipsis = 291, - T_Enable = 292, - T_End = 293, - T_False = 294, - T_File = 295, - T_Filegen = 296, - T_Filenum = 297, - T_Flag1 = 298, - T_Flag2 = 299, - T_Flag3 = 300, - T_Flag4 = 301, - T_Flake = 302, - T_Floor = 303, - T_Freq = 304, - T_Fudge = 305, - T_Host = 306, - T_Huffpuff = 307, - T_Iburst = 308, - T_Ident = 309, - T_Ignore = 310, - T_Incalloc = 311, - T_Incmem = 312, - T_Initalloc = 313, - T_Initmem = 314, - T_Includefile = 315, - T_Integer = 316, - T_Interface = 317, - T_Intrange = 318, - T_Io = 319, - T_Ipv4 = 320, - T_Ipv4_flag = 321, - T_Ipv6 = 322, - T_Ipv6_flag = 323, - T_Kernel = 324, - T_Key = 325, - T_Keys = 326, - T_Keysdir = 327, - T_Kod = 328, - T_Mssntp = 329, - T_Leapfile = 330, - T_Leapsmearinterval = 331, - T_Limited = 332, - T_Link = 333, - T_Listen = 334, - T_Logconfig = 335, - T_Logfile = 336, - T_Loopstats = 337, - T_Lowpriotrap = 338, - T_Manycastclient = 339, - T_Manycastserver = 340, - T_Mask = 341, - T_Maxage = 342, - T_Maxclock = 343, - T_Maxdepth = 344, - T_Maxdist = 345, - T_Maxmem = 346, - T_Maxpoll = 347, - T_Mdnstries = 348, - T_Mem = 349, - T_Memlock = 350, - T_Minclock = 351, - T_Mindepth = 352, - T_Mindist = 353, - T_Minimum = 354, - T_Minpoll = 355, - T_Minsane = 356, - T_Mode = 357, - T_Mode7 = 358, - T_Monitor = 359, - T_Month = 360, - T_Mru = 361, - T_Multicastclient = 362, - T_Nic = 363, - T_Nolink = 364, - T_Nomodify = 365, - T_Nomrulist = 366, - T_None = 367, - T_Nonvolatile = 368, - T_Nopeer = 369, - T_Noquery = 370, - T_Noselect = 371, - T_Noserve = 372, - T_Notrap = 373, - T_Notrust = 374, - T_Ntp = 375, - T_Ntpport = 376, - T_NtpSignDsocket = 377, - T_Orphan = 378, - T_Orphanwait = 379, - T_Panic = 380, - T_Peer = 381, - T_Peerstats = 382, - T_Phone = 383, - T_Pid = 384, - T_Pidfile = 385, - T_Pool = 386, - T_Port = 387, - T_Preempt = 388, - T_Prefer = 389, - T_Protostats = 390, - T_Pw = 391, - T_Randfile = 392, - T_Rawstats = 393, - T_Refid = 394, - T_Requestkey = 395, - T_Reset = 396, - T_Restrict = 397, - T_Revoke = 398, - T_Rlimit = 399, - T_Saveconfigdir = 400, - T_Server = 401, - T_Setvar = 402, - T_Source = 403, - T_Stacksize = 404, - T_Statistics = 405, - T_Stats = 406, - T_Statsdir = 407, - T_Step = 408, - T_Stepback = 409, - T_Stepfwd = 410, - T_Stepout = 411, - T_Stratum = 412, - T_String = 413, - T_Sys = 414, - T_Sysstats = 415, - T_Tick = 416, - T_Time1 = 417, - T_Time2 = 418, - T_Timer = 419, - T_Timingstats = 420, - T_Tinker = 421, - T_Tos = 422, - T_Trap = 423, - T_True = 424, - T_Trustedkey = 425, - T_Ttl = 426, - T_Type = 427, - T_U_int = 428, - T_UEcrypto = 429, - T_UEcryptonak = 430, - T_UEdigest = 431, - T_Unconfig = 432, - T_Unpeer = 433, - T_Version = 434, - T_WanderThreshold = 435, - T_Week = 436, - T_Wildcard = 437, - T_Xleave = 438, - T_Year = 439, - T_Flag = 440, - T_EOC = 441, - T_Simulate = 442, - T_Beep_Delay = 443, - T_Sim_Duration = 444, - T_Server_Offset = 445, - T_Duration = 446, - T_Freq_Offset = 447, - T_Wander = 448, - T_Jitter = 449, - T_Prop_Delay = 450, - T_Proc_Delay = 451 - }; + enum yytokentype + { + T_Abbrev = 258, + T_Age = 259, + T_All = 260, + T_Allan = 261, + T_Allpeers = 262, + T_Auth = 263, + T_Autokey = 264, + T_Automax = 265, + T_Average = 266, + T_Bclient = 267, + T_Beacon = 268, + T_Broadcast = 269, + T_Broadcastclient = 270, + T_Broadcastdelay = 271, + T_Burst = 272, + T_Calibrate = 273, + T_Ceiling = 274, + T_Clockstats = 275, + T_Cohort = 276, + T_ControlKey = 277, + T_Crypto = 278, + T_Cryptostats = 279, + T_Ctl = 280, + T_Day = 281, + T_Default = 282, + T_Digest = 283, + T_Disable = 284, + T_Discard = 285, + T_Dispersion = 286, + T_Double = 287, + T_Driftfile = 288, + T_Drop = 289, + T_Dscp = 290, + T_Ellipsis = 291, + T_Enable = 292, + T_End = 293, + T_False = 294, + T_File = 295, + T_Filegen = 296, + T_Filenum = 297, + T_Flag1 = 298, + T_Flag2 = 299, + T_Flag3 = 300, + T_Flag4 = 301, + T_Flake = 302, + T_Floor = 303, + T_Freq = 304, + T_Fudge = 305, + T_Host = 306, + T_Huffpuff = 307, + T_Iburst = 308, + T_Ident = 309, + T_Ignore = 310, + T_Incalloc = 311, + T_Incmem = 312, + T_Initalloc = 313, + T_Initmem = 314, + T_Includefile = 315, + T_Integer = 316, + T_Interface = 317, + T_Intrange = 318, + T_Io = 319, + T_Ipv4 = 320, + T_Ipv4_flag = 321, + T_Ipv6 = 322, + T_Ipv6_flag = 323, + T_Kernel = 324, + T_Key = 325, + T_Keys = 326, + T_Keysdir = 327, + T_Kod = 328, + T_Mssntp = 329, + T_Leapfile = 330, + T_Leapsmearinterval = 331, + T_Limited = 332, + T_Link = 333, + T_Listen = 334, + T_Logconfig = 335, + T_Logfile = 336, + T_Loopstats = 337, + T_Lowpriotrap = 338, + T_Manycastclient = 339, + T_Manycastserver = 340, + T_Mask = 341, + T_Maxage = 342, + T_Maxclock = 343, + T_Maxdepth = 344, + T_Maxdist = 345, + T_Maxmem = 346, + T_Maxpoll = 347, + T_Mdnstries = 348, + T_Mem = 349, + T_Memlock = 350, + T_Minclock = 351, + T_Mindepth = 352, + T_Mindist = 353, + T_Minimum = 354, + T_Minpoll = 355, + T_Minsane = 356, + T_Mode = 357, + T_Mode7 = 358, + T_Monitor = 359, + T_Month = 360, + T_Mru = 361, + T_Multicastclient = 362, + T_Nic = 363, + T_Nolink = 364, + T_Nomodify = 365, + T_Nomrulist = 366, + T_None = 367, + T_Nonvolatile = 368, + T_Nopeer = 369, + T_Noquery = 370, + T_Noselect = 371, + T_Noserve = 372, + T_Notrap = 373, + T_Notrust = 374, + T_Ntp = 375, + T_Ntpport = 376, + T_NtpSignDsocket = 377, + T_Orphan = 378, + T_Orphanwait = 379, + T_PCEdigest = 380, + T_Panic = 381, + T_Peer = 382, + T_Peerstats = 383, + T_Phone = 384, + T_Pid = 385, + T_Pidfile = 386, + T_Pool = 387, + T_Port = 388, + T_Preempt = 389, + T_Prefer = 390, + T_Protostats = 391, + T_Pw = 392, + T_Randfile = 393, + T_Rawstats = 394, + T_Refid = 395, + T_Requestkey = 396, + T_Reset = 397, + T_Restrict = 398, + T_Revoke = 399, + T_Rlimit = 400, + T_Saveconfigdir = 401, + T_Server = 402, + T_Setvar = 403, + T_Source = 404, + T_Stacksize = 405, + T_Statistics = 406, + T_Stats = 407, + T_Statsdir = 408, + T_Step = 409, + T_Stepback = 410, + T_Stepfwd = 411, + T_Stepout = 412, + T_Stratum = 413, + T_String = 414, + T_Sys = 415, + T_Sysstats = 416, + T_Tick = 417, + T_Time1 = 418, + T_Time2 = 419, + T_Timer = 420, + T_Timingstats = 421, + T_Tinker = 422, + T_Tos = 423, + T_Trap = 424, + T_True = 425, + T_Trustedkey = 426, + T_Ttl = 427, + T_Type = 428, + T_U_int = 429, + T_UEcrypto = 430, + T_UEcryptonak = 431, + T_UEdigest = 432, + T_Unconfig = 433, + T_Unpeer = 434, + T_Version = 435, + T_WanderThreshold = 436, + T_Week = 437, + T_Wildcard = 438, + T_Xleave = 439, + T_Year = 440, + T_Flag = 441, + T_EOC = 442, + T_Simulate = 443, + T_Beep_Delay = 444, + T_Sim_Duration = 445, + T_Server_Offset = 446, + T_Duration = 447, + T_Freq_Offset = 448, + T_Wander = 449, + T_Jitter = 450, + T_Prop_Delay = 451, + T_Proc_Delay = 452 + }; #endif /* Tokens. */ #define T_Abbrev 258 @@ -453,86 +451,86 @@ extern int yydebug; #define T_NtpSignDsocket 377 #define T_Orphan 378 #define T_Orphanwait 379 -#define T_Panic 380 -#define T_Peer 381 -#define T_Peerstats 382 -#define T_Phone 383 -#define T_Pid 384 -#define T_Pidfile 385 -#define T_Pool 386 -#define T_Port 387 -#define T_Preempt 388 -#define T_Prefer 389 -#define T_Protostats 390 -#define T_Pw 391 -#define T_Randfile 392 -#define T_Rawstats 393 -#define T_Refid 394 -#define T_Requestkey 395 -#define T_Reset 396 -#define T_Restrict 397 -#define T_Revoke 398 -#define T_Rlimit 399 -#define T_Saveconfigdir 400 -#define T_Server 401 -#define T_Setvar 402 -#define T_Source 403 -#define T_Stacksize 404 -#define T_Statistics 405 -#define T_Stats 406 -#define T_Statsdir 407 -#define T_Step 408 -#define T_Stepback 409 -#define T_Stepfwd 410 -#define T_Stepout 411 -#define T_Stratum 412 -#define T_String 413 -#define T_Sys 414 -#define T_Sysstats 415 -#define T_Tick 416 -#define T_Time1 417 -#define T_Time2 418 -#define T_Timer 419 -#define T_Timingstats 420 -#define T_Tinker 421 -#define T_Tos 422 -#define T_Trap 423 -#define T_True 424 -#define T_Trustedkey 425 -#define T_Ttl 426 -#define T_Type 427 -#define T_U_int 428 -#define T_UEcrypto 429 -#define T_UEcryptonak 430 -#define T_UEdigest 431 -#define T_Unconfig 432 -#define T_Unpeer 433 -#define T_Version 434 -#define T_WanderThreshold 435 -#define T_Week 436 -#define T_Wildcard 437 -#define T_Xleave 438 -#define T_Year 439 -#define T_Flag 440 -#define T_EOC 441 -#define T_Simulate 442 -#define T_Beep_Delay 443 -#define T_Sim_Duration 444 -#define T_Server_Offset 445 -#define T_Duration 446 -#define T_Freq_Offset 447 -#define T_Wander 448 -#define T_Jitter 449 -#define T_Prop_Delay 450 -#define T_Proc_Delay 451 - - - +#define T_PCEdigest 380 +#define T_Panic 381 +#define T_Peer 382 +#define T_Peerstats 383 +#define T_Phone 384 +#define T_Pid 385 +#define T_Pidfile 386 +#define T_Pool 387 +#define T_Port 388 +#define T_Preempt 389 +#define T_Prefer 390 +#define T_Protostats 391 +#define T_Pw 392 +#define T_Randfile 393 +#define T_Rawstats 394 +#define T_Refid 395 +#define T_Requestkey 396 +#define T_Reset 397 +#define T_Restrict 398 +#define T_Revoke 399 +#define T_Rlimit 400 +#define T_Saveconfigdir 401 +#define T_Server 402 +#define T_Setvar 403 +#define T_Source 404 +#define T_Stacksize 405 +#define T_Statistics 406 +#define T_Stats 407 +#define T_Statsdir 408 +#define T_Step 409 +#define T_Stepback 410 +#define T_Stepfwd 411 +#define T_Stepout 412 +#define T_Stratum 413 +#define T_String 414 +#define T_Sys 415 +#define T_Sysstats 416 +#define T_Tick 417 +#define T_Time1 418 +#define T_Time2 419 +#define T_Timer 420 +#define T_Timingstats 421 +#define T_Tinker 422 +#define T_Tos 423 +#define T_Trap 424 +#define T_True 425 +#define T_Trustedkey 426 +#define T_Ttl 427 +#define T_Type 428 +#define T_U_int 429 +#define T_UEcrypto 430 +#define T_UEcryptonak 431 +#define T_UEdigest 432 +#define T_Unconfig 433 +#define T_Unpeer 434 +#define T_Version 435 +#define T_WanderThreshold 436 +#define T_Week 437 +#define T_Wildcard 438 +#define T_Xleave 439 +#define T_Year 440 +#define T_Flag 441 +#define T_EOC 442 +#define T_Simulate 443 +#define T_Beep_Delay 444 +#define T_Sim_Duration 445 +#define T_Server_Offset 446 +#define T_Duration 447 +#define T_Freq_Offset 448 +#define T_Wander 449 +#define T_Jitter 450 +#define T_Prop_Delay 451 +#define T_Proc_Delay 452 + +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE + +union YYSTYPE { -/* Line 387 of yacc.c */ -#line 51 "../../ntpd/ntp_parser.y" +#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:355 */ char * String; double Double; @@ -551,37 +549,24 @@ typedef union YYSTYPE script_info * Sim_script; script_info_fifo * Sim_script_fifo; +#line 553 "../../ntpd/ntp_parser.c" /* yacc.c:355 */ +}; -/* Line 387 of yacc.c */ -#line 557 "ntp_parser.c" -} YYSTYPE; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_NTP_PARSER_H_INCLUDED */ +#endif /* !YY_YY_Y_TAB_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 390 of yacc.c */ -#line 585 "ntp_parser.c" +#line 570 "../../ntpd/ntp_parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -595,11 +580,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -619,8 +601,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -642,11 +623,30 @@ typedef short int yytype_int16; # endif #endif -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if (! defined __GNUC__ || __GNUC__ < 2 \ - || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) -# define __attribute__(Spec) /* empty */ +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif @@ -657,25 +657,26 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(N) (N) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif + #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -693,8 +694,7 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -706,8 +706,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -723,7 +723,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -731,15 +731,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -749,7 +747,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -774,16 +772,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -802,48 +800,50 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 213 +#define YYFINAL 214 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 624 +#define YYLAST 655 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 202 +#define YYNTOKENS 203 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 105 /* YYNRULES -- Number of rules. */ -#define YYNRULES 316 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 422 +#define YYNRULES 317 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 423 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 451 +#define YYMAXUTOK 452 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 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, - 198, 199, 2, 2, 2, 2, 2, 2, 2, 2, + 199, 200, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 197, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 198, 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, 200, 2, 201, 2, 2, 2, 2, + 2, 2, 2, 201, 2, 202, 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, @@ -876,165 +876,45 @@ static const yytype_uint8 yytranslate[] = 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196 + 195, 196, 197 }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 5, 9, 12, 15, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, - 42, 46, 48, 50, 52, 54, 56, 58, 61, 63, - 65, 67, 68, 71, 73, 75, 77, 79, 81, 83, - 85, 87, 89, 91, 93, 95, 98, 101, 103, 105, - 107, 109, 111, 113, 116, 118, 121, 123, 125, 127, - 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, - 160, 163, 164, 167, 170, 173, 175, 177, 179, 181, - 183, 186, 189, 191, 194, 197, 200, 202, 204, 206, - 208, 210, 212, 214, 216, 218, 220, 223, 226, 230, - 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, - 252, 255, 258, 261, 263, 265, 267, 269, 271, 273, - 275, 277, 279, 281, 283, 285, 287, 290, 293, 297, - 303, 307, 312, 317, 321, 322, 325, 327, 329, 331, - 333, 335, 337, 339, 341, 343, 345, 347, 349, 351, - 353, 355, 358, 360, 363, 365, 367, 369, 372, 374, - 377, 379, 381, 383, 385, 387, 389, 391, 393, 397, - 400, 402, 405, 408, 411, 414, 417, 419, 421, 423, - 425, 427, 429, 432, 435, 437, 440, 442, 444, 446, - 449, 452, 455, 457, 459, 461, 463, 465, 467, 469, - 471, 473, 475, 477, 479, 481, 483, 486, 489, 491, - 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, - 514, 516, 518, 521, 524, 527, 530, 534, 536, 539, - 542, 545, 548, 552, 555, 557, 559, 561, 563, 565, - 567, 569, 571, 573, 575, 577, 580, 581, 586, 588, - 589, 590, 593, 596, 599, 602, 604, 606, 610, 614, - 616, 618, 620, 622, 624, 626, 628, 630, 632, 635, - 638, 640, 642, 644, 646, 648, 650, 652, 654, 657, - 659, 662, 664, 666, 668, 674, 677, 679, 682, 684, - 686, 688, 690, 692, 694, 700, 702, 706, 709, 713, - 715, 717, 720, 722, 728, 733, 737, 740, 742, 749, - 753, 756, 760, 762, 764, 766, 768 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 203, 0, -1, 204, -1, 204, 205, 186, -1, 205, - 186, -1, 1, 186, -1, -1, 206, -1, 219, -1, - 221, -1, 222, -1, 231, -1, 239, -1, 226, -1, - 248, -1, 253, -1, 257, -1, 262, -1, 266, -1, - 293, -1, 207, 208, 211, -1, 146, -1, 131, -1, - 126, -1, 14, -1, 84, -1, 209, -1, 210, 158, - -1, 158, -1, 66, -1, 68, -1, -1, 211, 212, - -1, 213, -1, 215, -1, 217, -1, 214, -1, 9, - -1, 17, -1, 53, -1, 116, -1, 133, -1, 134, - -1, 169, -1, 183, -1, 216, 61, -1, 216, 173, - -1, 70, -1, 100, -1, 92, -1, 171, -1, 102, - -1, 179, -1, 218, 158, -1, 54, -1, 220, 208, - -1, 177, -1, 178, -1, 15, -1, 85, 290, -1, - 107, 290, -1, 93, 61, -1, 10, 61, -1, 22, - 61, -1, 23, 223, -1, 71, 158, -1, 72, 158, - -1, 140, 61, -1, 143, 61, -1, 170, 286, -1, - 122, 158, -1, -1, 223, 224, -1, 225, 158, -1, - 143, 61, -1, 51, -1, 54, -1, 136, -1, 137, - -1, 28, -1, 167, 227, -1, 227, 228, -1, 228, - -1, 229, 61, -1, 230, 292, -1, 21, 291, -1, - 19, -1, 48, -1, 123, -1, 124, -1, 101, -1, - 13, -1, 98, -1, 90, -1, 96, -1, 88, -1, - 150, 232, -1, 152, 158, -1, 41, 233, 234, -1, - 232, 233, -1, 233, -1, 20, -1, 24, -1, 82, - -1, 127, -1, 138, -1, 160, -1, 165, -1, 135, - -1, -1, 234, 235, -1, 40, 158, -1, 172, 238, - -1, 236, -1, 237, -1, 78, -1, 109, -1, 37, - -1, 29, -1, 112, -1, 129, -1, 26, -1, 181, - -1, 105, -1, 184, -1, 4, -1, 30, 242, -1, - 106, 245, -1, 142, 208, 240, -1, 142, 209, 86, - 209, 240, -1, 142, 27, 240, -1, 142, 66, 27, - 240, -1, 142, 68, 27, 240, -1, 142, 148, 240, - -1, -1, 240, 241, -1, 47, -1, 55, -1, 73, - -1, 74, -1, 77, -1, 83, -1, 110, -1, 111, - -1, 114, -1, 115, -1, 117, -1, 118, -1, 119, - -1, 121, -1, 179, -1, 242, 243, -1, 243, -1, - 244, 61, -1, 11, -1, 99, -1, 104, -1, 245, - 246, -1, 246, -1, 247, 61, -1, 56, -1, 57, - -1, 58, -1, 59, -1, 87, -1, 89, -1, 91, - -1, 97, -1, 50, 208, 249, -1, 249, 250, -1, - 250, -1, 251, 292, -1, 252, 291, -1, 157, 61, - -1, 3, 158, -1, 139, 158, -1, 162, -1, 163, - -1, 43, -1, 44, -1, 45, -1, 46, -1, 144, - 254, -1, 254, 255, -1, 255, -1, 256, 61, -1, - 95, -1, 149, -1, 42, -1, 37, 258, -1, 29, - 258, -1, 258, 259, -1, 259, -1, 260, -1, 261, - -1, 8, -1, 12, -1, 18, -1, 69, -1, 104, - -1, 120, -1, 103, -1, 151, -1, 174, -1, 175, - -1, 176, -1, 166, 263, -1, 263, 264, -1, 264, - -1, 265, 292, -1, 6, -1, 31, -1, 49, -1, - 52, -1, 125, -1, 153, -1, 154, -1, 155, -1, - 156, -1, 161, -1, 278, -1, 282, -1, 267, 292, - -1, 268, 61, -1, 269, 158, -1, 270, 158, -1, - 60, 158, 205, -1, 38, -1, 33, 271, -1, 80, - 276, -1, 128, 289, -1, 147, 272, -1, 168, 209, - 274, -1, 171, 285, -1, 16, -1, 113, -1, 161, - -1, 35, -1, 76, -1, 54, -1, 75, -1, 81, - -1, 130, -1, 145, -1, 158, -1, 158, 32, -1, - -1, 158, 197, 158, 273, -1, 27, -1, -1, -1, - 274, 275, -1, 132, 61, -1, 62, 209, -1, 276, - 277, -1, 277, -1, 158, -1, 279, 281, 280, -1, - 279, 281, 158, -1, 62, -1, 108, -1, 5, -1, - 65, -1, 67, -1, 182, -1, 79, -1, 55, -1, - 34, -1, 141, 283, -1, 283, 284, -1, 284, -1, - 7, -1, 8, -1, 25, -1, 64, -1, 94, -1, - 159, -1, 164, -1, 285, 61, -1, 61, -1, 286, - 287, -1, 287, -1, 61, -1, 288, -1, 198, 61, - 36, 61, 199, -1, 289, 158, -1, 158, -1, 290, - 208, -1, 208, -1, 61, -1, 169, -1, 39, -1, - 61, -1, 32, -1, 294, 200, 295, 298, 201, -1, - 187, -1, 295, 296, 186, -1, 296, 186, -1, 297, - 197, 292, -1, 188, -1, 189, -1, 298, 299, -1, - 299, -1, 301, 200, 300, 302, 201, -1, 190, 197, - 292, 186, -1, 146, 197, 208, -1, 302, 303, -1, - 303, -1, 191, 197, 292, 200, 304, 201, -1, 304, - 305, 186, -1, 305, 186, -1, 306, 197, 292, -1, - 192, -1, 193, -1, 194, -1, 195, -1, 196, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 369, 369, 373, 374, 375, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 411, 421, 422, 423, 424, 425, 429, 430, 435, 440, - 442, 448, 449, 457, 458, 459, 463, 468, 469, 470, - 471, 472, 473, 474, 475, 479, 481, 486, 487, 488, - 489, 490, 491, 495, 500, 509, 519, 520, 530, 532, - 534, 536, 547, 554, 556, 561, 563, 565, 567, 569, - 578, 584, 585, 593, 595, 607, 608, 609, 610, 611, - 620, 625, 630, 638, 640, 642, 647, 648, 649, 650, - 651, 652, 656, 657, 658, 659, 668, 670, 679, 689, - 694, 702, 703, 704, 705, 706, 707, 708, 709, 714, - 715, 723, 733, 742, 757, 762, 763, 767, 768, 772, - 773, 774, 775, 776, 777, 778, 787, 791, 795, 803, - 811, 819, 834, 849, 862, 863, 871, 872, 873, 874, - 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, - 885, 889, 894, 902, 907, 908, 909, 913, 918, 926, - 931, 932, 933, 934, 935, 936, 937, 938, 946, 956, - 961, 969, 971, 973, 982, 984, 989, 990, 994, 995, - 996, 997, 1005, 1010, 1015, 1023, 1028, 1029, 1030, 1039, - 1041, 1046, 1051, 1059, 1061, 1078, 1079, 1080, 1081, 1082, - 1083, 1087, 1088, 1089, 1090, 1091, 1099, 1104, 1109, 1117, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1140, 1141, 1142, 1149, 1156, 1163, 1179, 1198, 1200, 1202, - 1204, 1206, 1208, 1215, 1220, 1221, 1222, 1226, 1230, 1239, - 1240, 1244, 1245, 1246, 1250, 1261, 1275, 1287, 1292, 1294, - 1299, 1300, 1308, 1310, 1318, 1323, 1331, 1356, 1363, 1373, - 1374, 1378, 1379, 1380, 1381, 1385, 1386, 1387, 1391, 1396, - 1401, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1425, 1430, - 1438, 1443, 1451, 1453, 1457, 1462, 1467, 1475, 1480, 1488, - 1497, 1498, 1502, 1503, 1512, 1530, 1534, 1539, 1547, 1552, - 1553, 1557, 1562, 1570, 1575, 1580, 1585, 1590, 1598, 1603, - 1608, 1616, 1621, 1622, 1623, 1624, 1625 + 0, 370, 370, 374, 375, 376, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 412, 422, 423, 424, 425, 426, 430, 431, 436, 441, + 443, 449, 450, 458, 459, 460, 464, 469, 470, 471, + 472, 473, 474, 475, 476, 480, 482, 487, 488, 489, + 490, 491, 492, 496, 501, 510, 520, 521, 531, 533, + 535, 537, 548, 555, 557, 562, 564, 566, 568, 570, + 579, 585, 586, 594, 596, 608, 609, 610, 611, 612, + 621, 626, 631, 639, 641, 643, 648, 649, 650, 651, + 652, 653, 657, 658, 659, 660, 669, 671, 680, 690, + 695, 703, 704, 705, 706, 707, 708, 709, 710, 715, + 716, 724, 734, 743, 758, 763, 764, 768, 769, 773, + 774, 775, 776, 777, 778, 779, 788, 792, 796, 804, + 812, 820, 835, 850, 863, 864, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 890, 895, 903, 908, 909, 910, 914, 919, 927, + 932, 933, 934, 935, 936, 937, 938, 939, 947, 957, + 962, 970, 972, 974, 983, 985, 990, 991, 995, 996, + 997, 998, 1006, 1011, 1016, 1024, 1029, 1030, 1031, 1040, + 1042, 1047, 1052, 1060, 1062, 1079, 1080, 1081, 1082, 1083, + 1084, 1088, 1089, 1090, 1091, 1092, 1093, 1101, 1106, 1111, + 1119, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1142, 1143, 1144, 1151, 1158, 1165, 1181, 1200, 1202, + 1204, 1206, 1208, 1210, 1217, 1222, 1223, 1224, 1228, 1232, + 1241, 1242, 1246, 1247, 1248, 1252, 1263, 1277, 1289, 1294, + 1296, 1301, 1302, 1310, 1312, 1320, 1325, 1333, 1358, 1365, + 1375, 1376, 1380, 1381, 1382, 1383, 1387, 1388, 1389, 1393, + 1398, 1403, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1427, + 1432, 1440, 1445, 1453, 1455, 1459, 1464, 1469, 1477, 1482, + 1490, 1499, 1500, 1504, 1505, 1514, 1532, 1536, 1541, 1549, + 1554, 1555, 1559, 1564, 1572, 1577, 1582, 1587, 1592, 1600, + 1605, 1610, 1618, 1623, 1624, 1625, 1626, 1627 }; #endif @@ -1066,9 +946,9 @@ static const char *const yytname[] = "T_Mru", "T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify", "T_Nomrulist", "T_None", "T_Nonvolatile", "T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport", - "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_Panic", "T_Peer", - "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool", "T_Port", - "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile", + "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_PCEdigest", "T_Panic", + "T_Peer", "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool", + "T_Port", "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile", "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", @@ -1112,13 +992,13 @@ static const char *const yytname[] = "sim_init_statement_list", "sim_init_statement", "sim_init_keyword", "sim_server_list", "sim_server", "sim_server_offset", "sim_server_name", "sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt", - "sim_act_keyword", YY_NULL + "sim_act_keyword", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -1140,434 +1020,428 @@ static const yytype_uint16 yytoknum[] = 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 61, 40, 41, - 123, 125 + 445, 446, 447, 448, 449, 450, 451, 452, 61, 40, + 41, 123, 125 }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 202, 203, 204, 204, 204, 205, 205, 205, 205, - 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, - 206, 207, 207, 207, 207, 207, 208, 208, 209, 210, - 210, 211, 211, 212, 212, 212, 213, 214, 214, 214, - 214, 214, 214, 214, 214, 215, 215, 216, 216, 216, - 216, 216, 216, 217, 218, 219, 220, 220, 221, 221, - 221, 221, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 223, 223, 224, 224, 225, 225, 225, 225, 225, - 226, 227, 227, 228, 228, 228, 229, 229, 229, 229, - 229, 229, 230, 230, 230, 230, 231, 231, 231, 232, - 232, 233, 233, 233, 233, 233, 233, 233, 233, 234, - 234, 235, 235, 235, 235, 236, 236, 237, 237, 238, - 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, - 239, 239, 239, 239, 240, 240, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 242, 242, 243, 244, 244, 244, 245, 245, 246, - 247, 247, 247, 247, 247, 247, 247, 247, 248, 249, - 249, 250, 250, 250, 250, 250, 251, 251, 252, 252, - 252, 252, 253, 254, 254, 255, 256, 256, 256, 257, - 257, 258, 258, 259, 259, 260, 260, 260, 260, 260, - 260, 261, 261, 261, 261, 261, 262, 263, 263, 264, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 267, 267, 267, 268, 268, 269, - 269, 270, 270, 270, 271, 271, 271, 272, 273, 273, - 274, 274, 275, 275, 276, 276, 277, 278, 278, 279, - 279, 280, 280, 280, 280, 281, 281, 281, 282, 283, - 283, 284, 284, 284, 284, 284, 284, 284, 285, 285, - 286, 286, 287, 287, 288, 289, 289, 290, 290, 291, - 291, 291, 292, 292, 293, 294, 295, 295, 296, 297, - 297, 298, 298, 299, 300, 301, 302, 302, 303, 304, - 304, 305, 306, 306, 306, 306, 306 -}; +#define YYPACT_NINF -189 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-189))) + +#define YYTABLE_NINF -7 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 2, 1, 3, 2, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 2, 2, 2, 1, 1, 1, 1, 1, - 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 3, 5, - 3, 4, 4, 3, 0, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, - 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 3, 1, 2, 2, - 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 4, 1, 0, - 0, 2, 2, 2, 2, 1, 1, 3, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, - 2, 1, 1, 1, 5, 2, 1, 2, 1, 1, - 1, 1, 1, 1, 5, 1, 3, 2, 3, 1, - 1, 2, 1, 5, 4, 3, 2, 1, 6, 3, - 2, 3, 1, 1, 1, 1, 1 + 20, -174, -32, -189, -189, -189, -29, -189, 315, 3, + -133, -189, 315, -189, 119, -48, -189, -126, -189, -118, + -115, -189, -189, -113, -189, -189, -48, -5, 374, -48, + -189, -189, -105, -189, -100, -189, -189, 1, 81, 46, + 2, -31, -189, -189, -90, 119, -88, -189, 148, 380, + -81, -53, 23, -189, -189, -189, 87, 207, -106, -189, + -48, -189, -48, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -9, 29, -62, -61, -189, -7, -189, + -189, -102, -189, -189, -189, 32, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, 315, -189, + -189, -189, -189, -189, -189, 3, -189, 42, 78, -189, + 315, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, 112, -189, -39, 367, -189, -189, -189, + -113, -189, -189, -48, -189, -189, -189, -189, -189, -189, + -189, -189, -189, 374, -189, 60, -48, -189, -189, -34, + -189, -189, -189, -189, -189, -189, -189, -189, 81, -189, + -189, 97, 102, -189, -189, 44, -189, -189, -189, -189, + -31, -189, 71, -63, -189, 119, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, 148, -189, + -9, -189, -189, -36, -189, -189, -189, -189, -189, -189, + -189, -189, 380, -189, 75, -9, -189, -189, 76, -53, + -189, -189, -189, 77, -189, -43, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, 0, -150, + -189, -189, -189, -189, -189, 89, -189, -6, -189, -189, + -189, -189, 39, 13, -189, -189, -189, -189, 15, 99, + -189, -189, 112, -189, -9, -36, -189, -189, -189, -189, + -189, -189, -189, -189, 475, -189, -189, 475, 475, -81, + -189, -189, 18, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -58, 144, -189, -189, -189, 353, -189, + -189, -189, -189, -189, -189, -189, -189, -96, -3, -13, + -189, -189, -189, -189, 27, -189, -189, 11, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, 475, 475, -189, 163, -81, 133, -189, + 141, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -52, -189, 45, 5, 19, -125, -189, 8, -189, -9, + -189, -189, -189, -189, -189, -189, -189, -189, -189, 475, + -189, -189, -189, -189, 14, -189, -189, -189, -48, -189, + -189, -189, 22, -189, -189, -189, 21, 24, -9, 36, + -164, -189, 33, -9, -189, -189, -189, 10, 69, -189, + -189, -189, -189, -189, 31, 48, 40, -189, 52, -189, + -9, -189, -189 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 0, 24, 58, 234, 0, 71, 0, 0, - 246, 237, 0, 227, 0, 0, 239, 0, 259, 0, - 0, 240, 238, 0, 241, 25, 0, 0, 0, 0, - 260, 235, 0, 23, 0, 242, 22, 0, 0, 0, - 0, 0, 243, 21, 0, 0, 0, 236, 0, 0, - 0, 0, 0, 56, 57, 295, 0, 2, 0, 7, + 0, 0, 0, 24, 58, 235, 0, 71, 0, 0, + 247, 238, 0, 228, 0, 0, 240, 0, 260, 0, + 0, 241, 239, 0, 242, 25, 0, 0, 0, 0, + 261, 236, 0, 23, 0, 243, 22, 0, 0, 0, + 0, 0, 244, 21, 0, 0, 0, 237, 0, 0, + 0, 0, 0, 56, 57, 296, 0, 2, 0, 7, 0, 8, 0, 9, 10, 13, 11, 12, 14, 15, - 16, 17, 18, 0, 0, 0, 0, 220, 0, 221, + 16, 17, 18, 0, 0, 0, 0, 221, 0, 222, 19, 0, 5, 62, 63, 64, 195, 196, 197, 198, - 201, 199, 200, 202, 203, 204, 205, 190, 192, 193, - 194, 154, 155, 156, 126, 152, 0, 244, 228, 189, - 101, 102, 103, 104, 108, 105, 106, 107, 109, 29, - 30, 28, 0, 26, 0, 6, 65, 66, 256, 229, - 255, 288, 59, 61, 160, 161, 162, 163, 164, 165, - 166, 167, 127, 158, 0, 60, 70, 286, 230, 67, - 271, 272, 273, 274, 275, 276, 277, 268, 270, 134, - 29, 30, 134, 134, 26, 68, 188, 186, 187, 182, - 184, 0, 0, 231, 96, 100, 97, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 206, 208, 0, - 91, 86, 0, 87, 95, 93, 94, 92, 90, 88, - 89, 80, 82, 0, 0, 250, 282, 0, 69, 281, - 283, 279, 233, 1, 0, 4, 31, 55, 293, 292, - 222, 223, 224, 225, 267, 266, 265, 0, 0, 79, - 75, 76, 77, 78, 0, 72, 0, 191, 151, 153, - 245, 98, 0, 178, 179, 180, 181, 0, 0, 176, - 177, 168, 170, 0, 0, 27, 226, 254, 287, 157, - 159, 285, 269, 130, 134, 134, 133, 128, 0, 183, - 185, 0, 99, 207, 209, 291, 289, 290, 85, 81, - 83, 84, 232, 0, 280, 278, 3, 20, 261, 262, - 263, 258, 264, 257, 299, 300, 0, 0, 0, 74, - 73, 118, 117, 0, 115, 116, 0, 110, 113, 114, - 174, 175, 173, 169, 171, 172, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 135, 131, 132, 134, 249, 0, 0, 251, 0, - 37, 38, 39, 54, 47, 49, 48, 51, 40, 41, - 42, 43, 50, 52, 44, 32, 33, 36, 34, 0, - 35, 0, 0, 0, 0, 302, 0, 297, 0, 111, - 125, 121, 123, 119, 120, 122, 124, 112, 129, 248, - 247, 253, 252, 0, 45, 46, 53, 0, 296, 294, - 301, 0, 298, 284, 305, 0, 0, 0, 0, 0, - 307, 0, 0, 303, 306, 304, 0, 0, 312, 313, - 314, 315, 316, 0, 0, 0, 308, 0, 310, 0, - 309, 311 + 201, 199, 200, 202, 203, 204, 205, 206, 190, 192, + 193, 194, 154, 155, 156, 126, 152, 0, 245, 229, + 189, 101, 102, 103, 104, 108, 105, 106, 107, 109, + 29, 30, 28, 0, 26, 0, 6, 65, 66, 257, + 230, 256, 289, 59, 61, 160, 161, 162, 163, 164, + 165, 166, 167, 127, 158, 0, 60, 70, 287, 231, + 67, 272, 273, 274, 275, 276, 277, 278, 269, 271, + 134, 29, 30, 134, 134, 26, 68, 188, 186, 187, + 182, 184, 0, 0, 232, 96, 100, 97, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 207, 209, + 0, 91, 86, 0, 87, 95, 93, 94, 92, 90, + 88, 89, 80, 82, 0, 0, 251, 283, 0, 69, + 282, 284, 280, 234, 1, 0, 4, 31, 55, 294, + 293, 223, 224, 225, 226, 268, 267, 266, 0, 0, + 79, 75, 76, 77, 78, 0, 72, 0, 191, 151, + 153, 246, 98, 0, 178, 179, 180, 181, 0, 0, + 176, 177, 168, 170, 0, 0, 27, 227, 255, 288, + 157, 159, 286, 270, 130, 134, 134, 133, 128, 0, + 183, 185, 0, 99, 208, 210, 292, 290, 291, 85, + 81, 83, 84, 233, 0, 281, 279, 3, 20, 262, + 263, 264, 259, 265, 258, 300, 301, 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, 250, 0, 0, 252, + 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, 303, 0, 298, 0, + 111, 125, 121, 123, 119, 120, 122, 124, 112, 129, + 249, 248, 254, 253, 0, 45, 46, 53, 0, 297, + 295, 302, 0, 299, 285, 306, 0, 0, 0, 0, + 0, 308, 0, 0, 304, 307, 305, 0, 0, 313, + 314, 315, 316, 317, 0, 0, 0, 309, 0, 311, + 0, 310, 312 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 56, 57, 58, 59, 60, 131, 123, 124, 287, - 355, 356, 357, 358, 359, 360, 361, 61, 62, 63, - 64, 85, 235, 236, 65, 201, 202, 203, 204, 66, - 174, 118, 241, 307, 308, 309, 377, 67, 263, 331, - 104, 105, 106, 142, 143, 144, 68, 251, 252, 253, - 254, 69, 169, 170, 171, 70, 97, 98, 99, 100, - 71, 187, 188, 189, 72, 73, 74, 75, 76, 108, - 173, 380, 282, 338, 129, 130, 77, 78, 293, 227, - 79, 157, 158, 212, 208, 209, 210, 148, 132, 278, - 220, 80, 81, 296, 297, 298, 364, 365, 396, 366, - 399, 400, 413, 414, 415 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -188 -static const yytype_int16 yypact[] = + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = { - 5, -160, -28, -188, -188, -188, -24, -188, 60, 0, - -119, -188, 60, -188, 118, 7, -188, -117, -188, -110, - -108, -188, -188, -101, -188, -188, 7, -1, 345, 7, - -188, -188, -96, -188, -95, -188, -188, 21, -3, 73, - 33, 11, -188, -188, -94, 118, -61, -188, 43, 446, - -57, -58, 41, -188, -188, -188, 105, 179, -79, -188, - 7, -188, 7, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -7, 48, -48, -39, -188, 24, -188, - -188, -86, -188, -188, -188, 42, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, 60, -188, -188, - -188, -188, -188, -188, 0, -188, 59, 89, -188, 60, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, 80, -188, 9, 338, -188, -188, -188, -101, - -188, -188, 7, -188, -188, -188, -188, -188, -188, -188, - -188, -188, 345, -188, 67, 7, -188, -188, 12, -188, - -188, -188, -188, -188, -188, -188, -188, -3, -188, -188, - 107, 116, -188, -188, 83, -188, -188, -188, -188, 11, - -188, 113, -20, -188, 118, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, 43, -188, -7, - -188, -188, -25, -188, -188, -188, -188, -188, -188, -188, - -188, 446, -188, 127, -7, -188, -188, 129, -58, -188, - -188, -188, 142, -188, 19, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, 4, -158, -188, - -188, -188, -188, -188, 145, -188, 49, -188, -188, -188, - -188, 233, 55, -188, -188, -188, -188, 64, 157, -188, - -188, 80, -188, -7, -25, -188, -188, -188, -188, -188, - -188, -188, -188, 445, -188, -188, 445, 445, -57, -188, - -188, 82, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -44, 202, -188, -188, -188, 324, -188, -188, - -188, -188, -188, -188, -188, -188, -30, 58, 50, -188, - -188, -188, -188, 88, -188, -188, 3, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, 445, 445, -188, 221, -57, 188, -188, 191, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -51, - -188, 99, 61, 75, -114, -188, 65, -188, -7, -188, - -188, -188, -188, -188, -188, -188, -188, -188, 445, -188, - -188, -188, -188, 68, -188, -188, -188, 7, -188, -188, - -188, 76, -188, -188, -188, 71, 78, -7, 74, -178, - -188, 90, -7, -188, -188, -188, 77, 32, -188, -188, - -188, -188, -188, 101, 93, 84, -188, 94, -188, -7, - -188, -188 + -189, -189, -189, -41, -189, -189, -15, -38, -189, -189, + -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -189, -189, -189, 16, -189, -189, -189, + -189, -35, -189, -189, -189, -189, -189, -189, -157, -189, + -189, 138, -189, -189, 106, -189, -189, -189, -2, -189, + -189, -189, -189, 83, -189, -189, 239, -79, -189, -189, + -189, -189, 66, -189, -189, -189, -189, -189, -189, -189, + -189, -189, -189, -189, -189, 126, -189, -189, -189, -189, + -189, -189, 101, -189, -189, 51, -189, -189, 242, 17, + -188, -189, -189, -189, -24, -189, -189, -97, -189, -189, + -189, -123, -189, -130, -189 }; -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { - -188, -188, -188, -41, -188, -188, -15, -38, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, 81, -188, -188, -188, - -188, -37, -188, -188, -188, -188, -188, -188, -111, -188, - -188, 170, -188, -188, 133, -188, -188, -188, 37, -188, - -188, -188, -188, 115, -188, -188, 277, -53, -188, -188, - -188, -188, 103, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, 162, -188, -188, -188, -188, - -188, -188, 143, -188, -188, 91, -188, -188, 274, 52, - -187, -188, -188, -188, 8, -188, -188, -56, -188, -188, - -188, -87, -188, -100, -188 + -1, 56, 57, 58, 59, 60, 132, 124, 125, 288, + 356, 357, 358, 359, 360, 361, 362, 61, 62, 63, + 64, 85, 236, 237, 65, 202, 203, 204, 205, 66, + 175, 119, 242, 308, 309, 310, 378, 67, 264, 332, + 105, 106, 107, 143, 144, 145, 68, 252, 253, 254, + 255, 69, 170, 171, 172, 70, 98, 99, 100, 101, + 71, 188, 189, 190, 72, 73, 74, 75, 76, 109, + 174, 381, 283, 339, 130, 131, 77, 78, 294, 228, + 79, 158, 159, 213, 209, 210, 211, 149, 133, 279, + 221, 80, 81, 297, 298, 299, 365, 366, 397, 367, + 400, 401, 414, 415, 416 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -7 + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 122, 164, 274, 206, 150, 151, 1, 370, 175, 288, - 384, 101, 205, 398, 275, 2, 214, 281, 336, 3, - 4, 5, 152, 403, 163, 218, 82, 6, 7, 371, - 294, 295, 362, 83, 8, 9, 276, 84, 10, 107, - 11, 125, 12, 13, 237, 216, 14, 217, 126, 177, - 127, 266, 267, 166, 219, 15, 237, 128, 224, 16, - 133, 153, 146, 147, 172, 17, 314, 18, 86, 289, - 229, 290, 87, 119, 178, 120, 19, 20, 88, 225, - 21, 22, 149, 242, 256, 23, 24, 389, 337, 25, - 26, 154, 179, 230, 165, 180, 231, 176, 27, 102, - 159, 121, 211, 226, 103, 213, 167, 215, 372, 221, - 222, 28, 29, 30, 228, 373, 362, 258, 31, 223, - 239, 240, 385, 243, 244, 245, 246, 32, 260, 89, - 258, 33, 374, 34, 264, 35, 36, 272, 110, 160, - 207, 161, 111, 265, 277, 37, 38, 39, 40, 41, - 42, 43, 44, 332, 333, 45, 155, 46, 294, 295, - 168, 156, 291, 90, 91, 121, 47, 255, 181, 268, - 261, 48, 49, 50, 270, 51, 52, 271, 232, 233, - 92, 392, 53, 54, 375, 234, 292, 376, 280, 2, - 283, -6, 55, 3, 4, 5, 182, 183, 184, 185, - 112, 6, 7, 285, 186, 286, 299, 300, 8, 9, - 401, 93, 10, 310, 11, 406, 12, 13, 312, 247, - 14, 162, 311, 378, 408, 409, 410, 411, 412, 15, - 334, 121, 421, 16, 94, 95, 96, 248, 339, 17, - 335, 18, 249, 250, 367, 113, 369, 368, 379, 382, - 19, 20, 383, 114, 21, 22, 115, 386, 387, 23, - 24, 388, 301, 25, 26, 391, 395, 393, 397, 398, - 302, 402, 27, 303, 238, 259, 405, 407, 116, 418, - 420, 419, 279, 117, 269, 28, 29, 30, 313, 109, - 273, 257, 31, 408, 409, 410, 411, 412, 381, 284, - 262, 32, 416, 145, 363, 33, 315, 34, 390, 35, - 36, 304, 404, 417, 0, 0, 0, 0, 0, 37, - 38, 39, 40, 41, 42, 43, 44, 0, 0, 45, - 0, 46, 0, 340, 0, 0, 0, 0, 0, 0, - 47, 341, 305, 0, 0, 48, 49, 50, 2, 51, - 52, 0, 3, 4, 5, 0, 53, 54, 0, 0, - 6, 7, 0, 0, 0, -6, 55, 8, 9, 0, - 0, 10, 394, 11, 0, 12, 13, 342, 343, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 16, 0, 344, 0, 0, 0, 17, 0, - 18, 134, 135, 136, 137, 306, 0, 0, 0, 19, - 20, 0, 0, 21, 22, 0, 345, 0, 23, 24, - 0, 0, 25, 26, 346, 0, 347, 0, 0, 0, - 0, 27, 138, 0, 139, 0, 140, 0, 0, 0, - 348, 0, 141, 0, 28, 29, 30, 0, 0, 0, - 0, 31, 0, 0, 0, 0, 0, 349, 350, 190, - 32, 0, 0, 0, 33, 191, 34, 192, 35, 36, + 123, 165, 275, 276, 337, 289, 267, 268, 207, 385, + 176, 167, 206, 82, 102, 371, 215, 282, 120, 238, + 121, 1, 363, 219, 164, 277, 108, 225, 399, 83, + 2, 238, 84, 126, 3, 4, 5, 372, 404, 295, + 296, 127, 6, 7, 128, 217, 129, 218, 226, 8, + 9, 363, 220, 10, 147, 11, 134, 12, 13, 148, + 230, 14, 150, 166, 168, 290, 315, 291, 302, 173, + 15, 177, 227, 160, 16, 338, 303, 390, 122, 304, + 17, 216, 18, 231, 212, 257, 232, 214, 151, 152, + 222, 19, 20, 295, 296, 21, 22, 223, 224, 229, + 23, 24, 103, 240, 25, 26, 153, 104, 333, 334, + 241, 122, 161, 27, 162, 243, 373, 305, 259, 169, + 256, 261, 386, 374, 265, 262, 28, 29, 30, 266, + 269, 259, 271, 31, 278, 272, 281, 284, 286, 111, + 273, 375, 32, 112, 287, 154, 208, 33, 306, 34, + 300, 35, 36, 301, 178, 244, 245, 246, 247, 292, + 313, 37, 38, 39, 40, 41, 42, 43, 44, 233, + 234, 45, 311, 46, 312, 155, 235, 336, 379, 179, + 340, 393, 47, 293, 368, 369, 370, 48, 49, 50, + 380, 51, 52, 376, 383, 163, 377, 180, 53, 54, + 181, 113, 384, 388, 387, 122, 389, -6, 55, 392, + 402, 408, 307, 396, 394, 407, 399, 2, 280, 398, + 406, 3, 4, 5, 409, 410, 411, 412, 413, 6, + 7, 335, 422, 417, 403, 419, 8, 9, 420, 421, + 10, 156, 11, 239, 12, 13, 157, 114, 14, 260, + 314, 110, 248, 270, 274, 115, 258, 15, 116, 263, + 285, 16, 409, 410, 411, 412, 413, 17, 391, 18, + 249, 146, 316, 364, 182, 250, 251, 405, 19, 20, + 117, 0, 21, 22, 418, 118, 0, 23, 24, 0, + 0, 25, 26, 0, 0, 0, 0, 0, 0, 382, + 27, 0, 183, 184, 185, 186, 0, 0, 0, 0, + 187, 0, 0, 28, 29, 30, 0, 0, 0, 0, + 31, 0, 0, 86, 0, 0, 0, 87, 0, 32, + 0, 0, 0, 88, 33, 0, 34, 0, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, 45, 0, - 46, 0, 316, 351, 193, 352, 0, 0, 0, 47, - 317, 0, 0, 353, 48, 49, 50, 354, 51, 52, - 0, 0, 0, 0, 0, 53, 54, 0, 318, 319, - 0, 0, 320, 0, 0, 55, 0, 0, 321, 0, - 0, 0, 0, 0, 194, 0, 195, 0, 0, 0, - 0, 0, 196, 0, 197, 0, 0, 198, 0, 0, - 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, - 325, 0, 326, 327, 328, 0, 329, 0, 0, 199, - 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 0, 341, 0, 0, 0, 0, 0, 0, 47, + 342, 0, 0, 395, 48, 49, 50, 2, 51, 52, + 0, 3, 4, 5, 89, 53, 54, 0, 0, 6, + 7, 0, 0, 191, -6, 55, 8, 9, 0, 192, + 10, 193, 11, 0, 12, 13, 343, 344, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 90, 91, + 0, 16, 0, 345, 0, 0, 0, 17, 194, 18, + 135, 136, 137, 138, 0, 92, 0, 0, 19, 20, + 93, 0, 21, 22, 0, 346, 0, 23, 24, 0, + 0, 25, 26, 347, 0, 348, 0, 0, 0, 0, + 27, 139, 0, 140, 0, 141, 0, 94, 195, 349, + 196, 142, 0, 28, 29, 30, 197, 0, 198, 0, + 31, 199, 0, 0, 0, 0, 0, 350, 351, 32, + 95, 96, 97, 0, 33, 0, 34, 0, 35, 36, + 0, 0, 0, 200, 201, 0, 0, 0, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 45, 0, + 46, 0, 317, 352, 0, 353, 0, 0, 0, 47, + 318, 0, 0, 354, 48, 49, 50, 355, 51, 52, + 0, 0, 0, 0, 0, 53, 54, 0, 319, 320, + 0, 0, 321, 0, 0, 55, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 323, 324, 0, 0, 325, + 326, 0, 327, 328, 329, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 330 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 331 }; -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-188))) - -#define yytable_value_is_error(Yytable_value) \ - YYID (0) - static const yytype_int16 yycheck[] = { - 15, 39, 189, 61, 7, 8, 1, 4, 45, 5, - 61, 11, 50, 191, 39, 10, 57, 204, 62, 14, - 15, 16, 25, 201, 39, 32, 186, 22, 23, 26, - 188, 189, 146, 61, 29, 30, 61, 61, 33, 158, - 35, 158, 37, 38, 97, 60, 41, 62, 158, 6, - 158, 162, 163, 42, 61, 50, 109, 158, 34, 54, - 61, 64, 158, 158, 158, 60, 253, 62, 8, 65, - 28, 67, 12, 66, 31, 68, 71, 72, 18, 55, - 75, 76, 61, 3, 125, 80, 81, 201, 132, 84, - 85, 94, 49, 51, 61, 52, 54, 158, 93, 99, - 27, 158, 61, 79, 104, 0, 95, 186, 105, 61, - 158, 106, 107, 108, 200, 112, 146, 132, 113, 158, - 61, 32, 173, 43, 44, 45, 46, 122, 61, 69, - 145, 126, 129, 128, 27, 130, 131, 174, 20, 66, - 198, 68, 24, 27, 169, 140, 141, 142, 143, 144, - 145, 146, 147, 264, 265, 150, 159, 152, 188, 189, - 149, 164, 158, 103, 104, 158, 161, 158, 125, 86, - 158, 166, 167, 168, 61, 170, 171, 197, 136, 137, - 120, 368, 177, 178, 181, 143, 182, 184, 61, 10, - 61, 186, 187, 14, 15, 16, 153, 154, 155, 156, - 82, 22, 23, 61, 161, 186, 61, 158, 29, 30, - 397, 151, 33, 158, 35, 402, 37, 38, 61, 139, - 41, 148, 158, 334, 192, 193, 194, 195, 196, 50, - 268, 158, 419, 54, 174, 175, 176, 157, 36, 60, - 158, 62, 162, 163, 186, 127, 158, 197, 27, 61, - 71, 72, 61, 135, 75, 76, 138, 158, 197, 80, - 81, 186, 29, 84, 85, 200, 190, 199, 197, 191, - 37, 197, 93, 40, 104, 142, 186, 200, 160, 186, - 186, 197, 201, 165, 169, 106, 107, 108, 251, 12, - 187, 129, 113, 192, 193, 194, 195, 196, 336, 208, - 157, 122, 201, 29, 296, 126, 254, 128, 364, 130, - 131, 78, 399, 413, -1, -1, -1, -1, -1, 140, - 141, 142, 143, 144, 145, 146, 147, -1, -1, 150, - -1, 152, -1, 9, -1, -1, -1, -1, -1, -1, - 161, 17, 109, -1, -1, 166, 167, 168, 10, 170, - 171, -1, 14, 15, 16, -1, 177, 178, -1, -1, - 22, 23, -1, -1, -1, 186, 187, 29, 30, -1, - -1, 33, 387, 35, -1, 37, 38, 53, 54, 41, - -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, - -1, -1, 54, -1, 70, -1, -1, -1, 60, -1, - 62, 56, 57, 58, 59, 172, -1, -1, -1, 71, - 72, -1, -1, 75, 76, -1, 92, -1, 80, 81, - -1, -1, 84, 85, 100, -1, 102, -1, -1, -1, - -1, 93, 87, -1, 89, -1, 91, -1, -1, -1, - 116, -1, 97, -1, 106, 107, 108, -1, -1, -1, - -1, 113, -1, -1, -1, -1, -1, 133, 134, 13, - 122, -1, -1, -1, 126, 19, 128, 21, 130, 131, - -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, - 142, 143, 144, 145, 146, 147, -1, -1, 150, -1, - 152, -1, 47, 169, 48, 171, -1, -1, -1, 161, - 55, -1, -1, 179, 166, 167, 168, 183, 170, 171, - -1, -1, -1, -1, -1, 177, 178, -1, 73, 74, - -1, -1, 77, -1, -1, 187, -1, -1, 83, -1, - -1, -1, -1, -1, 88, -1, 90, -1, -1, -1, - -1, -1, 96, -1, 98, -1, -1, 101, -1, -1, + 15, 39, 190, 39, 62, 5, 163, 164, 61, 61, + 45, 42, 50, 187, 11, 4, 57, 205, 66, 98, + 68, 1, 147, 32, 39, 61, 159, 34, 192, 61, + 10, 110, 61, 159, 14, 15, 16, 26, 202, 189, + 190, 159, 22, 23, 159, 60, 159, 62, 55, 29, + 30, 147, 61, 33, 159, 35, 61, 37, 38, 159, + 28, 41, 61, 61, 95, 65, 254, 67, 29, 159, + 50, 159, 79, 27, 54, 133, 37, 202, 159, 40, + 60, 187, 62, 51, 61, 126, 54, 0, 7, 8, + 61, 71, 72, 189, 190, 75, 76, 159, 159, 201, + 80, 81, 99, 61, 84, 85, 25, 104, 265, 266, + 32, 159, 66, 93, 68, 3, 105, 78, 133, 150, + 159, 61, 174, 112, 27, 159, 106, 107, 108, 27, + 86, 146, 61, 113, 170, 198, 61, 61, 61, 20, + 175, 130, 122, 24, 187, 64, 199, 127, 109, 129, + 61, 131, 132, 159, 6, 43, 44, 45, 46, 159, + 61, 141, 142, 143, 144, 145, 146, 147, 148, 137, + 138, 151, 159, 153, 159, 94, 144, 159, 335, 31, + 36, 369, 162, 183, 187, 198, 159, 167, 168, 169, + 27, 171, 172, 182, 61, 149, 185, 49, 178, 179, + 52, 82, 61, 198, 159, 159, 187, 187, 188, 201, + 398, 201, 173, 191, 200, 403, 192, 10, 202, 198, + 187, 14, 15, 16, 193, 194, 195, 196, 197, 22, + 23, 269, 420, 202, 198, 187, 29, 30, 198, 187, + 33, 160, 35, 105, 37, 38, 165, 128, 41, 143, + 252, 12, 140, 170, 188, 136, 130, 50, 139, 158, + 209, 54, 193, 194, 195, 196, 197, 60, 365, 62, + 158, 29, 255, 297, 126, 163, 164, 400, 71, 72, + 161, -1, 75, 76, 414, 166, -1, 80, 81, -1, + -1, 84, 85, -1, -1, -1, -1, -1, -1, 337, + 93, -1, 154, 155, 156, 157, -1, -1, -1, -1, + 162, -1, -1, 106, 107, 108, -1, -1, -1, -1, + 113, -1, -1, 8, -1, -1, -1, 12, -1, 122, + -1, -1, -1, 18, 127, -1, 129, -1, 131, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 142, + 143, 144, 145, 146, 147, 148, -1, -1, 151, -1, + 153, -1, 9, -1, -1, -1, -1, -1, -1, 162, + 17, -1, -1, 388, 167, 168, 169, 10, 171, 172, + -1, 14, 15, 16, 69, 178, 179, -1, -1, 22, + 23, -1, -1, 13, 187, 188, 29, 30, -1, 19, + 33, 21, 35, -1, 37, 38, 53, 54, 41, -1, + -1, -1, -1, -1, -1, -1, -1, 50, 103, 104, + -1, 54, -1, 70, -1, -1, -1, 60, 48, 62, + 56, 57, 58, 59, -1, 120, -1, -1, 71, 72, + 125, -1, 75, 76, -1, 92, -1, 80, 81, -1, + -1, 84, 85, 100, -1, 102, -1, -1, -1, -1, + 93, 87, -1, 89, -1, 91, -1, 152, 88, 116, + 90, 97, -1, 106, 107, 108, 96, -1, 98, -1, + 113, 101, -1, -1, -1, -1, -1, 134, 135, 122, + 175, 176, 177, -1, 127, -1, 129, -1, 131, 132, + -1, -1, -1, 123, 124, -1, -1, -1, 141, 142, + 143, 144, 145, 146, 147, 148, -1, -1, 151, -1, + 153, -1, 47, 170, -1, 172, -1, -1, -1, 162, + 55, -1, -1, 180, 167, 168, 169, 184, 171, 172, + -1, -1, -1, -1, -1, 178, 179, -1, 73, 74, + -1, -1, 77, -1, -1, 188, -1, -1, 83, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, -1, -1, 114, - 115, -1, 117, 118, 119, -1, 121, -1, -1, 123, - 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 115, -1, 117, 118, 119, -1, 121, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 179 + -1, -1, -1, -1, -1, 180 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 1, 10, 14, 15, 16, 22, 23, 29, 30, 33, 35, 37, 38, 41, 50, 54, 60, 62, 71, 72, 75, 76, 80, 81, 84, 85, 93, 106, 107, - 108, 113, 122, 126, 128, 130, 131, 140, 141, 142, - 143, 144, 145, 146, 147, 150, 152, 161, 166, 167, - 168, 170, 171, 177, 178, 187, 203, 204, 205, 206, - 207, 219, 220, 221, 222, 226, 231, 239, 248, 253, - 257, 262, 266, 267, 268, 269, 270, 278, 279, 282, - 293, 294, 186, 61, 61, 223, 8, 12, 18, 69, - 103, 104, 120, 151, 174, 175, 176, 258, 259, 260, - 261, 11, 99, 104, 242, 243, 244, 158, 271, 258, - 20, 24, 82, 127, 135, 138, 160, 165, 233, 66, - 68, 158, 208, 209, 210, 158, 158, 158, 158, 276, - 277, 208, 290, 61, 56, 57, 58, 59, 87, 89, - 91, 97, 245, 246, 247, 290, 158, 158, 289, 61, - 7, 8, 25, 64, 94, 159, 164, 283, 284, 27, - 66, 68, 148, 208, 209, 61, 42, 95, 149, 254, - 255, 256, 158, 272, 232, 233, 158, 6, 31, 49, - 52, 125, 153, 154, 155, 156, 161, 263, 264, 265, - 13, 19, 21, 48, 88, 90, 96, 98, 101, 123, - 124, 227, 228, 229, 230, 209, 61, 198, 286, 287, - 288, 61, 285, 0, 205, 186, 208, 208, 32, 61, - 292, 61, 158, 158, 34, 55, 79, 281, 200, 28, - 51, 54, 136, 137, 143, 224, 225, 259, 243, 61, - 32, 234, 3, 43, 44, 45, 46, 139, 157, 162, - 163, 249, 250, 251, 252, 158, 205, 277, 208, 246, - 61, 158, 284, 240, 27, 27, 240, 240, 86, 255, - 61, 197, 233, 264, 292, 39, 61, 169, 291, 228, - 61, 292, 274, 61, 287, 61, 186, 211, 5, 65, - 67, 158, 182, 280, 188, 189, 295, 296, 297, 61, - 158, 29, 37, 40, 78, 109, 172, 235, 236, 237, - 158, 158, 61, 250, 292, 291, 47, 55, 73, 74, - 77, 83, 110, 111, 114, 115, 117, 118, 119, 121, - 179, 241, 240, 240, 209, 158, 62, 132, 275, 36, - 9, 17, 53, 54, 70, 92, 100, 102, 116, 133, - 134, 169, 171, 179, 183, 212, 213, 214, 215, 216, - 217, 218, 146, 296, 298, 299, 301, 186, 197, 158, - 4, 26, 105, 112, 129, 181, 184, 238, 240, 27, - 273, 209, 61, 61, 61, 173, 158, 197, 186, 201, - 299, 200, 292, 199, 208, 190, 300, 197, 191, 302, - 303, 292, 197, 201, 303, 186, 292, 200, 192, 193, - 194, 195, 196, 304, 305, 306, 201, 305, 186, 197, - 186, 292 + 108, 113, 122, 127, 129, 131, 132, 141, 142, 143, + 144, 145, 146, 147, 148, 151, 153, 162, 167, 168, + 169, 171, 172, 178, 179, 188, 204, 205, 206, 207, + 208, 220, 221, 222, 223, 227, 232, 240, 249, 254, + 258, 263, 267, 268, 269, 270, 271, 279, 280, 283, + 294, 295, 187, 61, 61, 224, 8, 12, 18, 69, + 103, 104, 120, 125, 152, 175, 176, 177, 259, 260, + 261, 262, 11, 99, 104, 243, 244, 245, 159, 272, + 259, 20, 24, 82, 128, 136, 139, 161, 166, 234, + 66, 68, 159, 209, 210, 211, 159, 159, 159, 159, + 277, 278, 209, 291, 61, 56, 57, 58, 59, 87, + 89, 91, 97, 246, 247, 248, 291, 159, 159, 290, + 61, 7, 8, 25, 64, 94, 160, 165, 284, 285, + 27, 66, 68, 149, 209, 210, 61, 42, 95, 150, + 255, 256, 257, 159, 273, 233, 234, 159, 6, 31, + 49, 52, 126, 154, 155, 156, 157, 162, 264, 265, + 266, 13, 19, 21, 48, 88, 90, 96, 98, 101, + 123, 124, 228, 229, 230, 231, 210, 61, 199, 287, + 288, 289, 61, 286, 0, 206, 187, 209, 209, 32, + 61, 293, 61, 159, 159, 34, 55, 79, 282, 201, + 28, 51, 54, 137, 138, 144, 225, 226, 260, 244, + 61, 32, 235, 3, 43, 44, 45, 46, 140, 158, + 163, 164, 250, 251, 252, 253, 159, 206, 278, 209, + 247, 61, 159, 285, 241, 27, 27, 241, 241, 86, + 256, 61, 198, 234, 265, 293, 39, 61, 170, 292, + 229, 61, 293, 275, 61, 288, 61, 187, 212, 5, + 65, 67, 159, 183, 281, 189, 190, 296, 297, 298, + 61, 159, 29, 37, 40, 78, 109, 173, 236, 237, + 238, 159, 159, 61, 251, 293, 292, 47, 55, 73, + 74, 77, 83, 110, 111, 114, 115, 117, 118, 119, + 121, 180, 242, 241, 241, 210, 159, 62, 133, 276, + 36, 9, 17, 53, 54, 70, 92, 100, 102, 116, + 134, 135, 170, 172, 180, 184, 213, 214, 215, 216, + 217, 218, 219, 147, 297, 299, 300, 302, 187, 198, + 159, 4, 26, 105, 112, 130, 182, 185, 239, 241, + 27, 274, 210, 61, 61, 61, 174, 159, 198, 187, + 202, 300, 201, 293, 200, 209, 191, 301, 198, 192, + 303, 304, 293, 198, 202, 304, 187, 293, 201, 193, + 194, 195, 196, 197, 305, 306, 307, 202, 306, 187, + 198, 187, 293 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 203, 204, 205, 205, 205, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 207, 208, 208, 208, 208, 208, 209, 209, 210, 211, + 211, 212, 212, 213, 213, 213, 214, 215, 215, 215, + 215, 215, 215, 215, 215, 216, 216, 217, 217, 217, + 217, 217, 217, 218, 219, 220, 221, 221, 222, 222, + 222, 222, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 224, 224, 225, 225, 226, 226, 226, 226, 226, + 227, 228, 228, 229, 229, 229, 230, 230, 230, 230, + 230, 230, 231, 231, 231, 231, 232, 232, 232, 233, + 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, + 235, 236, 236, 236, 236, 237, 237, 238, 238, 239, + 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, + 240, 240, 240, 240, 241, 241, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 243, 243, 244, 245, 245, 245, 246, 246, 247, + 248, 248, 248, 248, 248, 248, 248, 248, 249, 250, + 250, 251, 251, 251, 251, 251, 252, 252, 253, 253, + 253, 253, 254, 255, 255, 256, 257, 257, 257, 258, + 258, 259, 259, 260, 260, 261, 261, 261, 261, 261, + 261, 262, 262, 262, 262, 262, 262, 263, 264, 264, + 265, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 268, 268, 268, 269, 269, + 270, 270, 271, 271, 271, 272, 272, 272, 273, 274, + 274, 275, 275, 276, 276, 277, 277, 278, 279, 279, + 280, 280, 281, 281, 281, 281, 282, 282, 282, 283, + 284, 284, 285, 285, 285, 285, 285, 285, 285, 286, + 286, 287, 287, 288, 288, 289, 290, 290, 291, 291, + 292, 292, 292, 293, 293, 294, 295, 296, 296, 297, + 298, 298, 299, 299, 300, 301, 302, 303, 303, 304, + 305, 305, 306, 307, 307, 307, 307, 307 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 3, 2, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 1, 1, 1, 1, 1, + 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 3, 5, + 3, 4, 4, 3, 0, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 3, 1, 2, + 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 0, 4, 1, + 0, 0, 2, 2, 2, 2, 1, 1, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 2, 1, 1, 1, 5, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 5, 1, 3, 2, 3, + 1, 1, 2, 1, 5, 4, 3, 2, 1, 6, + 3, 2, 3, 1, 1, 1, 1, 1 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + #define YYRECOVERING() (!!yyerrstatus) @@ -1584,27 +1458,15 @@ do \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -1614,40 +1476,36 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); @@ -1656,8 +1514,6 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif YYUSE (yytype); } @@ -1667,22 +1523,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); @@ -1693,16 +1538,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1713,49 +1550,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -1769,7 +1599,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -1792,15 +1622,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -1816,16 +1639,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -1855,27 +1670,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -1898,11 +1713,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -1910,10 +1725,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -1963,7 +1774,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -2030,26 +1841,17 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif { YYUSE (yyvaluep); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -2058,18 +1860,8 @@ yydestruct (yymsg, yytype, yyvaluep) /* The lookahead symbol. */ int yychar; - -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - /* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); - +YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; @@ -2078,35 +1870,16 @@ int yynerrs; | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. + 'yyss': related to states. + 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -2174,23 +1947,23 @@ yyparse () #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -2198,22 +1971,22 @@ yyparse () # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -2222,10 +1995,10 @@ yyparse () yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -2254,7 +2027,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (); } if (yychar <= YYEOF) @@ -2319,7 +2092,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -2333,8 +2106,7 @@ yyreduce: switch (yyn) { case 5: -/* Line 1787 of yacc.c */ -#line 376 "../../ntpd/ntp_parser.y" +#line 377 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { /* I will need to incorporate much more fine grained * error messages. The following should suffice for @@ -2347,433 +2119,433 @@ yyreduce: ip_ctx->errpos.nline, ip_ctx->errpos.ncol); } +#line 2123 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 20: -/* Line 1787 of yacc.c */ -#line 412 "../../ntpd/ntp_parser.y" +#line 413 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { peer_node *my_node; - my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); + 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 2134 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 27: -/* Line 1787 of yacc.c */ -#line 431 "../../ntpd/ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), (yyvsp[(1) - (2)].Integer)); } +#line 432 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); } +#line 2140 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 28: -/* Line 1787 of yacc.c */ -#line 436 "../../ntpd/ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); } +#line 437 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); } +#line 2146 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 29: -/* Line 1787 of yacc.c */ -#line 441 "../../ntpd/ntp_parser.y" +#line 442 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Integer) = AF_INET; } +#line 2152 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 30: -/* Line 1787 of yacc.c */ -#line 443 "../../ntpd/ntp_parser.y" +#line 444 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Integer) = AF_INET6; } +#line 2158 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 31: -/* Line 1787 of yacc.c */ -#line 448 "../../ntpd/ntp_parser.y" +#line 449 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; } +#line 2164 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 32: -/* Line 1787 of yacc.c */ -#line 450 "../../ntpd/ntp_parser.y" +#line 451 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2173 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 36: -/* Line 1787 of yacc.c */ -#line 464 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } +#line 465 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } +#line 2179 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 45: -/* Line 1787 of yacc.c */ -#line 480 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 481 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2185 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 46: -/* Line 1787 of yacc.c */ -#line 482 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_uval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 483 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2191 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 53: -/* Line 1787 of yacc.c */ -#line 496 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } +#line 497 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2197 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 55: -/* Line 1787 of yacc.c */ -#line 510 "../../ntpd/ntp_parser.y" +#line 511 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { unpeer_node *my_node; - my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node)); + my_node = create_unpeer_node((yyvsp[0].Address_node)); if (my_node) APPEND_G_FIFO(cfgt.unpeers, my_node); } +#line 2209 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 58: -/* Line 1787 of yacc.c */ -#line 531 "../../ntpd/ntp_parser.y" +#line 532 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { cfgt.broadcastclient = 1; } +#line 2215 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 59: -/* Line 1787 of yacc.c */ -#line 533 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[(2) - (2)].Address_fifo)); } +#line 534 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); } +#line 2221 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 60: -/* Line 1787 of yacc.c */ -#line 535 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[(2) - (2)].Address_fifo)); } +#line 536 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); } +#line 2227 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 61: -/* Line 1787 of yacc.c */ -#line 537 "../../ntpd/ntp_parser.y" - { cfgt.mdnstries = (yyvsp[(2) - (2)].Integer); } +#line 538 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.mdnstries = (yyvsp[0].Integer); } +#line 2233 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 62: -/* Line 1787 of yacc.c */ -#line 548 "../../ntpd/ntp_parser.y" +#line 549 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { attr_val *atrv; - atrv = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); + atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); APPEND_G_FIFO(cfgt.vars, atrv); } +#line 2244 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 63: -/* Line 1787 of yacc.c */ -#line 555 "../../ntpd/ntp_parser.y" - { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); } +#line 556 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.control_key = (yyvsp[0].Integer); } +#line 2250 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 64: -/* Line 1787 of yacc.c */ -#line 557 "../../ntpd/ntp_parser.y" +#line 558 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { cfgt.auth.cryptosw++; - CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Attr_val_fifo)); + CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo)); } +#line 2259 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 65: -/* Line 1787 of yacc.c */ -#line 562 "../../ntpd/ntp_parser.y" - { cfgt.auth.keys = (yyvsp[(2) - (2)].String); } +#line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.keys = (yyvsp[0].String); } +#line 2265 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 66: -/* Line 1787 of yacc.c */ -#line 564 "../../ntpd/ntp_parser.y" - { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); } +#line 565 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.keysdir = (yyvsp[0].String); } +#line 2271 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 67: -/* Line 1787 of yacc.c */ -#line 566 "../../ntpd/ntp_parser.y" - { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); } +#line 567 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.request_key = (yyvsp[0].Integer); } +#line 2277 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 68: -/* Line 1787 of yacc.c */ -#line 568 "../../ntpd/ntp_parser.y" - { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); } +#line 569 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.revoke = (yyvsp[0].Integer); } +#line 2283 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 69: -/* Line 1787 of yacc.c */ -#line 570 "../../ntpd/ntp_parser.y" +#line 571 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Attr_val_fifo); + cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo); // if (!cfgt.auth.trusted_key_list) // cfgt.auth.trusted_key_list = $2; // else // LINK_SLIST(cfgt.auth.trusted_key_list, $2, link); } +#line 2296 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 70: -/* Line 1787 of yacc.c */ -#line 579 "../../ntpd/ntp_parser.y" - { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); } +#line 580 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); } +#line 2302 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 71: -/* Line 1787 of yacc.c */ -#line 584 "../../ntpd/ntp_parser.y" +#line 585 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; } +#line 2308 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 72: -/* Line 1787 of yacc.c */ -#line 586 "../../ntpd/ntp_parser.y" +#line 587 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2317 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 73: -/* Line 1787 of yacc.c */ -#line 594 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } +#line 595 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2323 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 74: -/* Line 1787 of yacc.c */ -#line 596 "../../ntpd/ntp_parser.y" +#line 597 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val) = NULL; - cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); + cfgt.auth.revoke = (yyvsp[0].Integer); msyslog(LOG_WARNING, "'crypto revoke %d' is deprecated, " "please use 'revoke %d' instead.", cfgt.auth.revoke, cfgt.auth.revoke); } +#line 2336 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 80: -/* Line 1787 of yacc.c */ -#line 621 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[(2) - (2)].Attr_val_fifo)); } +#line 622 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); } +#line 2342 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 81: -/* Line 1787 of yacc.c */ -#line 626 "../../ntpd/ntp_parser.y" +#line 627 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2351 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 82: -/* Line 1787 of yacc.c */ -#line 631 "../../ntpd/ntp_parser.y" +#line 632 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2360 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 83: -/* Line 1787 of yacc.c */ -#line 639 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); } +#line 640 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } +#line 2366 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 84: -/* Line 1787 of yacc.c */ -#line 641 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } +#line 642 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } +#line 2372 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 85: -/* Line 1787 of yacc.c */ -#line 643 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); } +#line 644 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); } +#line 2378 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 96: -/* Line 1787 of yacc.c */ -#line 669 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[(2) - (2)].Int_fifo)); } +#line 670 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); } +#line 2384 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 97: -/* Line 1787 of yacc.c */ -#line 671 "../../ntpd/ntp_parser.y" +#line 672 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { - cfgt.stats_dir = (yyvsp[(2) - (2)].String); + cfgt.stats_dir = (yyvsp[0].String); } else { - YYFREE((yyvsp[(2) - (2)].String)); + YYFREE((yyvsp[0].String)); yyerror("statsdir remote configuration ignored"); } } +#line 2397 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 98: -/* Line 1787 of yacc.c */ -#line 680 "../../ntpd/ntp_parser.y" +#line 681 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { filegen_node *fgn; - fgn = create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Attr_val_fifo)); + fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.filegen_opts, fgn); } +#line 2408 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 99: -/* Line 1787 of yacc.c */ -#line 690 "../../ntpd/ntp_parser.y" +#line 691 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo); - APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } +#line 2417 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 100: -/* Line 1787 of yacc.c */ -#line 695 "../../ntpd/ntp_parser.y" +#line 696 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = NULL; - APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer))); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } +#line 2426 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 109: -/* Line 1787 of yacc.c */ -#line 714 "../../ntpd/ntp_parser.y" +#line 715 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; } +#line 2432 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 110: -/* Line 1787 of yacc.c */ -#line 716 "../../ntpd/ntp_parser.y" +#line 717 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2441 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 111: -/* Line 1787 of yacc.c */ -#line 724 "../../ntpd/ntp_parser.y" +#line 725 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { - (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); + (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } else { (yyval.Attr_val) = NULL; - YYFREE((yyvsp[(2) - (2)].String)); + YYFREE((yyvsp[0].String)); yyerror("filegen file remote config ignored"); } } +#line 2455 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 112: -/* Line 1787 of yacc.c */ -#line 734 "../../ntpd/ntp_parser.y" +#line 735 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { - (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); + (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } else { (yyval.Attr_val) = NULL; yyerror("filegen type remote config ignored"); } } +#line 2468 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 113: -/* Line 1787 of yacc.c */ -#line 743 "../../ntpd/ntp_parser.y" +#line 744 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { const char *err; if (lex_from_file()) { - (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); + (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } else { (yyval.Attr_val) = NULL; - if (T_Link == (yyvsp[(1) - (1)].Integer)) + if (T_Link == (yyvsp[0].Integer)) err = "filegen link remote config ignored"; else err = "filegen nolink remote config ignored"; yyerror(err); } } +#line 2487 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 114: -/* Line 1787 of yacc.c */ -#line 758 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } +#line 759 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } +#line 2493 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 126: -/* Line 1787 of yacc.c */ -#line 788 "../../ntpd/ntp_parser.y" +#line 789 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); + CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo)); } +#line 2501 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 127: -/* Line 1787 of yacc.c */ -#line 792 "../../ntpd/ntp_parser.y" +#line 793 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); + CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo)); } +#line 2509 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 128: -/* Line 1787 of yacc.c */ -#line 796 "../../ntpd/ntp_parser.y" +#line 797 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; - rn = create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Int_fifo), + rn = create_restrict_node((yyvsp[-1].Address_node), NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2521 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 129: -/* Line 1787 of yacc.c */ -#line 804 "../../ntpd/ntp_parser.y" +#line 805 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; - rn = create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Int_fifo), + rn = create_restrict_node((yyvsp[-3].Address_node), (yyvsp[-1].Address_node), (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2533 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 130: -/* Line 1787 of yacc.c */ -#line 812 "../../ntpd/ntp_parser.y" +#line 813 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; - rn = create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), + rn = create_restrict_node(NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2545 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 131: -/* Line 1787 of yacc.c */ -#line 820 "../../ntpd/ntp_parser.y" +#line 821 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2784,15 +2556,15 @@ yyreduce: create_address_node( estrdup("0.0.0.0"), AF_INET), - (yyvsp[(4) - (4)].Int_fifo), + (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2564 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 132: -/* Line 1787 of yacc.c */ -#line 835 "../../ntpd/ntp_parser.y" +#line 836 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node *rn; @@ -2803,327 +2575,327 @@ yyreduce: create_address_node( estrdup("::"), AF_INET6), - (yyvsp[(4) - (4)].Int_fifo), + (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2583 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 133: -/* Line 1787 of yacc.c */ -#line 850 "../../ntpd/ntp_parser.y" +#line 851 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { restrict_node * rn; - APPEND_G_FIFO((yyvsp[(3) - (3)].Int_fifo), create_int_node((yyvsp[(2) - (3)].Integer))); + APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-1].Integer))); rn = create_restrict_node( - NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), lex_current()->curpos.nline); + NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline); APPEND_G_FIFO(cfgt.restrict_opts, rn); } +#line 2596 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 134: -/* Line 1787 of yacc.c */ -#line 862 "../../ntpd/ntp_parser.y" +#line 863 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Int_fifo) = NULL; } +#line 2602 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 135: -/* Line 1787 of yacc.c */ -#line 864 "../../ntpd/ntp_parser.y" +#line 865 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo); - APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } +#line 2611 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 151: -/* Line 1787 of yacc.c */ -#line 890 "../../ntpd/ntp_parser.y" +#line 891 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2620 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 152: -/* Line 1787 of yacc.c */ -#line 895 "../../ntpd/ntp_parser.y" +#line 896 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2629 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 153: -/* Line 1787 of yacc.c */ -#line 903 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 904 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2635 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 157: -/* Line 1787 of yacc.c */ -#line 914 "../../ntpd/ntp_parser.y" +#line 915 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2644 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 158: -/* Line 1787 of yacc.c */ -#line 919 "../../ntpd/ntp_parser.y" +#line 920 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2653 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 159: -/* Line 1787 of yacc.c */ -#line 927 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 928 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2659 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 168: -/* Line 1787 of yacc.c */ -#line 947 "../../ntpd/ntp_parser.y" +#line 948 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { addr_opts_node *aon; - aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); + aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.fudge, aon); } +#line 2670 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 169: -/* Line 1787 of yacc.c */ -#line 957 "../../ntpd/ntp_parser.y" +#line 958 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2679 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 170: -/* Line 1787 of yacc.c */ -#line 962 "../../ntpd/ntp_parser.y" +#line 963 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2688 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 171: -/* Line 1787 of yacc.c */ -#line 970 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } +#line 971 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } +#line 2694 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 172: -/* Line 1787 of yacc.c */ -#line 972 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 973 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2700 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 173: -/* Line 1787 of yacc.c */ -#line 974 "../../ntpd/ntp_parser.y" +#line 975 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].Integer) >= 0 && (yyvsp[(2) - (2)].Integer) <= 16) { - (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); + if ((yyvsp[0].Integer) >= 0 && (yyvsp[0].Integer) <= 16) { + (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } else { (yyval.Attr_val) = NULL; yyerror("fudge factor: stratum value not in [0..16], ignored"); } } +#line 2713 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 174: -/* Line 1787 of yacc.c */ -#line 983 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } +#line 984 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2719 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 175: -/* Line 1787 of yacc.c */ -#line 985 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } +#line 986 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); } +#line 2725 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 182: -/* Line 1787 of yacc.c */ -#line 1006 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[(2) - (2)].Attr_val_fifo)); } +#line 1007 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); } +#line 2731 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 183: -/* Line 1787 of yacc.c */ -#line 1011 "../../ntpd/ntp_parser.y" +#line 1012 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2740 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 184: -/* Line 1787 of yacc.c */ -#line 1016 "../../ntpd/ntp_parser.y" +#line 1017 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2749 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 185: -/* Line 1787 of yacc.c */ -#line 1024 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } +#line 1025 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 2755 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 189: -/* Line 1787 of yacc.c */ -#line 1040 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } +#line 1041 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); } +#line 2761 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 190: -/* Line 1787 of yacc.c */ -#line 1042 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } +#line 1043 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); } +#line 2767 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 191: -/* Line 1787 of yacc.c */ -#line 1047 "../../ntpd/ntp_parser.y" +#line 1048 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2776 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 192: -/* Line 1787 of yacc.c */ -#line 1052 "../../ntpd/ntp_parser.y" +#line 1053 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2785 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 193: -/* Line 1787 of yacc.c */ -#line 1060 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } +#line 1061 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } +#line 2791 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 194: -/* Line 1787 of yacc.c */ -#line 1062 "../../ntpd/ntp_parser.y" +#line 1063 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { - (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); + (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); } else { char err_str[128]; (yyval.Attr_val) = NULL; snprintf(err_str, sizeof(err_str), "enable/disable %s remote configuration ignored", - keyword((yyvsp[(1) - (1)].Integer))); + keyword((yyvsp[0].Integer))); yyerror(err_str); } } +#line 2809 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 206: -/* Line 1787 of yacc.c */ -#line 1100 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[(2) - (2)].Attr_val_fifo)); } + case 207: +#line 1102 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); } +#line 2815 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 207: -/* Line 1787 of yacc.c */ -#line 1105 "../../ntpd/ntp_parser.y" + case 208: +#line 1107 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2824 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 208: -/* Line 1787 of yacc.c */ -#line 1110 "../../ntpd/ntp_parser.y" + case 209: +#line 1112 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 2833 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 209: -/* Line 1787 of yacc.c */ -#line 1118 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } + case 210: +#line 1120 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); } +#line 2839 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 222: -/* Line 1787 of yacc.c */ -#line 1143 "../../ntpd/ntp_parser.y" + case 223: +#line 1145 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; - av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); + av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); APPEND_G_FIFO(cfgt.vars, av); } +#line 2850 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 223: -/* Line 1787 of yacc.c */ -#line 1150 "../../ntpd/ntp_parser.y" + case 224: +#line 1152 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; - av = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); + av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); APPEND_G_FIFO(cfgt.vars, av); } +#line 2861 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 224: -/* Line 1787 of yacc.c */ -#line 1157 "../../ntpd/ntp_parser.y" + case 225: +#line 1159 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { attr_val *av; - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); + av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); APPEND_G_FIFO(cfgt.vars, av); } +#line 2872 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 225: -/* Line 1787 of yacc.c */ -#line 1164 "../../ntpd/ntp_parser.y" + case 226: +#line 1166 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { char error_text[64]; attr_val *av; if (lex_from_file()) { - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); + av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); APPEND_G_FIFO(cfgt.vars, av); } else { - YYFREE((yyvsp[(2) - (2)].String)); + YYFREE((yyvsp[0].String)); snprintf(error_text, sizeof(error_text), "%s remote config ignored", - keyword((yyvsp[(1) - (2)].Integer))); + keyword((yyvsp[-1].Integer))); yyerror(error_text); } } +#line 2892 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 226: -/* Line 1787 of yacc.c */ -#line 1180 "../../ntpd/ntp_parser.y" + case 227: +#line 1182 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (!lex_from_file()) { - YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */ + YYFREE((yyvsp[-1].String)); /* avoid leak */ yyerror("remote includefile ignored"); break; } @@ -3131,108 +2903,108 @@ yyreduce: fprintf(stderr, "getconfig: Maximum include file level exceeded.\n"); msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded."); } else { - const char * path = FindConfig((yyvsp[(2) - (3)].String)); /* might return $2! */ + const char * path = FindConfig((yyvsp[-1].String)); /* might return $2! */ if (!lex_push_file(path, "r")) { fprintf(stderr, "getconfig: Couldn't open <%s>\n", path); msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", path); } } - YYFREE((yyvsp[(2) - (3)].String)); /* avoid leak */ + YYFREE((yyvsp[-1].String)); /* avoid leak */ } - break; - - case 227: -/* Line 1787 of yacc.c */ -#line 1199 "../../ntpd/ntp_parser.y" - { lex_flush_stack(); } +#line 2915 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 228: -/* Line 1787 of yacc.c */ -#line 1201 "../../ntpd/ntp_parser.y" - { /* see drift_parm below for actions */ } +#line 1201 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { lex_flush_stack(); } +#line 2921 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 229: -/* Line 1787 of yacc.c */ -#line 1203 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[(2) - (2)].Attr_val_fifo)); } +#line 1203 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { /* see drift_parm below for actions */ } +#line 2927 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 230: -/* Line 1787 of yacc.c */ -#line 1205 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[(2) - (2)].String_fifo)); } +#line 1205 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); } +#line 2933 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 231: -/* Line 1787 of yacc.c */ -#line 1207 "../../ntpd/ntp_parser.y" - { APPEND_G_FIFO(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); } +#line 1207 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); } +#line 2939 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 232: -/* Line 1787 of yacc.c */ -#line 1209 "../../ntpd/ntp_parser.y" +#line 1209 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); } +#line 2945 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ + break; + + case 233: +#line 1211 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { addr_opts_node *aon; - aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); + aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo)); APPEND_G_FIFO(cfgt.trap, aon); } +#line 2956 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 233: -/* Line 1787 of yacc.c */ -#line 1216 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[(2) - (2)].Attr_val_fifo)); } + case 234: +#line 1218 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); } +#line 2962 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 238: -/* Line 1787 of yacc.c */ -#line 1231 "../../ntpd/ntp_parser.y" + case 239: +#line 1233 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { #ifndef LEAP_SMEAR yyerror("Built without LEAP_SMEAR support."); #endif } +#line 2972 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 244: -/* Line 1787 of yacc.c */ -#line 1251 "../../ntpd/ntp_parser.y" + case 245: +#line 1253 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { attr_val *av; - av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String)); + av = create_attr_sval(T_Driftfile, (yyvsp[0].String)); APPEND_G_FIFO(cfgt.vars, av); } else { - YYFREE((yyvsp[(1) - (1)].String)); + YYFREE((yyvsp[0].String)); yyerror("driftfile remote configuration ignored"); } } +#line 2987 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 245: -/* Line 1787 of yacc.c */ -#line 1262 "../../ntpd/ntp_parser.y" + case 246: +#line 1264 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { attr_val *av; - av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String)); + av = create_attr_sval(T_Driftfile, (yyvsp[-1].String)); APPEND_G_FIFO(cfgt.vars, av); - av = create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double)); + av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double)); APPEND_G_FIFO(cfgt.vars, av); } else { - YYFREE((yyvsp[(1) - (2)].String)); + YYFREE((yyvsp[-1].String)); yyerror("driftfile remote configuration ignored"); } } +#line 3004 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 246: -/* Line 1787 of yacc.c */ -#line 1275 "../../ntpd/ntp_parser.y" + case 247: +#line 1277 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { if (lex_from_file()) { attr_val *av; @@ -3242,386 +3014,386 @@ yyreduce: yyerror("driftfile remote configuration ignored"); } } +#line 3018 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 247: -/* Line 1787 of yacc.c */ -#line 1288 "../../ntpd/ntp_parser.y" - { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); } + case 248: +#line 1290 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); } +#line 3024 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 249: -/* Line 1787 of yacc.c */ -#line 1294 "../../ntpd/ntp_parser.y" + case 250: +#line 1296 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Integer) = 0; } +#line 3030 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 250: -/* Line 1787 of yacc.c */ -#line 1299 "../../ntpd/ntp_parser.y" + case 251: +#line 1301 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; } +#line 3036 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 251: -/* Line 1787 of yacc.c */ -#line 1301 "../../ntpd/ntp_parser.y" + case 252: +#line 1303 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 3045 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 252: -/* Line 1787 of yacc.c */ -#line 1309 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } + case 253: +#line 1311 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); } +#line 3051 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 253: -/* Line 1787 of yacc.c */ -#line 1311 "../../ntpd/ntp_parser.y" + case 254: +#line 1313 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), estrdup((yyvsp[(2) - (2)].Address_node)->address)); - destroy_address_node((yyvsp[(2) - (2)].Address_node)); + (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address)); + destroy_address_node((yyvsp[0].Address_node)); } +#line 3060 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 254: -/* Line 1787 of yacc.c */ -#line 1319 "../../ntpd/ntp_parser.y" + case 255: +#line 1321 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 3069 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 255: -/* Line 1787 of yacc.c */ -#line 1324 "../../ntpd/ntp_parser.y" + case 256: +#line 1326 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 3078 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 256: -/* Line 1787 of yacc.c */ -#line 1332 "../../ntpd/ntp_parser.y" + case 257: +#line 1334 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { char prefix; char * type; - switch ((yyvsp[(1) - (1)].String)[0]) { + switch ((yyvsp[0].String)[0]) { case '+': case '-': case '=': - prefix = (yyvsp[(1) - (1)].String)[0]; - type = (yyvsp[(1) - (1)].String) + 1; + prefix = (yyvsp[0].String)[0]; + type = (yyvsp[0].String) + 1; break; default: prefix = '='; - type = (yyvsp[(1) - (1)].String); + type = (yyvsp[0].String); } (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type)); - YYFREE((yyvsp[(1) - (1)].String)); + YYFREE((yyvsp[0].String)); } +#line 3104 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 257: -/* Line 1787 of yacc.c */ -#line 1357 "../../ntpd/ntp_parser.y" + case 258: +#line 1359 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { nic_rule_node *nrn; - nrn = create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer)); + nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer)); APPEND_G_FIFO(cfgt.nic_rules, nrn); } +#line 3115 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 258: -/* Line 1787 of yacc.c */ -#line 1364 "../../ntpd/ntp_parser.y" + case 259: +#line 1366 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { nic_rule_node *nrn; - nrn = create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer)); + nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer)); APPEND_G_FIFO(cfgt.nic_rules, nrn); } - break; - - case 268: -/* Line 1787 of yacc.c */ -#line 1392 "../../ntpd/ntp_parser.y" - { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[(2) - (2)].Int_fifo)); } +#line 3126 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 269: -/* Line 1787 of yacc.c */ -#line 1397 "../../ntpd/ntp_parser.y" - { - (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo); - APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); - } +#line 1394 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); } +#line 3132 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 270: -/* Line 1787 of yacc.c */ -#line 1402 "../../ntpd/ntp_parser.y" +#line 1399 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Int_fifo) = NULL; - APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer))); + (yyval.Int_fifo) = (yyvsp[-1].Int_fifo); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } +#line 3141 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 278: -/* Line 1787 of yacc.c */ -#line 1426 "../../ntpd/ntp_parser.y" + case 271: +#line 1404 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + (yyval.Int_fifo) = NULL; + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer))); } +#line 3150 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 279: -/* Line 1787 of yacc.c */ -#line 1431 "../../ntpd/ntp_parser.y" +#line 1428 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(1) - (1)].Integer))); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); } +#line 3159 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 280: -/* Line 1787 of yacc.c */ -#line 1439 "../../ntpd/ntp_parser.y" +#line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer))); } +#line 3168 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 281: -/* Line 1787 of yacc.c */ -#line 1444 "../../ntpd/ntp_parser.y" +#line 1441 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); } +#line 3177 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 282: -/* Line 1787 of yacc.c */ -#line 1452 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[(1) - (1)].Integer)); } +#line 1446 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val)); + } +#line 3186 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 284: -/* Line 1787 of yacc.c */ -#line 1458 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); } + case 283: +#line 1454 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); } +#line 3192 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 285: -/* Line 1787 of yacc.c */ -#line 1463 "../../ntpd/ntp_parser.y" - { - (yyval.String_fifo) = (yyvsp[(1) - (2)].String_fifo); - APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(2) - (2)].String))); - } +#line 1460 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); } +#line 3198 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 286: -/* Line 1787 of yacc.c */ -#line 1468 "../../ntpd/ntp_parser.y" +#line 1465 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.String_fifo) = NULL; - APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(1) - (1)].String))); + (yyval.String_fifo) = (yyvsp[-1].String_fifo); + APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String))); } +#line 3207 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 287: -/* Line 1787 of yacc.c */ -#line 1476 "../../ntpd/ntp_parser.y" +#line 1470 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Address_fifo) = (yyvsp[(1) - (2)].Address_fifo); - APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(2) - (2)].Address_node)); + (yyval.String_fifo) = NULL; + APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String))); } +#line 3216 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 288: -/* Line 1787 of yacc.c */ -#line 1481 "../../ntpd/ntp_parser.y" +#line 1478 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Address_fifo) = NULL; - APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(1) - (1)].Address_node)); + (yyval.Address_fifo) = (yyvsp[-1].Address_fifo); + APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node)); } +#line 3225 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 289: -/* Line 1787 of yacc.c */ -#line 1489 "../../ntpd/ntp_parser.y" +#line 1483 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { + (yyval.Address_fifo) = NULL; + APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node)); + } +#line 3234 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ + break; + + case 290: +#line 1491 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) { + if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) { yyerror("Integer value is not boolean (0 or 1). Assuming 1"); (yyval.Integer) = 1; } else { - (yyval.Integer) = (yyvsp[(1) - (1)].Integer); + (yyval.Integer) = (yyvsp[0].Integer); } } +#line 3247 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 290: -/* Line 1787 of yacc.c */ -#line 1497 "../../ntpd/ntp_parser.y" + case 291: +#line 1499 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Integer) = 1; } +#line 3253 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 291: -/* Line 1787 of yacc.c */ -#line 1498 "../../ntpd/ntp_parser.y" + case 292: +#line 1500 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Integer) = 0; } +#line 3259 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 292: -/* Line 1787 of yacc.c */ -#line 1502 "../../ntpd/ntp_parser.y" - { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); } + case 293: +#line 1504 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Double) = (double)(yyvsp[0].Integer); } +#line 3265 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 294: -/* Line 1787 of yacc.c */ -#line 1513 "../../ntpd/ntp_parser.y" + case 295: +#line 1515 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { sim_node *sn; - sn = create_sim_node((yyvsp[(3) - (5)].Attr_val_fifo), (yyvsp[(4) - (5)].Sim_server_fifo)); + sn = create_sim_node((yyvsp[-2].Attr_val_fifo), (yyvsp[-1].Sim_server_fifo)); APPEND_G_FIFO(cfgt.sim_details, sn); /* Revert from ; to \n for end-of-command */ old_config_style = 1; } +#line 3279 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 295: -/* Line 1787 of yacc.c */ -#line 1530 "../../ntpd/ntp_parser.y" + case 296: +#line 1532 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { old_config_style = 0; } +#line 3285 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 296: -/* Line 1787 of yacc.c */ -#line 1535 "../../ntpd/ntp_parser.y" + case 297: +#line 1537 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } +#line 3294 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 297: -/* Line 1787 of yacc.c */ -#line 1540 "../../ntpd/ntp_parser.y" + case 298: +#line 1542 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } +#line 3303 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 298: -/* Line 1787 of yacc.c */ -#line 1548 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } + case 299: +#line 1550 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } +#line 3309 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 301: -/* Line 1787 of yacc.c */ -#line 1558 "../../ntpd/ntp_parser.y" + case 302: +#line 1560 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Sim_server_fifo) = (yyvsp[(1) - (2)].Sim_server_fifo); - APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(2) - (2)].Sim_server)); + (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo); + APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server)); } +#line 3318 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 302: -/* Line 1787 of yacc.c */ -#line 1563 "../../ntpd/ntp_parser.y" + case 303: +#line 1565 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Sim_server_fifo) = NULL; - APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(1) - (1)].Sim_server)); + APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server)); } - break; - - case 303: -/* Line 1787 of yacc.c */ -#line 1571 "../../ntpd/ntp_parser.y" - { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Sim_script_fifo))); } +#line 3327 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 304: -/* Line 1787 of yacc.c */ -#line 1576 "../../ntpd/ntp_parser.y" - { (yyval.Double) = (yyvsp[(3) - (4)].Double); } +#line 1573 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); } +#line 3333 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 305: -/* Line 1787 of yacc.c */ -#line 1581 "../../ntpd/ntp_parser.y" - { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); } +#line 1578 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Double) = (yyvsp[-1].Double); } +#line 3339 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 306: -/* Line 1787 of yacc.c */ -#line 1586 "../../ntpd/ntp_parser.y" - { - (yyval.Sim_script_fifo) = (yyvsp[(1) - (2)].Sim_script_fifo); - APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(2) - (2)].Sim_script)); - } +#line 1583 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Address_node) = (yyvsp[0].Address_node); } +#line 3345 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 307: -/* Line 1787 of yacc.c */ -#line 1591 "../../ntpd/ntp_parser.y" +#line 1588 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Sim_script_fifo) = NULL; - APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(1) - (1)].Sim_script)); + (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo); + APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script)); } +#line 3354 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 308: -/* Line 1787 of yacc.c */ -#line 1599 "../../ntpd/ntp_parser.y" - { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Attr_val_fifo))); } +#line 1593 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { + (yyval.Sim_script_fifo) = NULL; + APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script)); + } +#line 3363 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; case 309: -/* Line 1787 of yacc.c */ -#line 1604 "../../ntpd/ntp_parser.y" +#line 1601 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); } +#line 3369 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ + break; + + case 310: +#line 1606 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val)); + (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } +#line 3378 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 310: -/* Line 1787 of yacc.c */ -#line 1609 "../../ntpd/ntp_parser.y" + case 311: +#line 1611 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ { (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val)); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val)); } +#line 3387 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; - case 311: -/* Line 1787 of yacc.c */ -#line 1617 "../../ntpd/ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } + case 312: +#line 1619 "../../ntpd/ntp_parser.y" /* yacc.c:1646 */ + { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); } +#line 3393 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ break; -/* Line 1787 of yacc.c */ -#line 3625 "ntp_parser.c" +#line 3397 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3643,7 +3415,7 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -3658,9 +3430,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -3711,20 +3483,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -3743,7 +3515,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -3756,29 +3528,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -3829,14 +3601,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -3847,13 +3619,9 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -/* Line 2050 of yacc.c */ -#line 1628 "../../ntpd/ntp_parser.y" +#line 1630 "../../ntpd/ntp_parser.y" /* yacc.c:1906 */ void diff --git a/contrib/ntp/ntpd/ntp_parser.h b/contrib/ntp/ntpd/ntp_parser.h index ae729b5..3409e25 100644 --- a/contrib/ntp/ntpd/ntp_parser.h +++ b/contrib/ntp/ntpd/ntp_parser.h @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_NTP_PARSER_H_INCLUDED -# define YY_YY_NTP_PARSER_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_Y_TAB_H_INCLUDED +# define YY_YY_Y_TAB_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,207 +40,207 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - T_Abbrev = 258, - T_Age = 259, - T_All = 260, - T_Allan = 261, - T_Allpeers = 262, - T_Auth = 263, - T_Autokey = 264, - T_Automax = 265, - T_Average = 266, - T_Bclient = 267, - T_Beacon = 268, - T_Broadcast = 269, - T_Broadcastclient = 270, - T_Broadcastdelay = 271, - T_Burst = 272, - T_Calibrate = 273, - T_Ceiling = 274, - T_Clockstats = 275, - T_Cohort = 276, - T_ControlKey = 277, - T_Crypto = 278, - T_Cryptostats = 279, - T_Ctl = 280, - T_Day = 281, - T_Default = 282, - T_Digest = 283, - T_Disable = 284, - T_Discard = 285, - T_Dispersion = 286, - T_Double = 287, - T_Driftfile = 288, - T_Drop = 289, - T_Dscp = 290, - T_Ellipsis = 291, - T_Enable = 292, - T_End = 293, - T_False = 294, - T_File = 295, - T_Filegen = 296, - T_Filenum = 297, - T_Flag1 = 298, - T_Flag2 = 299, - T_Flag3 = 300, - T_Flag4 = 301, - T_Flake = 302, - T_Floor = 303, - T_Freq = 304, - T_Fudge = 305, - T_Host = 306, - T_Huffpuff = 307, - T_Iburst = 308, - T_Ident = 309, - T_Ignore = 310, - T_Incalloc = 311, - T_Incmem = 312, - T_Initalloc = 313, - T_Initmem = 314, - T_Includefile = 315, - T_Integer = 316, - T_Interface = 317, - T_Intrange = 318, - T_Io = 319, - T_Ipv4 = 320, - T_Ipv4_flag = 321, - T_Ipv6 = 322, - T_Ipv6_flag = 323, - T_Kernel = 324, - T_Key = 325, - T_Keys = 326, - T_Keysdir = 327, - T_Kod = 328, - T_Mssntp = 329, - T_Leapfile = 330, - T_Leapsmearinterval = 331, - T_Limited = 332, - T_Link = 333, - T_Listen = 334, - T_Logconfig = 335, - T_Logfile = 336, - T_Loopstats = 337, - T_Lowpriotrap = 338, - T_Manycastclient = 339, - T_Manycastserver = 340, - T_Mask = 341, - T_Maxage = 342, - T_Maxclock = 343, - T_Maxdepth = 344, - T_Maxdist = 345, - T_Maxmem = 346, - T_Maxpoll = 347, - T_Mdnstries = 348, - T_Mem = 349, - T_Memlock = 350, - T_Minclock = 351, - T_Mindepth = 352, - T_Mindist = 353, - T_Minimum = 354, - T_Minpoll = 355, - T_Minsane = 356, - T_Mode = 357, - T_Mode7 = 358, - T_Monitor = 359, - T_Month = 360, - T_Mru = 361, - T_Multicastclient = 362, - T_Nic = 363, - T_Nolink = 364, - T_Nomodify = 365, - T_Nomrulist = 366, - T_None = 367, - T_Nonvolatile = 368, - T_Nopeer = 369, - T_Noquery = 370, - T_Noselect = 371, - T_Noserve = 372, - T_Notrap = 373, - T_Notrust = 374, - T_Ntp = 375, - T_Ntpport = 376, - T_NtpSignDsocket = 377, - T_Orphan = 378, - T_Orphanwait = 379, - T_Panic = 380, - T_Peer = 381, - T_Peerstats = 382, - T_Phone = 383, - T_Pid = 384, - T_Pidfile = 385, - T_Pool = 386, - T_Port = 387, - T_Preempt = 388, - T_Prefer = 389, - T_Protostats = 390, - T_Pw = 391, - T_Randfile = 392, - T_Rawstats = 393, - T_Refid = 394, - T_Requestkey = 395, - T_Reset = 396, - T_Restrict = 397, - T_Revoke = 398, - T_Rlimit = 399, - T_Saveconfigdir = 400, - T_Server = 401, - T_Setvar = 402, - T_Source = 403, - T_Stacksize = 404, - T_Statistics = 405, - T_Stats = 406, - T_Statsdir = 407, - T_Step = 408, - T_Stepback = 409, - T_Stepfwd = 410, - T_Stepout = 411, - T_Stratum = 412, - T_String = 413, - T_Sys = 414, - T_Sysstats = 415, - T_Tick = 416, - T_Time1 = 417, - T_Time2 = 418, - T_Timer = 419, - T_Timingstats = 420, - T_Tinker = 421, - T_Tos = 422, - T_Trap = 423, - T_True = 424, - T_Trustedkey = 425, - T_Ttl = 426, - T_Type = 427, - T_U_int = 428, - T_UEcrypto = 429, - T_UEcryptonak = 430, - T_UEdigest = 431, - T_Unconfig = 432, - T_Unpeer = 433, - T_Version = 434, - T_WanderThreshold = 435, - T_Week = 436, - T_Wildcard = 437, - T_Xleave = 438, - T_Year = 439, - T_Flag = 440, - T_EOC = 441, - T_Simulate = 442, - T_Beep_Delay = 443, - T_Sim_Duration = 444, - T_Server_Offset = 445, - T_Duration = 446, - T_Freq_Offset = 447, - T_Wander = 448, - T_Jitter = 449, - T_Prop_Delay = 450, - T_Proc_Delay = 451 - }; + enum yytokentype + { + T_Abbrev = 258, + T_Age = 259, + T_All = 260, + T_Allan = 261, + T_Allpeers = 262, + T_Auth = 263, + T_Autokey = 264, + T_Automax = 265, + T_Average = 266, + T_Bclient = 267, + T_Beacon = 268, + T_Broadcast = 269, + T_Broadcastclient = 270, + T_Broadcastdelay = 271, + T_Burst = 272, + T_Calibrate = 273, + T_Ceiling = 274, + T_Clockstats = 275, + T_Cohort = 276, + T_ControlKey = 277, + T_Crypto = 278, + T_Cryptostats = 279, + T_Ctl = 280, + T_Day = 281, + T_Default = 282, + T_Digest = 283, + T_Disable = 284, + T_Discard = 285, + T_Dispersion = 286, + T_Double = 287, + T_Driftfile = 288, + T_Drop = 289, + T_Dscp = 290, + T_Ellipsis = 291, + T_Enable = 292, + T_End = 293, + T_False = 294, + T_File = 295, + T_Filegen = 296, + T_Filenum = 297, + T_Flag1 = 298, + T_Flag2 = 299, + T_Flag3 = 300, + T_Flag4 = 301, + T_Flake = 302, + T_Floor = 303, + T_Freq = 304, + T_Fudge = 305, + T_Host = 306, + T_Huffpuff = 307, + T_Iburst = 308, + T_Ident = 309, + T_Ignore = 310, + T_Incalloc = 311, + T_Incmem = 312, + T_Initalloc = 313, + T_Initmem = 314, + T_Includefile = 315, + T_Integer = 316, + T_Interface = 317, + T_Intrange = 318, + T_Io = 319, + T_Ipv4 = 320, + T_Ipv4_flag = 321, + T_Ipv6 = 322, + T_Ipv6_flag = 323, + T_Kernel = 324, + T_Key = 325, + T_Keys = 326, + T_Keysdir = 327, + T_Kod = 328, + T_Mssntp = 329, + T_Leapfile = 330, + T_Leapsmearinterval = 331, + T_Limited = 332, + T_Link = 333, + T_Listen = 334, + T_Logconfig = 335, + T_Logfile = 336, + T_Loopstats = 337, + T_Lowpriotrap = 338, + T_Manycastclient = 339, + T_Manycastserver = 340, + T_Mask = 341, + T_Maxage = 342, + T_Maxclock = 343, + T_Maxdepth = 344, + T_Maxdist = 345, + T_Maxmem = 346, + T_Maxpoll = 347, + T_Mdnstries = 348, + T_Mem = 349, + T_Memlock = 350, + T_Minclock = 351, + T_Mindepth = 352, + T_Mindist = 353, + T_Minimum = 354, + T_Minpoll = 355, + T_Minsane = 356, + T_Mode = 357, + T_Mode7 = 358, + T_Monitor = 359, + T_Month = 360, + T_Mru = 361, + T_Multicastclient = 362, + T_Nic = 363, + T_Nolink = 364, + T_Nomodify = 365, + T_Nomrulist = 366, + T_None = 367, + T_Nonvolatile = 368, + T_Nopeer = 369, + T_Noquery = 370, + T_Noselect = 371, + T_Noserve = 372, + T_Notrap = 373, + T_Notrust = 374, + T_Ntp = 375, + T_Ntpport = 376, + T_NtpSignDsocket = 377, + T_Orphan = 378, + T_Orphanwait = 379, + T_PCEdigest = 380, + T_Panic = 381, + T_Peer = 382, + T_Peerstats = 383, + T_Phone = 384, + T_Pid = 385, + T_Pidfile = 386, + T_Pool = 387, + T_Port = 388, + T_Preempt = 389, + T_Prefer = 390, + T_Protostats = 391, + T_Pw = 392, + T_Randfile = 393, + T_Rawstats = 394, + T_Refid = 395, + T_Requestkey = 396, + T_Reset = 397, + T_Restrict = 398, + T_Revoke = 399, + T_Rlimit = 400, + T_Saveconfigdir = 401, + T_Server = 402, + T_Setvar = 403, + T_Source = 404, + T_Stacksize = 405, + T_Statistics = 406, + T_Stats = 407, + T_Statsdir = 408, + T_Step = 409, + T_Stepback = 410, + T_Stepfwd = 411, + T_Stepout = 412, + T_Stratum = 413, + T_String = 414, + T_Sys = 415, + T_Sysstats = 416, + T_Tick = 417, + T_Time1 = 418, + T_Time2 = 419, + T_Timer = 420, + T_Timingstats = 421, + T_Tinker = 422, + T_Tos = 423, + T_Trap = 424, + T_True = 425, + T_Trustedkey = 426, + T_Ttl = 427, + T_Type = 428, + T_U_int = 429, + T_UEcrypto = 430, + T_UEcryptonak = 431, + T_UEdigest = 432, + T_Unconfig = 433, + T_Unpeer = 434, + T_Version = 435, + T_WanderThreshold = 436, + T_Week = 437, + T_Wildcard = 438, + T_Xleave = 439, + T_Year = 440, + T_Flag = 441, + T_EOC = 442, + T_Simulate = 443, + T_Beep_Delay = 444, + T_Sim_Duration = 445, + T_Server_Offset = 446, + T_Duration = 447, + T_Freq_Offset = 448, + T_Wander = 449, + T_Jitter = 450, + T_Prop_Delay = 451, + T_Proc_Delay = 452 + }; #endif /* Tokens. */ #define T_Abbrev 258 @@ -365,86 +365,86 @@ extern int yydebug; #define T_NtpSignDsocket 377 #define T_Orphan 378 #define T_Orphanwait 379 -#define T_Panic 380 -#define T_Peer 381 -#define T_Peerstats 382 -#define T_Phone 383 -#define T_Pid 384 -#define T_Pidfile 385 -#define T_Pool 386 -#define T_Port 387 -#define T_Preempt 388 -#define T_Prefer 389 -#define T_Protostats 390 -#define T_Pw 391 -#define T_Randfile 392 -#define T_Rawstats 393 -#define T_Refid 394 -#define T_Requestkey 395 -#define T_Reset 396 -#define T_Restrict 397 -#define T_Revoke 398 -#define T_Rlimit 399 -#define T_Saveconfigdir 400 -#define T_Server 401 -#define T_Setvar 402 -#define T_Source 403 -#define T_Stacksize 404 -#define T_Statistics 405 -#define T_Stats 406 -#define T_Statsdir 407 -#define T_Step 408 -#define T_Stepback 409 -#define T_Stepfwd 410 -#define T_Stepout 411 -#define T_Stratum 412 -#define T_String 413 -#define T_Sys 414 -#define T_Sysstats 415 -#define T_Tick 416 -#define T_Time1 417 -#define T_Time2 418 -#define T_Timer 419 -#define T_Timingstats 420 -#define T_Tinker 421 -#define T_Tos 422 -#define T_Trap 423 -#define T_True 424 -#define T_Trustedkey 425 -#define T_Ttl 426 -#define T_Type 427 -#define T_U_int 428 -#define T_UEcrypto 429 -#define T_UEcryptonak 430 -#define T_UEdigest 431 -#define T_Unconfig 432 -#define T_Unpeer 433 -#define T_Version 434 -#define T_WanderThreshold 435 -#define T_Week 436 -#define T_Wildcard 437 -#define T_Xleave 438 -#define T_Year 439 -#define T_Flag 440 -#define T_EOC 441 -#define T_Simulate 442 -#define T_Beep_Delay 443 -#define T_Sim_Duration 444 -#define T_Server_Offset 445 -#define T_Duration 446 -#define T_Freq_Offset 447 -#define T_Wander 448 -#define T_Jitter 449 -#define T_Prop_Delay 450 -#define T_Proc_Delay 451 - - +#define T_PCEdigest 380 +#define T_Panic 381 +#define T_Peer 382 +#define T_Peerstats 383 +#define T_Phone 384 +#define T_Pid 385 +#define T_Pidfile 386 +#define T_Pool 387 +#define T_Port 388 +#define T_Preempt 389 +#define T_Prefer 390 +#define T_Protostats 391 +#define T_Pw 392 +#define T_Randfile 393 +#define T_Rawstats 394 +#define T_Refid 395 +#define T_Requestkey 396 +#define T_Reset 397 +#define T_Restrict 398 +#define T_Revoke 399 +#define T_Rlimit 400 +#define T_Saveconfigdir 401 +#define T_Server 402 +#define T_Setvar 403 +#define T_Source 404 +#define T_Stacksize 405 +#define T_Statistics 406 +#define T_Stats 407 +#define T_Statsdir 408 +#define T_Step 409 +#define T_Stepback 410 +#define T_Stepfwd 411 +#define T_Stepout 412 +#define T_Stratum 413 +#define T_String 414 +#define T_Sys 415 +#define T_Sysstats 416 +#define T_Tick 417 +#define T_Time1 418 +#define T_Time2 419 +#define T_Timer 420 +#define T_Timingstats 421 +#define T_Tinker 422 +#define T_Tos 423 +#define T_Trap 424 +#define T_True 425 +#define T_Trustedkey 426 +#define T_Ttl 427 +#define T_Type 428 +#define T_U_int 429 +#define T_UEcrypto 430 +#define T_UEcryptonak 431 +#define T_UEdigest 432 +#define T_Unconfig 433 +#define T_Unpeer 434 +#define T_Version 435 +#define T_WanderThreshold 436 +#define T_Week 437 +#define T_Wildcard 438 +#define T_Xleave 439 +#define T_Year 440 +#define T_Flag 441 +#define T_EOC 442 +#define T_Simulate 443 +#define T_Beep_Delay 444 +#define T_Sim_Duration 445 +#define T_Server_Offset 446 +#define T_Duration 447 +#define T_Freq_Offset 448 +#define T_Wander 449 +#define T_Jitter 450 +#define T_Prop_Delay 451 +#define T_Proc_Delay 452 +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE + +union YYSTYPE { -/* Line 2053 of yacc.c */ -#line 51 "../../ntpd/ntp_parser.y" +#line 51 "../../ntpd/ntp_parser.y" /* yacc.c:1909 */ char * String; double Double; @@ -463,29 +463,17 @@ typedef union YYSTYPE script_info * Sim_script; script_info_fifo * Sim_script_fifo; +#line 467 "../../ntpd/ntp_parser.h" /* yacc.c:1909 */ +}; -/* Line 2053 of yacc.c */ -#line 469 "ntp_parser.h" -} YYSTYPE; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_NTP_PARSER_H_INCLUDED */ +#endif /* !YY_YY_Y_TAB_H_INCLUDED */ diff --git a/contrib/ntp/ntpd/ntp_proto.c b/contrib/ntp/ntpd/ntp_proto.c index 713a0c2..513b99f 100644 --- a/contrib/ntp/ntpd/ntp_proto.c +++ b/contrib/ntp/ntpd/ntp_proto.c @@ -165,7 +165,7 @@ u_long sys_limitrejected; /* rate exceeded */ u_long sys_kodsent; /* KoD sent */ /* - * Mechanism knobs: how soon do we unpeer()? + * Mechanism knobs: how soon do we peer_clear() or unpeer()? * * The default way is "on-receipt". If this was a packet from a * well-behaved source, on-receipt will offer the fastest recovery. @@ -173,6 +173,7 @@ u_long sys_kodsent; /* KoD sent */ * for a bad-guy to DoS us. So look and see what bites you harder * and choose according to your environment. */ +int peer_clear_digest_early = 1; /* bad digest (TEST5) and Autokey */ int unpeer_crypto_early = 1; /* bad crypto (TEST9) */ int unpeer_crypto_nak_early = 1; /* crypto_NAK (TEST5) */ int unpeer_digest_early = 1; /* bad digest (TEST5) */ @@ -277,10 +278,12 @@ valid_NAK( u_char hismode ) { - int base_packet_length = MIN_V4_PKT_LEN; - int remainder_size; - struct pkt *rpkt; - int keyid; + int base_packet_length = MIN_V4_PKT_LEN; + int remainder_size; + struct pkt * rpkt; + int keyid; + l_fp p_org; /* origin timestamp */ + const l_fp * myorg; /* selected peer origin */ /* * Check to see if there is something beyond the basic packet @@ -305,7 +308,7 @@ valid_NAK( hismode != MODE_ACTIVE && hismode != MODE_PASSIVE ) { - return (INVALIDNAK); + return INVALIDNAK; } /* @@ -314,18 +317,35 @@ valid_NAK( rpkt = &rbufp->recv_pkt; keyid = ntohl(((u_int32 *)rpkt)[base_packet_length / 4]); if (keyid != 0) { - return (INVALIDNAK); + return INVALIDNAK; } /* * Only valid if peer uses a key */ - if (peer->keyid > 0 || peer->flags & FLAG_SKEY) { - return (VALIDNAK); + if (!peer || !peer->keyid || !(peer->flags & FLAG_SKEY)) { + return INVALIDNAK; } - else { - return (INVALIDNAK); + + /* + * The ORIGIN must match, or this cannot be a valid NAK, either. + */ + NTOHL_FP(&rpkt->org, &p_org); + if (peer->flip > 0) + myorg = &peer->borg; + else + myorg = &peer->aorg; + + if (L_ISZERO(&p_org) || + L_ISZERO( myorg) || + !L_ISEQU(&p_org, myorg)) { + return INVALIDNAK; } + + /* If we ever passed all that checks, we should be safe. Well, + * as safe as we can ever be with an unauthenticated crypto-nak. + */ + return VALIDNAK; } @@ -568,7 +588,7 @@ receive( int kissCode = NOKISS; /* Kiss Code */ int has_mac; /* length of MAC field */ int authlen; /* offset of MAC field */ - int is_authentic = 0; /* cryptosum ok */ + int is_authentic = AUTH_NONE; /* cryptosum ok */ int crypto_nak_test; /* result of crypto-NAK check */ int retcode = AM_NOMATCH; /* match code */ keyid_t skeyid = 0; /* key IDs */ @@ -616,6 +636,8 @@ receive( hisleap = PKT_LEAP(pkt->li_vn_mode); hismode = (int)PKT_MODE(pkt->li_vn_mode); hisstratum = PKT_TO_STRATUM(pkt->stratum); + INSIST(0 != hisstratum); + if (restrict_mask & RES_IGNORE) { sys_restricted++; return; /* ignore everything */ @@ -1512,7 +1534,7 @@ receive( */ if (L_ISZERO(&p_xmt)) { peer->flash |= TEST3; /* unsynch */ - if (0 == hisstratum) { /* KoD packet */ + if (STRATUM_UNSPEC == hisstratum) { /* KoD packet */ peer->bogusorg++; /* for TEST2 or TEST3 */ msyslog(LOG_INFO, "receive: Unexpected zero transmit timestamp in KoD from %s", @@ -1531,17 +1553,22 @@ receive( return; /* - * If this is a broadcast mode packet, skip further checking. If - * an initial volley, bail out now and let the client do its - * stuff. If the origin timestamp is nonzero, this is an - * interleaved broadcast. so restart the protocol. + * If this is a broadcast mode packet, make sure hisstratum + * is appropriate. Don't do anything else here - we wait to + * see if this is an interleave broadcast packet until after + * we've validated the MAC that SHOULD be provided. + * + * hisstratum should never be 0. + * If hisstratum is 15, then we'll advertise as UNSPEC but + * at least we'll be able to sync with the broadcast server. */ } else if (hismode == MODE_BROADCAST) { - if (!L_ISZERO(&p_org) && !(peer->flags & FLAG_XB)) { - peer->flags |= FLAG_XB; - peer->aorg = p_xmt; - peer->borg = rbufp->recv_time; - report_event(PEVNT_XLEAVE, peer, NULL); + if ( 0 == hisstratum + || STRATUM_UNSPEC <= hisstratum) { + /* Is this a ++sys_declined or ??? */ + msyslog(LOG_INFO, + "receive: Unexpected stratum (%d) in broadcast from %s", + hisstratum, ntoa(&peer->srcadr)); return; } @@ -1558,7 +1585,7 @@ receive( * (nonzero) org, rec, and xmt timestamps set to the xmt timestamp * that we have previously sent out. Watch interleave mode. */ - } else if (0 == hisstratum) { + } else if (STRATUM_UNSPEC == hisstratum) { DEBUG_INSIST(!L_ISZERO(&p_xmt)); if ( L_ISZERO(&p_org) /* We checked p_xmt above */ || L_ISZERO(&p_rec)) { @@ -1617,6 +1644,7 @@ receive( */ } else if (peer->flip == 0) { INSIST(0 != hisstratum); + INSIST(STRATUM_UNSPEC != hisstratum); if (0) { } else if (L_ISZERO(&p_org)) { msyslog(LOG_INFO, @@ -1654,8 +1682,9 @@ receive( /* * Check for valid nonzero timestamp fields. */ - } else if (L_ISZERO(&p_org) || L_ISZERO(&p_rec) || - L_ISZERO(&peer->dst)) { + } else if ( L_ISZERO(&p_org) + || L_ISZERO(&p_rec) + || L_ISZERO(&peer->dst)) { peer->flash |= TEST3; /* unsynch */ /* @@ -1671,6 +1700,8 @@ receive( return; /* Bogus packet, we are done */ } + /**/ + /* * If this is a crypto_NAK, the server cannot authenticate a * client packet. The server might have just changed keys. Clear @@ -1687,8 +1718,9 @@ receive( return; } #ifdef AUTOKEY - if (peer->crypto) + if (peer->crypto) { peer_clear(peer, "AUTH"); + } #endif /* AUTOKEY */ return; @@ -1702,28 +1734,78 @@ receive( */ } else if (!AUTH(peer->keyid || has_mac || (restrict_mask & RES_DONTTRUST), is_authentic)) { + + if (peer->flash & PKT_TEST_MASK) { + msyslog(LOG_INFO, + "receive: Bad auth in packet with bad timestamps from %s denied - spoof?", + ntoa(&peer->srcadr)); + return; + } + report_event(PEVNT_AUTH, peer, "digest"); peer->flash |= TEST5; /* bad auth */ peer->badauth++; if ( has_mac - && (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE)) + && ( hismode == MODE_ACTIVE + || hismode == MODE_PASSIVE)) fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask); if (peer->flags & FLAG_PREEMPT) { if (unpeer_digest_early) { unpeer(peer); } - return; } #ifdef AUTOKEY - if (peer->crypto) + else if (peer_clear_digest_early && peer->crypto) { peer_clear(peer, "AUTH"); + } #endif /* AUTOKEY */ return; } /* - * Update the state variables. + * For broadcast packets: + * + * HMS: This next line never made much sense to me, even + * when it was up higher: + * If an initial volley, bail out now and let the + * client do its stuff. + * + * If the packet has not failed authentication, then + * - if the origin timestamp is nonzero this is an + * interleaved broadcast, so restart the protocol. + * - else, this is not an interleaved broadcast packet. */ + if (hismode == MODE_BROADCAST) { + if ( is_authentic == AUTH_OK + || is_authentic == AUTH_NONE) { + if (!L_ISZERO(&p_org)) { + if (!(peer->flags & FLAG_XB)) { + msyslog(LOG_INFO, + "receive: Broadcast server at %s is in interleave mode", + ntoa(&peer->srcadr)); + peer->flags |= FLAG_XB; + peer->aorg = p_xmt; + peer->borg = rbufp->recv_time; + report_event(PEVNT_XLEAVE, peer, NULL); + return; + } + } else if (peer->flags & FLAG_XB) { + msyslog(LOG_INFO, + "receive: Broadcast server at %s is no longer in interleave mode", + ntoa(&peer->srcadr)); + peer->flags &= ~FLAG_XB; + } + } else { + msyslog(LOG_INFO, + "receive: Bad broadcast auth (%d) from %s", + is_authentic, ntoa(&peer->srcadr)); + } + } + + + /* + ** Update the state variables. + */ if (peer->flip == 0) { if (hismode != MODE_BROADCAST) peer->rec = p_xmt; @@ -1766,6 +1848,12 @@ receive( return; /* Drop any other kiss code packets */ } + + /* + * XXX + */ + + /* * If: * - this is a *cast (uni-, broad-, or m-) server packet @@ -1963,9 +2051,9 @@ receive( /* - * process_packet - Packet Procedure, a la Section 3.4.4 of the - * specification. Or almost, at least. If we're in here we have a - * reasonable expectation that we will be having a long term + * process_packet - Packet Procedure, a la Section 3.4.4 of RFC-1305 + * Or almost, at least. If we're in here we have a reasonable + * expectation that we will be having a long term * relationship with this host. */ void @@ -1985,8 +2073,10 @@ process_packet( double etemp, ftemp, td; #endif /* ASSYM */ +#if 0 sys_processed++; peer->processed++; +#endif p_del = FPTOD(NTOHS_FP(pkt->rootdelay)); p_offset = 0; p_disp = FPTOD(NTOHS_FP(pkt->rootdisp)); @@ -1999,6 +2089,39 @@ process_packet( pversion = PKT_VERSION(pkt->li_vn_mode); pstratum = PKT_TO_STRATUM(pkt->stratum); + /**/ + + /**/ + + /* + * Verify the server is synchronized; that is, the leap bits, + * stratum and root distance are valid. + */ + if ( pleap == LEAP_NOTINSYNC /* test 6 */ + || pstratum < sys_floor || pstratum >= sys_ceiling) + peer->flash |= TEST6; /* bad synch or strat */ + if (p_del / 2 + p_disp >= MAXDISPERSE) /* test 7 */ + peer->flash |= TEST7; /* bad header */ + + /* + * If any tests fail at this point, the packet is discarded. + * Note that some flashers may have already been set in the + * receive() routine. + */ + if (peer->flash & PKT_TEST_MASK) { + peer->seldisptoolarge++; + DPRINTF(1, ("packet: flash header %04x\n", + peer->flash)); + return; + } + + /**/ + +#if 1 + sys_processed++; + peer->processed++; +#endif + /* * Capture the header values in the client/peer association.. */ @@ -2033,27 +2156,7 @@ process_packet( } poll_update(peer, peer->hpoll); - /* - * Verify the server is synchronized; that is, the leap bits, - * stratum and root distance are valid. - */ - if ( pleap == LEAP_NOTINSYNC /* test 6 */ - || pstratum < sys_floor || pstratum >= sys_ceiling) - peer->flash |= TEST6; /* bad synch or strat */ - if (p_del / 2 + p_disp >= MAXDISPERSE) /* test 7 */ - peer->flash |= TEST7; /* bad header */ - - /* - * If any tests fail at this point, the packet is discarded. - * Note that some flashers may have already been set in the - * receive() routine. - */ - if (peer->flash & PKT_TEST_MASK) { - peer->seldisptoolarge++; - DPRINTF(1, ("packet: flash header %04x\n", - peer->flash)); - return; - } + /**/ /* * If the peer was previously unreachable, raise a trap. In any @@ -4682,6 +4785,14 @@ proto_config( break; /* + * Peer_clear Early policy choices + */ + + case PROTO_PCEDIGEST: /* Digest */ + peer_clear_digest_early = value; + break; + + /* * Unpeer Early policy choices */ diff --git a/contrib/ntp/ntpd/ntpd-opts.c b/contrib/ntp/ntpd/ntpd-opts.c index 3e9a5c3..f19705b 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 April 26, 2016 at 08:26:14 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:32:42 AM by AutoGen 5.18.5 * From the definitions ntpd-opts.def * and the template file options * @@ -75,7 +75,7 @@ extern FILE * option_usage_fp; * static const strings for ntpd options */ static char const ntpd_opt_strs[3129] = -/* 0 */ "ntpd 4.2.8p7\n" +/* 0 */ "ntpd 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -205,12 +205,12 @@ static char const ntpd_opt_strs[3129] = /* 2900 */ "output version information and exit\0" /* 2936 */ "version\0" /* 2944 */ "NTPD\0" -/* 2949 */ "ntpd - NTP daemon program - Ver. 4.2.8p7\n" +/* 2949 */ "ntpd - NTP daemon program - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n" "\t\t[ <server1> ... <serverN> ]\n\0" /* 3080 */ "http://bugs.ntp.org, bugs@ntp.org\0" /* 3114 */ "\n\0" -/* 3116 */ "ntpd 4.2.8p7"; +/* 3116 */ "ntpd 4.2.8p8"; /** * ipv4 option description with @@ -1529,7 +1529,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntpdOptions.pzCopyright */ - puts(_("ntpd 4.2.8p7\n\ + puts(_("ntpd 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -1670,7 +1670,7 @@ implied warranty.\n")); puts(_("output version information and exit")); /* referenced via ntpdOptions.pzUsageTitle */ - puts(_("ntpd - NTP daemon program - Ver. 4.2.8p7\n\ + puts(_("ntpd - NTP daemon program - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\ \t\t[ <server1> ... <serverN> ]\n")); @@ -1678,7 +1678,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\ puts(_("\n")); /* referenced via ntpdOptions.pzFullVersion */ - puts(_("ntpd 4.2.8p7")); + puts(_("ntpd 4.2.8p8")); /* referenced via ntpdOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/ntpd/ntpd-opts.h b/contrib/ntp/ntpd/ntpd-opts.h index 818a531..069673c 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 April 26, 2016 at 08:26:13 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:32:40 AM by AutoGen 5.18.5 * From the definitions ntpd-opts.def * and the template file options * @@ -106,9 +106,9 @@ typedef enum { /** count of all options for ntpd */ #define OPTION_CT 38 /** ntpd version */ -#define NTPD_VERSION "4.2.8p7" +#define NTPD_VERSION "4.2.8p8" /** Full ntpd version text */ -#define NTPD_FULL_VERSION "ntpd 4.2.8p7" +#define NTPD_FULL_VERSION "ntpd 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/ntpd/ntpd.1ntpdman b/contrib/ntp/ntpd/ntpd.1ntpdman index 03a3a1c..f449c20 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 "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpd 1ntpdman "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-0uayDF/ag-avaqCF) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Jnai2U/ag-Ynaa1U) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:23 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:01 AM by AutoGen 5.18.5 .\" From the definitions ntpd-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpd/ntpd.1ntpdmdoc b/contrib/ntp/ntpd/ntpd.1ntpdmdoc index da8bf97..1621274 100644 --- a/contrib/ntp/ntpd/ntpd.1ntpdmdoc +++ b/contrib/ntp/ntpd/ntpd.1ntpdmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPD 1ntpdmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:41 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:22 AM by AutoGen 5.18.5 .\" From the definitions ntpd-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/ntpd.html b/contrib/ntp/ntpd/ntpd.html index 8c5c2be..077f723 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. - <p>This document applies to version 4.2.8p7 of <code>ntpd</code>. + <p>This document applies to version 4.2.8p8 of <code>ntpd</code>. <ul class="menu"> <li><a accesskey="1" href="#ntpd-Description">ntpd Description</a>: Description @@ -220,7 +220,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p6 +<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p7 Usage: ntpd [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \ [ <server1> ... <serverN> ] Flg Arg Option-Name Description diff --git a/contrib/ntp/ntpd/ntpd.man.in b/contrib/ntp/ntpd/ntpd.man.in index 37ccedb..b1eafe6 100644 --- a/contrib/ntp/ntpd/ntpd.man.in +++ b/contrib/ntp/ntpd/ntpd.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpd @NTPD_MS@ "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpd @NTPD_MS@ "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-0uayDF/ag-avaqCF) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Jnai2U/ag-Ynaa1U) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:23 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:01 AM by AutoGen 5.18.5 .\" From the definitions ntpd-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpd/ntpd.mdoc.in b/contrib/ntp/ntpd/ntpd.mdoc.in index 9aa8770..0b7489a 100644 --- a/contrib/ntp/ntpd/ntpd.mdoc.in +++ b/contrib/ntp/ntpd/ntpd.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPD @NTPD_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:28:41 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:22 AM by AutoGen 5.18.5 .\" From the definitions ntpd-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpd/refclock_parse.c b/contrib/ntp/ntpd/refclock_parse.c index eb69dcb..aa9d2f2 100644 --- a/contrib/ntp/ntpd/refclock_parse.c +++ b/contrib/ntp/ntpd/refclock_parse.c @@ -2264,8 +2264,8 @@ local_input( if (debug > 3) { printf( - "parse: local_receive: fd %d PPSAPI seq %ld - PPS %s\n", - rbufp->fd, + "parse: local_receive: fd %ld PPSAPI seq %ld - PPS %s\n", + (long)rbufp->fd, (long)pps_info.assert_sequence + (long)pps_info.clear_sequence, lfptoa(&parse->parseio.parse_dtime.parse_ptime.fp, 6)); } @@ -2277,8 +2277,8 @@ local_input( if (debug > 3) { printf( - "parse: local_receive: fd %d PPSAPI seq assert %ld, seq clear %ld - NO PPS event\n", - rbufp->fd, + "parse: local_receive: fd %ld PPSAPI seq assert %ld, seq clear %ld - NO PPS event\n", + (long)rbufp->fd, (long)pps_info.assert_sequence, (long)pps_info.clear_sequence); } } @@ -2291,8 +2291,8 @@ local_input( if (debug > 3) { printf( - "parse: local_receive: fd %d PPSAPI time_pps_fetch errno = %d\n", - rbufp->fd, + "parse: local_receive: fd %ld PPSAPI time_pps_fetch errno = %d\n", + (long)rbufp->fd, errno); } } diff --git a/contrib/ntp/ntpdc/invoke-ntpdc.texi b/contrib/ntp/ntpdc/invoke-ntpdc.texi index fb917df..717904a 100644 --- a/contrib/ntp/ntpdc/invoke-ntpdc.texi +++ b/contrib/ntp/ntpdc/invoke-ntpdc.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:29:05 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:36:54 AM by AutoGen 5.18.5 # From the definitions ntpdc-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -76,7 +76,7 @@ with a status code of 0. @exampleindent 0 @example -ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p7 +ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p8 Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...] Flg Arg Option-Name Description -4 no ipv4 Force IPv4 DNS name resolution diff --git a/contrib/ntp/ntpdc/ntpdc-opts.c b/contrib/ntp/ntpdc/ntpdc-opts.c index 2557dac..830f07f 100644 --- a/contrib/ntp/ntpdc/ntpdc-opts.c +++ b/contrib/ntp/ntpdc/ntpdc-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpdc-opts.c) * - * It has been AutoGen-ed April 26, 2016 at 08:28:50 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:36:34 AM by AutoGen 5.18.5 * From the definitions ntpdc-opts.def * and the template file options * @@ -69,7 +69,7 @@ extern FILE * option_usage_fp; * static const strings for ntpdc options */ static char const ntpdc_opt_strs[1911] = -/* 0 */ "ntpdc 4.2.8p7\n" +/* 0 */ "ntpdc 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -128,14 +128,14 @@ static char const ntpdc_opt_strs[1911] = /* 1694 */ "no-load-opts\0" /* 1707 */ "no\0" /* 1710 */ "NTPDC\0" -/* 1716 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p7\n" +/* 1716 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0" /* 1846 */ "$HOME\0" /* 1852 */ ".\0" /* 1854 */ ".ntprc\0" /* 1861 */ "http://bugs.ntp.org, bugs@ntp.org\0" /* 1895 */ "\n\0" -/* 1897 */ "ntpdc 4.2.8p7"; +/* 1897 */ "ntpdc 4.2.8p8"; /** * ipv4 option description with @@ -796,7 +796,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntpdcOptions.pzCopyright */ - puts(_("ntpdc 4.2.8p7\n\ + puts(_("ntpdc 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -862,14 +862,14 @@ implied warranty.\n")); puts(_("load options from a config file")); /* referenced via ntpdcOptions.pzUsageTitle */ - puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p7\n\ + puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n")); /* referenced via ntpdcOptions.pzExplain */ puts(_("\n")); /* referenced via ntpdcOptions.pzFullVersion */ - puts(_("ntpdc 4.2.8p7")); + puts(_("ntpdc 4.2.8p8")); /* referenced via ntpdcOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/ntpdc/ntpdc-opts.h b/contrib/ntp/ntpdc/ntpdc-opts.h index 8a7e9e0..7bd869e 100644 --- a/contrib/ntp/ntpdc/ntpdc-opts.h +++ b/contrib/ntp/ntpdc/ntpdc-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpdc-opts.h) * - * It has been AutoGen-ed April 26, 2016 at 08:28:50 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:36:34 AM by AutoGen 5.18.5 * From the definitions ntpdc-opts.def * and the template file options * @@ -83,9 +83,9 @@ typedef enum { /** count of all options for ntpdc */ #define OPTION_CT 15 /** ntpdc version */ -#define NTPDC_VERSION "4.2.8p7" +#define NTPDC_VERSION "4.2.8p8" /** Full ntpdc version text */ -#define NTPDC_FULL_VERSION "ntpdc 4.2.8p7" +#define NTPDC_FULL_VERSION "ntpdc 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/ntpdc/ntpdc.1ntpdcman b/contrib/ntp/ntpdc/ntpdc.1ntpdcman index 8f8a74b..c7055fc 100644 --- a/contrib/ntp/ntpdc/ntpdc.1ntpdcman +++ b/contrib/ntp/ntpdc/ntpdc.1ntpdcman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpdc 1ntpdcman "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpdc 1ntpdcman "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-bTaatH/ag-nTa4rH) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-seaORW/ag-FeaGQW) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:01 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:50 AM by AutoGen 5.18.5 .\" From the definitions ntpdc-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc b/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc index f092396..ac6fae5 100644 --- a/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc +++ b/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPDC 1ntpdcmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:08 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:58 AM by AutoGen 5.18.5 .\" From the definitions ntpdc-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpdc/ntpdc.c b/contrib/ntp/ntpdc/ntpdc.c index 8a79d0b..69fe6a5 100644 --- a/contrib/ntp/ntpdc/ntpdc.c +++ b/contrib/ntp/ntpdc/ntpdc.c @@ -669,7 +669,7 @@ getresponse( printf("Received sequence numbers"); for (n = 0; n <= MAXSEQ; n++) if (haveseq[n]) - printf(" %zd,", n); + printf(" %zd,", (size_t)n); if (lastseq != 999) printf(" last frame received\n"); else @@ -691,7 +691,7 @@ getresponse( */ if (n < (ssize_t)RESP_HEADER_SIZE) { if (debug) - printf("Short (%zd byte) packet received\n", n); + printf("Short (%zd byte) packet received\n", (size_t)n); goto again; } if (INFO_VERSION(rpkt.rm_vn_mode) > NTP_VERSION || diff --git a/contrib/ntp/ntpdc/ntpdc.html b/contrib/ntp/ntpdc/ntpdc.html index 5fc295e..0561004 100644 --- a/contrib/ntp/ntpdc/ntpdc.html +++ b/contrib/ntp/ntpdc/ntpdc.html @@ -36,7 +36,7 @@ display the time offset of the system clock relative to the server clock. Run as root, it can correct the system clock to this offset as well. It can be run as an interactive command or from a cron job. - <p>This document applies to version 4.2.8p7 of <code>ntpdc</code>. + <p>This document applies to version 4.2.8p8 of <code>ntpdc</code>. <p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4 IETF specification. @@ -152,7 +152,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p7 +<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p8 Usage: ntpdc [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...] Flg Arg Option-Name Description -4 no ipv4 Force IPv4 DNS name resolution diff --git a/contrib/ntp/ntpdc/ntpdc.man.in b/contrib/ntp/ntpdc/ntpdc.man.in index ac28045..3175905 100644 --- a/contrib/ntp/ntpdc/ntpdc.man.in +++ b/contrib/ntp/ntpdc/ntpdc.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpdc @NTPDC_MS@ "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpdc @NTPDC_MS@ "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-bTaatH/ag-nTa4rH) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-seaORW/ag-FeaGQW) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:01 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:50 AM by AutoGen 5.18.5 .\" From the definitions ntpdc-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpdc/ntpdc.mdoc.in b/contrib/ntp/ntpdc/ntpdc.mdoc.in index ead9a50..fdca923 100644 --- a/contrib/ntp/ntpdc/ntpdc.mdoc.in +++ b/contrib/ntp/ntpdc/ntpdc.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPDC @NTPDC_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:08 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:36:58 AM by AutoGen 5.18.5 .\" From the definitions ntpdc-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpq/invoke-ntpq.texi b/contrib/ntp/ntpq/invoke-ntpq.texi index 0829876..28cf6c9 100644 --- a/contrib/ntp/ntpq/invoke-ntpq.texi +++ b/contrib/ntp/ntpq/invoke-ntpq.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:29:39 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:37:46 AM by AutoGen 5.18.5 # From the definitions ntpq-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -848,7 +848,7 @@ with a status code of 0. @exampleindent 0 @example -ntpq - standard NTP query program - Ver. 4.2.8p7 +ntpq - standard NTP query program - Ver. 4.2.8p8 Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...] Flg Arg Option-Name Description -4 no ipv4 Force IPv4 DNS name resolution diff --git a/contrib/ntp/ntpq/ntpq-opts.c b/contrib/ntp/ntpq/ntpq-opts.c index a3ff412..b2bb3d9 100644 --- a/contrib/ntp/ntpq/ntpq-opts.c +++ b/contrib/ntp/ntpq/ntpq-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpq-opts.c) * - * It has been AutoGen-ed April 26, 2016 at 08:29:11 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:37:05 AM by AutoGen 5.18.5 * From the definitions ntpq-opts.def * and the template file options * @@ -69,7 +69,7 @@ extern FILE * option_usage_fp; * static const strings for ntpq options */ static char const ntpq_opt_strs[1982] = -/* 0 */ "ntpq 4.2.8p7\n" +/* 0 */ "ntpq 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -132,13 +132,13 @@ static char const ntpq_opt_strs[1982] = /* 1775 */ "no-load-opts\0" /* 1788 */ "no\0" /* 1791 */ "NTPQ\0" -/* 1796 */ "ntpq - standard NTP query program - Ver. 4.2.8p7\n" +/* 1796 */ "ntpq - standard NTP query program - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0" /* 1915 */ "$HOME\0" /* 1921 */ ".\0" /* 1923 */ ".ntprc\0" /* 1930 */ "http://bugs.ntp.org, bugs@ntp.org\0" -/* 1964 */ "ntpq 4.2.8p7\0" +/* 1964 */ "ntpq 4.2.8p8\0" /* 1977 */ "hash"; /** @@ -841,7 +841,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntpqOptions.pzCopyright */ - puts(_("ntpq 4.2.8p7\n\ + puts(_("ntpq 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -910,11 +910,11 @@ implied warranty.\n")); puts(_("load options from a config file")); /* referenced via ntpqOptions.pzUsageTitle */ - puts(_("ntpq - standard NTP query program - Ver. 4.2.8p7\n\ + puts(_("ntpq - standard NTP query program - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n")); /* referenced via ntpqOptions.pzFullVersion */ - puts(_("ntpq 4.2.8p7")); + puts(_("ntpq 4.2.8p8")); /* referenced via ntpqOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/ntpq/ntpq-opts.h b/contrib/ntp/ntpq/ntpq-opts.h index d275471..03fd3a3 100644 --- a/contrib/ntp/ntpq/ntpq-opts.h +++ b/contrib/ntp/ntpq/ntpq-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpq-opts.h) * - * It has been AutoGen-ed April 26, 2016 at 08:29:10 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:37:04 AM by AutoGen 5.18.5 * From the definitions ntpq-opts.def * and the template file options * @@ -84,9 +84,9 @@ typedef enum { /** count of all options for ntpq */ #define OPTION_CT 16 /** ntpq version */ -#define NTPQ_VERSION "4.2.8p7" +#define NTPQ_VERSION "4.2.8p8" /** Full ntpq version text */ -#define NTPQ_FULL_VERSION "ntpq 4.2.8p7" +#define NTPQ_FULL_VERSION "ntpq 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/ntpq/ntpq.1ntpqman b/contrib/ntp/ntpq/ntpq.1ntpqman index 40f7afe..6270eeb 100644 --- a/contrib/ntp/ntpq/ntpq.1ntpqman +++ b/contrib/ntp/ntpq/ntpq.1ntpqman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpq 1ntpqman "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpq 1ntpqman "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-11aqEI/ag-c2aiDI) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-pGa42X/ag-CGaW1X) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:35 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:37:41 AM by AutoGen 5.18.5 .\" From the definitions ntpq-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpq/ntpq.1ntpqmdoc b/contrib/ntp/ntpq/ntpq.1ntpqmdoc index 7a7be52..9985ecf 100644 --- a/contrib/ntp/ntpq/ntpq.1ntpqmdoc +++ b/contrib/ntp/ntpq/ntpq.1ntpqmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPQ 1ntpqmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:41 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:37:48 AM by AutoGen 5.18.5 .\" From the definitions ntpq-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpq/ntpq.c b/contrib/ntp/ntpq/ntpq.c index 3710375..ed5c65f 100644 --- a/contrib/ntp/ntpq/ntpq.c +++ b/contrib/ntp/ntpq/ntpq.c @@ -1063,7 +1063,7 @@ getresponse( if (n < shouldbesize) { printf("Response packet claims %u octets payload, above %ld received\n", - count, (long)n - CTL_HEADER_LEN); + count, (long)(n - CTL_HEADER_LEN)); return ERR_INCOMPLETE; } @@ -1196,7 +1196,10 @@ getresponse( * If we've seen the last fragment, look for holes in the sequence. * If there aren't any, we're done. */ - maybe_final: +#if !defined(SYS_WINNT) && defined(EINTR) + maybe_final: +#endif + if (seenlastfrag && offsets[0] == 0) { for (f = 1; f < numfrags; f++) if (offsets[f-1] + counts[f-1] != diff --git a/contrib/ntp/ntpq/ntpq.html b/contrib/ntp/ntpq/ntpq.html index 24ef3d1..8b91763 100644 --- a/contrib/ntp/ntpq/ntpq.html +++ b/contrib/ntp/ntpq/ntpq.html @@ -44,7 +44,7 @@ monitor the operational status and determine the performance of <code>ntpd</code>, the NTP daemon. - <p>This document applies to version 4.2.8p7 of <code>ntpq</code>. + <p>This document applies to version 4.2.8p8 of <code>ntpq</code>. <ul class="menu"> <li><a accesskey="1" href="#ntpq-Description">ntpq Description</a> @@ -770,7 +770,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p6 +<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p7 Usage: ntpq [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...] Flg Arg Option-Name Description -4 no ipv4 Force IPv4 DNS name resolution diff --git a/contrib/ntp/ntpq/ntpq.man.in b/contrib/ntp/ntpq/ntpq.man.in index bf74a50..37eec21 100644 --- a/contrib/ntp/ntpq/ntpq.man.in +++ b/contrib/ntp/ntpq/ntpq.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpq @NTPQ_MS@ "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpq @NTPQ_MS@ "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-11aqEI/ag-c2aiDI) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-pGa42X/ag-CGaW1X) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:35 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:37:41 AM by AutoGen 5.18.5 .\" From the definitions ntpq-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpq/ntpq.mdoc.in b/contrib/ntp/ntpq/ntpq.mdoc.in index 6cf0cc4..576d631 100644 --- a/contrib/ntp/ntpq/ntpq.mdoc.in +++ b/contrib/ntp/ntpq/ntpq.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPQ @NTPQ_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:41 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:37:48 AM by AutoGen 5.18.5 .\" From the definitions ntpq-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi b/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi index b725729..6e6590c 100644 --- a/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi +++ b/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntpsnmpd.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:29:54 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:39:15 AM by AutoGen 5.18.5 # From the definitions ntpsnmpd-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -47,7 +47,7 @@ with a status code of 0. @exampleindent 0 @example -ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p7 +ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p8 Usage: ntpsnmpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... Flg Arg Option-Name Description -n no nofork Do not fork diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c index 3b394c2..68fcd01 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.c) * - * It has been AutoGen-ed April 26, 2016 at 08:29:44 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:37:55 AM by AutoGen 5.18.5 * From the definitions ntpsnmpd-opts.def * and the template file options * @@ -61,7 +61,7 @@ extern FILE * option_usage_fp; * static const strings for ntpsnmpd options */ static char const ntpsnmpd_opt_strs[1610] = -/* 0 */ "ntpsnmpd 4.2.8p7\n" +/* 0 */ "ntpsnmpd 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -101,14 +101,14 @@ static char const ntpsnmpd_opt_strs[1610] = /* 1414 */ "no-load-opts\0" /* 1427 */ "no\0" /* 1430 */ "NTPSNMPD\0" -/* 1439 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p7\n" +/* 1439 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0" /* 1542 */ "$HOME\0" /* 1548 */ ".\0" /* 1550 */ ".ntprc\0" /* 1557 */ "http://bugs.ntp.org, bugs@ntp.org\0" /* 1591 */ "\n\0" -/* 1593 */ "ntpsnmpd 4.2.8p7"; +/* 1593 */ "ntpsnmpd 4.2.8p8"; /** * nofork option description: @@ -554,7 +554,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntpsnmpdOptions.pzCopyright */ - puts(_("ntpsnmpd 4.2.8p7\n\ + puts(_("ntpsnmpd 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -599,14 +599,14 @@ implied warranty.\n")); puts(_("load options from a config file")); /* referenced via ntpsnmpdOptions.pzUsageTitle */ - puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p7\n\ + puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n")); /* referenced via ntpsnmpdOptions.pzExplain */ puts(_("\n")); /* referenced via ntpsnmpdOptions.pzFullVersion */ - puts(_("ntpsnmpd 4.2.8p7")); + puts(_("ntpsnmpd 4.2.8p8")); /* referenced via ntpsnmpdOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h index 4f8bb7f..f0a4e84 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.h) * - * It has been AutoGen-ed April 26, 2016 at 08:29:43 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:37:55 AM by AutoGen 5.18.5 * From the definitions ntpsnmpd-opts.def * and the template file options * @@ -76,9 +76,9 @@ typedef enum { /** count of all options for ntpsnmpd */ #define OPTION_CT 8 /** ntpsnmpd version */ -#define NTPSNMPD_VERSION "4.2.8p7" +#define NTPSNMPD_VERSION "4.2.8p8" /** Full ntpsnmpd version text */ -#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p7" +#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman index 4940401..27aaed6 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpsnmpd 1ntpsnmpdman "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpsnmpd 1ntpsnmpdman "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sYaGMJ/ag-EYayLJ) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-IPay_Y/ag-WPaq.Y) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:51 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:11 AM by AutoGen 5.18.5 .\" From the definitions ntpsnmpd-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc index 8e3712d..b89b192 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPSNMPD 1ntpsnmpdmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:57 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:18 AM by AutoGen 5.18.5 .\" From the definitions ntpsnmpd-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.html b/contrib/ntp/ntpsnmpd/ntpsnmpd.html index d0ce579..6c892e4 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd.html +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.html @@ -42,7 +42,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <p>The <code>ntpsnmpd</code> utility program is used to monitor NTP daemon <code>ntpd</code> operations and determine performance. It uses the standard NTP mode 6 control - <p>This document applies to version 4.2.8p7 of <code>ntpsnmpd</code>. + <p>This document applies to version 4.2.8p8 of <code>ntpsnmpd</code>. <ul class="menu"> <li><a accesskey="1" href="#ntpsnmpd-Description">ntpsnmpd Description</a>: Description diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in b/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in index 7bd6d9c..882f555 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpsnmpd @NTPSNMPD_MS@ "26 Apr 2016" "4.2.8p7" "User Commands" +.TH ntpsnmpd @NTPSNMPD_MS@ "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sYaGMJ/ag-EYayLJ) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-IPay_Y/ag-WPaq.Y) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:51 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:11 AM by AutoGen 5.18.5 .\" From the definitions ntpsnmpd-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in b/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in index 4ef8466..d655b1b 100644 --- a/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in +++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPSNMPD @NTPSNMPD_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:29:57 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:18 AM by AutoGen 5.18.5 .\" From the definitions ntpsnmpd-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/packageinfo.sh b/contrib/ntp/packageinfo.sh index b9dc5c9..f5916b0 100644 --- a/contrib/ntp/packageinfo.sh +++ b/contrib/ntp/packageinfo.sh @@ -83,7 +83,7 @@ CLTAG=NTP_4_2_0 # - Numeric values increment # - empty 'increments' to 1 # - NEW 'increments' to empty -point=7 +point=8 ### betapoint is normally modified by script. # ntp-stable Beta number (betapoint) diff --git a/contrib/ntp/scripts/build/Makefile.am b/contrib/ntp/scripts/build/Makefile.am index 51a1bbc..a165b1c 100644 --- a/contrib/ntp/scripts/build/Makefile.am +++ b/contrib/ntp/scripts/build/Makefile.am @@ -1,7 +1,7 @@ run_ag= cd $(srcdir) && env PATH="$(abs_builddir):$(PATH)" AUTOGEN_DNE_DATE=-D \ autogen -L ../sntp/include -L ../sntp/ag-tpl -noinst_SCRIPTS = mkver +noinst_SCRIPTS = genAuthors mkver NULL= EXTRA_DIST = \ diff --git a/contrib/ntp/scripts/build/Makefile.in b/contrib/ntp/scripts/build/Makefile.in index d758d61..f33f41d 100644 --- a/contrib/ntp/scripts/build/Makefile.in +++ b/contrib/ntp/scripts/build/Makefile.in @@ -133,7 +133,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = mkver +CONFIG_CLEAN_FILES = genAuthors mkver CONFIG_CLEAN_VPATH_FILES = SCRIPTS = $(noinst_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) @@ -156,7 +156,8 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/mkver.in +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/genAuthors.in \ + $(srcdir)/mkver.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ @@ -427,7 +428,7 @@ top_srcdir = @top_srcdir@ run_ag = cd $(srcdir) && env PATH="$(abs_builddir):$(PATH)" AUTOGEN_DNE_DATE=-D \ autogen -L ../sntp/include -L ../sntp/ag-tpl -noinst_SCRIPTS = mkver +noinst_SCRIPTS = genAuthors mkver NULL = EXTRA_DIST = \ check--help \ @@ -473,6 +474,8 @@ $(top_srcdir)/configure: $(am__configure_deps) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +genAuthors: $(top_builddir)/config.status $(srcdir)/genAuthors.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mkver: $(top_builddir)/config.status $(srcdir)/mkver.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ diff --git a/contrib/ntp/scripts/build/genAuthors.in b/contrib/ntp/scripts/build/genAuthors.in new file mode 100644 index 0000000..f0e49c5 --- /dev/null +++ b/contrib/ntp/scripts/build/genAuthors.in @@ -0,0 +1,82 @@ +#! @PATH_PERL@ + +# DESCRIPTION +# +# Make sure we have the list of authors for git imports. +# Call with the path to the Authors/ subdirectory. +# +# AUTHOR +# +# Harlan Stenn +# +# LICENSE +# +# This file is Copyright (c) 2016 Network Time Foundation +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice, +# author attribution and this notice are preserved. This file is offered +# as-is, without any warranty. + +use strict; +use warnings; + +# Read in the list of known authors. +# run: +# bk changes -and:USER: | sort -u +# to get the list of users who have made commits. +# Make sure that each of these users is in the set of known authors. +# Make sure the format of that file is 1 or more lines of the form: +# user = User Name <user@place> +# +# If all of the above is true, exit 0. +# If there are any problems, squawk and exit 1. + +my $bk_u = "bk changes -and:USER: | sort -u |"; +chomp(my $bk_root = `bk root`); +my $A_path = "$bk_root/BitKeeper/etc/authors.txt"; +my %authors; +my $problem = 0; + +die "bkroot: <$bk_root>, A_path: <$A_path>\n" if (! -r $A_path); + +# Process the authors.txt file +open(my $FILE, '<', $A_path) or die "Could not open <$A_path>: $!\n"; +while (<$FILE>) { + chomp; + if (/^([\S]+) = ([\V]+) <([\w.-]+\@[\w.-]+)>$/) { + # print "Got '$1 = $2 <$3>'\n"; + $authors{$1} = ""; + } else { + print "In $A_path: unrecognized line: '$_'\n"; + $problem = 1; + } +} +close($FILE); + +#print "\%authors = ", join(' ', sort keys %authors), "\n"; + +die "Fix the problem(s) noted above!\n" if $problem; + +# Process "bk changes ..." + +open(BKU, $bk_u) || die "$0: <$bk_u> failed: $!\n"; +while (<BKU>) { + chomp; + my $Name = $_; + my $name = lc; + # print "Got Name <$Name>, name <$name>\n"; + if (!defined($authors{$Name})) { + $problem = 1; + print "<$Name> is not a defined author!\n"; + open(my $FILE, '>>', "$A_path/$name.txt") || die "Cannot create '$A_path/$name.txt': $!\n"; + print $FILE "$Name = \n"; + close($FILE); + } +} + +die "Fix the problem(s) noted above!\n" if $problem; + +# Local Variables: ** +# mode:cperl ** +# End: ** diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman index 32d1c67..c52f3f2 100644 --- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman +++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH calc_tickadj 1calc_tickadjman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH calc_tickadj 1calc_tickadjman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-b1aGJu/ag-n1aOIu) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-3laW2J/ag-ema41J) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:11 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:25 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc index 0c80ddd..df3de6d 100644 --- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc +++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:13 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:27 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html index 98dcac8..d27d634 100644 --- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html +++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html @@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <h2 class="unnumbered">calc_tickadj User's Manual</h2> <p>This document describes the use of the NTP Project's <code>calc_tickadj</code> program. -This document applies to version 4.2.8p7 of <code>calc_tickadj</code>. +This document applies to version 4.2.8p8 of <code>calc_tickadj</code>. <div class="shortcontents"> <h2>Short Contents</h2> diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in index 32d1c67..c52f3f2 100644 --- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in +++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH calc_tickadj 1calc_tickadjman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH calc_tickadj 1calc_tickadjman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-b1aGJu/ag-n1aOIu) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-3laW2J/ag-ema41J) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:11 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:25 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in index 0c80ddd..df3de6d 100644 --- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in +++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:13 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:27 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi b/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi index 6ade9e2..3f5e897 100644 --- a/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi +++ b/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:24:15 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:29 AM by AutoGen 5.18.5 # From the definitions calc_tickadj-opts.def # and the template file agtexi-cmd.tpl @end ignore diff --git a/contrib/ntp/scripts/invoke-plot_summary.texi b/contrib/ntp/scripts/invoke-plot_summary.texi index a8ba9cc..bfa8a8e 100644 --- a/contrib/ntp/scripts/invoke-plot_summary.texi +++ b/contrib/ntp/scripts/invoke-plot_summary.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:25:00 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:50 AM by AutoGen 5.18.5 # From the definitions plot_summary-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -41,7 +41,7 @@ with a status code of 0. @exampleindent 0 @example -plot_summary - plot statistics generated by summary script - Ver. 4.2.8p7 +plot_summary - plot statistics generated by summary script - Ver. 4.2.8p8 USAGE: plot_summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... --directory=str Where the summary files are @@ -101,7 +101,7 @@ This option takes a string argument. This is string is passed directly to the @code{gnuplot set terminal} command. Default is @code{x11} if @code{DISPLAY} is set and @code{dumb} is it's not'. See output from @code(gnuplot -e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. @node plot_summary output-file @subsection output-file option @cindex plot_summary-output-file diff --git a/contrib/ntp/scripts/invoke-summary.texi b/contrib/ntp/scripts/invoke-summary.texi index 1a10492..43d74b0 100644 --- a/contrib/ntp/scripts/invoke-summary.texi +++ b/contrib/ntp/scripts/invoke-summary.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-summary.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:25:06 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:58 AM by AutoGen 5.18.5 # From the definitions summary-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -42,7 +42,7 @@ with a status code of 0. @exampleindent 0 @example -summary - compute various stastics from NTP stat files - Ver. 4.2.8p7 +summary - compute various stastics from NTP stat files - Ver. 4.2.8p8 USAGE: summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... --directory=str Directory containing stat files diff --git a/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi b/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi index c73f244..3387634 100644 --- a/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi +++ b/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:24:23 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:39 AM by AutoGen 5.18.5 # From the definitions ntp-wait-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -61,7 +61,7 @@ with a status code of 0. @exampleindent 0 @example -ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p7 +ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p8 USAGE: ntp-wait [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... -n, --tries=num Number of times to check ntpd diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait-opts b/contrib/ntp/scripts/ntp-wait/ntp-wait-opts index 814432d..e199079 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait-opts +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (ntp-wait-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:18 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:33 AM by AutoGen 5.18.5 # From the definitions ntp-wait-opts.def # and the template file perlopt @@ -40,7 +40,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p7 +ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p8 USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]... -n, --tries=num Number of times to check ntpd diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman index 0ee4f82..c3b1c138 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp-wait 1ntp-waitman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntp-wait 1ntp-waitman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-LcaO9v/ag-XcaW8v) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-IZaWqL/ag-WZa4pL) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:20 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:36 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc index 83f0413..4f1cfde 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_WAIT 1ntp-waitmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:26 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:44 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.html b/contrib/ntp/scripts/ntp-wait/ntp-wait.html index 7f57e60..2b790d5 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.html +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.html @@ -39,7 +39,7 @@ until the system's time has stabilized and synchronized, and only then start any applicaitons (like database servers) that require accurate and stable time. - <p>This document applies to version 4.2.8p7 of <code>ntp-wait</code>. + <p>This document applies to version 4.2.8p8 of <code>ntp-wait</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -114,7 +114,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p7 +<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p8 USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]... -n, --tries=num Number of times to check ntpd diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.in b/contrib/ntp/scripts/ntp-wait/ntp-wait.in index b35828a..cfccbe0 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.in +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.in @@ -33,7 +33,7 @@ sub run { } if (!exists $info->{status_line}{leap}) { - print "\bLeap status not avalaible\n"; + print "\bLeap status not available\n"; return 1; } diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in b/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in index 2acf43d..2775a88 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp-wait @NTP_WAIT_MS@ "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntp-wait @NTP_WAIT_MS@ "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-LcaO9v/ag-XcaW8v) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-IZaWqL/ag-WZa4pL) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:20 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:36 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in b/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in index 5bade8e..9dc96d1 100644 --- a/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in +++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_WAIT @NTP_WAIT_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:26 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:44 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi b/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi index bdfd9d2..a8d498e 100644 --- a/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi +++ b/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntpsweep.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:24:29 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:48 AM by AutoGen 5.18.5 # From the definitions ntpsweep-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -45,7 +45,7 @@ with a status code of 0. @exampleindent 0 @example -ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p7 +ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p8 USAGE: ntpsweep [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostfile] -l, --host-list=str Host to execute actions on diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep-opts b/contrib/ntp/scripts/ntpsweep/ntpsweep-opts index 67896ee..abb519d 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep-opts +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (ntpsweep-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:28 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:46 AM by AutoGen 5.18.5 # From the definitions ntpsweep-opts.def # and the template file perlopt @@ -43,7 +43,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p7 +ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p8 USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile] -l, --host-list=str Host to execute actions on diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman index f222b60..3cb11a3 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpsweep 1ntpsweepman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntpsweep 1ntpsweepman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-L6aGzx/ag-Y6aOyx) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-KKaWSM/ag-XKa4RM) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:32 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:51 AM by AutoGen 5.18.5 .\" From the definitions ntpsweep-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc index 716b8e9..d6de8dd 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPSWEEP 1ntpsweepmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:35 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:55 AM by AutoGen 5.18.5 .\" From the definitions ntpsweep-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.html b/contrib/ntp/scripts/ntpsweep/ntpsweep.html index fd98e1c..1226459 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep.html +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.html @@ -30,7 +30,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <p>This document describes the use of the NTP Project's <code>ntpsweep</code> program. - <p>This document applies to version 4.2.8p7 of <code>ntpsweep</code>. + <p>This document applies to version 4.2.8p8 of <code>ntpsweep</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -90,7 +90,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p7 +<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p8 USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile] -l, --host-list=str Host to execute actions on diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in b/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in index f222b60..3cb11a3 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntpsweep 1ntpsweepman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntpsweep 1ntpsweepman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-L6aGzx/ag-Y6aOyx) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-KKaWSM/ag-XKa4RM) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:32 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:51 AM by AutoGen 5.18.5 .\" From the definitions ntpsweep-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in b/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in index 716b8e9..d6de8dd 100644 --- a/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in +++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPSWEEP 1ntpsweepmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:35 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:55 AM by AutoGen 5.18.5 .\" From the definitions ntpsweep-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi b/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi index e6771a5..e7c2a2c 100644 --- a/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi +++ b/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntptrace.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:24:42 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:03 AM by AutoGen 5.18.5 # From the definitions ntptrace-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -62,7 +62,7 @@ with a status code of 0. @exampleindent 0 @example -ntptrace - Trace peers of an NTP server - Ver. 4.2.8p7 +ntptrace - Trace peers of an NTP server - Ver. 4.2.8p8 USAGE: ntptrace [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [host] -n, --numeric Print IP addresses instead of hostnames diff --git a/contrib/ntp/scripts/ntptrace/ntptrace-opts b/contrib/ntp/scripts/ntptrace/ntptrace-opts index ed41f91..7cc0719 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace-opts +++ b/contrib/ntp/scripts/ntptrace/ntptrace-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (ntptrace-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:37 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:24:57 AM by AutoGen 5.18.5 # From the definitions ntptrace-opts.def # and the template file perlopt @@ -40,7 +40,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -ntptrace - Trace peers of an NTP server - Ver. 4.2.8p7 +ntptrace - Trace peers of an NTP server - Ver. 4.2.8p8 USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host] -n, --numeric Print IP addresses instead of hostnames diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman index 8fb7188..964037d 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman +++ b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntptrace 1ntptraceman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntptrace 1ntptraceman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-1QaORy/ag-bRaWQy) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-GMa4.N/ag-VMaa.N) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:39 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:59 AM by AutoGen 5.18.5 .\" From the definitions ntptrace-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc index fb33296..5c33659 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc +++ b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPTRACE 1ntptracemdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:44 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:05 AM by AutoGen 5.18.5 .\" From the definitions ntptrace-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.html b/contrib/ntp/scripts/ntptrace/ntptrace.html index 4cdf2dc..8b2be15 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace.html +++ b/contrib/ntp/scripts/ntptrace/ntptrace.html @@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <h2 class="unnumbered">Simple Network Time Protocol User Manual</h2> <p>This document describes the use of the NTP Project's <code>ntptrace</code> program. -This document applies to version 4.2.8p7 of <code>ntptrace</code>. +This document applies to version 4.2.8p8 of <code>ntptrace</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -107,7 +107,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p7 +<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p8 USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host] -n, --numeric Print IP addresses instead of hostnames diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.man.in b/contrib/ntp/scripts/ntptrace/ntptrace.man.in index d7c1383..a4aed35 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace.man.in +++ b/contrib/ntp/scripts/ntptrace/ntptrace.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntptrace @NTPTRACE_MS@ "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntptrace @NTPTRACE_MS@ "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-1QaORy/ag-bRaWQy) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-GMa4.N/ag-VMaa.N) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:39 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:24:59 AM by AutoGen 5.18.5 .\" From the definitions ntptrace-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in b/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in index 9a6bc3a..8002291 100644 --- a/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in +++ b/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTPTRACE @NTPTRACE_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:44 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:05 AM by AutoGen 5.18.5 .\" From the definitions ntptrace-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/plot_summary-opts b/contrib/ntp/scripts/plot_summary-opts index ffb9d3f..27d1712 100644 --- a/contrib/ntp/scripts/plot_summary-opts +++ b/contrib/ntp/scripts/plot_summary-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (plot_summary-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:56 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:41 AM by AutoGen 5.18.5 # From the definitions plot_summary-opts.def # and the template file perlopt @@ -46,7 +46,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -plot_summary - plot statistics generated by summary script - Ver. 4.2.8p7 +plot_summary - plot statistics generated by summary script - Ver. 4.2.8p8 USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]... --directory=str Where the summary files are diff --git a/contrib/ntp/scripts/plot_summary-opts.def b/contrib/ntp/scripts/plot_summary-opts.def index 61f028b..3010192 100644 --- a/contrib/ntp/scripts/plot_summary-opts.def +++ b/contrib/ntp/scripts/plot_summary-opts.def @@ -62,7 +62,7 @@ flag = { This is string is passed directly to the @code{gnuplot set terminal} command. Default is @code{x11} if @code{DISPLAY} is set and @code{dumb} is it's not'. See output from @code(gnuplot -e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. _EndOfDoc_; }; diff --git a/contrib/ntp/scripts/plot_summary.1plot_summaryman b/contrib/ntp/scripts/plot_summary.1plot_summaryman index 38d3134..1decf33 100644 --- a/contrib/ntp/scripts/plot_summary.1plot_summaryman +++ b/contrib/ntp/scripts/plot_summary.1plot_summaryman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH plot_summary 1plot_summaryman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH plot_summary 1plot_summaryman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gsaiHB/ag-ssaqGB) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4QaG0Q/ag-hRaOZQ) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:02 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:53 AM by AutoGen 5.18.5 .\" From the definitions plot_summary-opts.def .\" and the template file agman-cmd.tpl .SH NAME @@ -74,7 +74,7 @@ Gnuplot terminal. This is string is passed directly to the \fBgnuplot set terminal\fP command. Default is \fBx11\fP if \fBDISPLAY\fP is set and \fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. .TP .NOP \f\*[B-Font]\-\-output\-file\f[]=\f\*[I-Font]str\f[] Output file. diff --git a/contrib/ntp/scripts/plot_summary.1plot_summarymdoc b/contrib/ntp/scripts/plot_summary.1plot_summarymdoc index 4b598dc..3d6828a 100644 --- a/contrib/ntp/scripts/plot_summary.1plot_summarymdoc +++ b/contrib/ntp/scripts/plot_summary.1plot_summarymdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt PLOT_SUMMARY 1plot_summarymdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:04 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:55 AM by AutoGen 5.18.5 .\" From the definitions plot_summary-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -55,7 +55,7 @@ Gnuplot terminal. This is string is passed directly to the \fBgnuplot set terminal\fP command. Default is \fBx11\fP if \fBDISPLAY\fP is set and \fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. .It Fl \-output\-file Ns = Ns Ar str Output file. .sp diff --git a/contrib/ntp/scripts/plot_summary.html b/contrib/ntp/scripts/plot_summary.html index 9bb6228..9feede6 100644 --- a/contrib/ntp/scripts/plot_summary.html +++ b/contrib/ntp/scripts/plot_summary.html @@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <h2 class="unnumbered">Plot_summary User Manual</h2> <p>This document describes the use of the NTP Project's <code>plot_summary</code> program. -This document applies to version 4.2.8p7 of <code>plot_summary</code>. +This document applies to version 4.2.8p8 of <code>plot_summary</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -89,7 +89,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p7 +<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p8 USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]... --directory=str Where the summary files are @@ -173,7 +173,7 @@ This option takes a string argument. This is string is passed directly to the <code>gnuplot set terminal</code> command. Default is <code>x11</code> if <code>DISPLAY</code> is set and <code>dumb</code> is it's not'. See output from -e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. <div class="node"> <p><hr> <a name="plot_005fsummary-output_002dfile"></a>Next: <a rel="next" accesskey="n" href="#plot_005fsummary-exit-status">plot_summary exit status</a>, diff --git a/contrib/ntp/scripts/plot_summary.man.in b/contrib/ntp/scripts/plot_summary.man.in index 38d3134..1decf33 100644 --- a/contrib/ntp/scripts/plot_summary.man.in +++ b/contrib/ntp/scripts/plot_summary.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH plot_summary 1plot_summaryman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH plot_summary 1plot_summaryman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gsaiHB/ag-ssaqGB) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4QaG0Q/ag-hRaOZQ) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:02 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:53 AM by AutoGen 5.18.5 .\" From the definitions plot_summary-opts.def .\" and the template file agman-cmd.tpl .SH NAME @@ -74,7 +74,7 @@ Gnuplot terminal. This is string is passed directly to the \fBgnuplot set terminal\fP command. Default is \fBx11\fP if \fBDISPLAY\fP is set and \fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. .TP .NOP \f\*[B-Font]\-\-output\-file\f[]=\f\*[I-Font]str\f[] Output file. diff --git a/contrib/ntp/scripts/plot_summary.mdoc.in b/contrib/ntp/scripts/plot_summary.mdoc.in index 4b598dc..3d6828a 100644 --- a/contrib/ntp/scripts/plot_summary.mdoc.in +++ b/contrib/ntp/scripts/plot_summary.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt PLOT_SUMMARY 1plot_summarymdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:04 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:55 AM by AutoGen 5.18.5 .\" From the definitions plot_summary-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME @@ -55,7 +55,7 @@ Gnuplot terminal. This is string is passed directly to the \fBgnuplot set terminal\fP command. Default is \fBx11\fP if \fBDISPLAY\fP is set and \fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set - terminal") for the list of avalaible options. + terminal") for the list of available options. .It Fl \-output\-file Ns = Ns Ar str Output file. .sp diff --git a/contrib/ntp/scripts/summary-opts b/contrib/ntp/scripts/summary-opts index e88cd0f..c5da364 100644 --- a/contrib/ntp/scripts/summary-opts +++ b/contrib/ntp/scripts/summary-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (summary-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:58 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:48 AM by AutoGen 5.18.5 # From the definitions summary-opts.def # and the template file perlopt @@ -44,7 +44,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -summary - compute various stastics from NTP stat files - Ver. 4.2.8p7 +summary - compute various stastics from NTP stat files - Ver. 4.2.8p8 USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]... --directory=str Directory containing stat files diff --git a/contrib/ntp/scripts/summary.1summaryman b/contrib/ntp/scripts/summary.1summaryman index 7f02c00..b99aa5c 100644 --- a/contrib/ntp/scripts/summary.1summaryman +++ b/contrib/ntp/scripts/summary.1summaryman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH summary 1summaryman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH summary 1summaryman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gNaWUB/ag-tNa4TB) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-OuaicR/ag-3uaqbR) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:07 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:26:00 AM by AutoGen 5.18.5 .\" From the definitions summary-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/summary.1summarymdoc b/contrib/ntp/scripts/summary.1summarymdoc index b72cbcf..b10309a 100644 --- a/contrib/ntp/scripts/summary.1summarymdoc +++ b/contrib/ntp/scripts/summary.1summarymdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt SUMMARY 1summarymdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:09 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:26:02 AM by AutoGen 5.18.5 .\" From the definitions summary-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/summary.html b/contrib/ntp/scripts/summary.html index d9ef47a..dedac73 100644 --- a/contrib/ntp/scripts/summary.html +++ b/contrib/ntp/scripts/summary.html @@ -31,7 +31,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <h2 class="unnumbered">Summary User Manual</h2> <p>This document describes the use of the NTP Project's <code>summary</code> program. -This document applies to version 4.2.8p7 of <code>summary</code>. +This document applies to version 4.2.8p8 of <code>summary</code>. <div class="shortcontents"> <h2>Short Contents</h2> @@ -88,7 +88,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p7 +<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p8 USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]... --directory=str Directory containing stat files diff --git a/contrib/ntp/scripts/summary.man.in b/contrib/ntp/scripts/summary.man.in index 7f02c00..b99aa5c 100644 --- a/contrib/ntp/scripts/summary.man.in +++ b/contrib/ntp/scripts/summary.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH summary 1summaryman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH summary 1summaryman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-gNaWUB/ag-tNa4TB) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-OuaicR/ag-3uaqbR) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:07 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:26:00 AM by AutoGen 5.18.5 .\" From the definitions summary-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/summary.mdoc.in b/contrib/ntp/scripts/summary.mdoc.in index b72cbcf..b10309a 100644 --- a/contrib/ntp/scripts/summary.mdoc.in +++ b/contrib/ntp/scripts/summary.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt SUMMARY 1summarymdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:25:09 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:26:02 AM by AutoGen 5.18.5 .\" From the definitions summary-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/update-leap/invoke-update-leap.texi b/contrib/ntp/scripts/update-leap/invoke-update-leap.texi index e4b43a9..3e538f0 100644 --- a/contrib/ntp/scripts/update-leap/invoke-update-leap.texi +++ b/contrib/ntp/scripts/update-leap/invoke-update-leap.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-update-leap.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:24:50 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:12 AM by AutoGen 5.18.5 # From the definitions update-leap-opts.def # and the template file agtexi-cmd.tpl @end ignore diff --git a/contrib/ntp/scripts/update-leap/update-leap-opts b/contrib/ntp/scripts/update-leap/update-leap-opts index a5ca4ee..2f32d66 100644 --- a/contrib/ntp/scripts/update-leap/update-leap-opts +++ b/contrib/ntp/scripts/update-leap/update-leap-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (update-leap-opts) # -# It has been AutoGen-ed April 26, 2016 at 08:24:56 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:25:39 AM by AutoGen 5.18.5 # From the definitions update-leap-opts.def # and the template file perlopt @@ -46,7 +46,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -update-leap - leap-seconds file manager/updater - Ver. 4.2.8p7 +update-leap - leap-seconds file manager/updater - Ver. 4.2.8p8 USAGE: update-leap [ -<flag> [<val>] | --<name>[{=| }<val>] ]... -s, --source-url=str The URL of the master copy of the leapseconds file diff --git a/contrib/ntp/scripts/update-leap/update-leap.1update-leapman b/contrib/ntp/scripts/update-leap/update-leap.1update-leapman index 17eda3e..d105806 100644 --- a/contrib/ntp/scripts/update-leap/update-leap.1update-leapman +++ b/contrib/ntp/scripts/update-leap/update-leap.1update-leapman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH update-leap 1update-leapman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH update-leap 1update-leapman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FCaqHz/ag-RCayGz) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-qJaG0O/ag-DJaOZO) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:46 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:07 AM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc b/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc index e7fd508..2e9c479 100644 --- a/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc +++ b/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt UPDATE_LEAP 1update-leapmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:54 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:37 AM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/scripts/update-leap/update-leap.html b/contrib/ntp/scripts/update-leap/update-leap.html index f7431b4..e2e4ad3 100644 --- a/contrib/ntp/scripts/update-leap/update-leap.html +++ b/contrib/ntp/scripts/update-leap/update-leap.html @@ -30,7 +30,7 @@ Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> <p>This document describes the use of the NTP Project's <code>update-leap</code> program. - <p>This document applies to version 4.2.8p7 of <code>update-leap</code>. + <p>This document applies to version 4.2.8p8 of <code>update-leap</code>. <div class="shortcontents"> <h2>Short Contents</h2> diff --git a/contrib/ntp/scripts/update-leap/update-leap.man.in b/contrib/ntp/scripts/update-leap/update-leap.man.in index 17eda3e..d105806 100644 --- a/contrib/ntp/scripts/update-leap/update-leap.man.in +++ b/contrib/ntp/scripts/update-leap/update-leap.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH update-leap 1update-leapman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH update-leap 1update-leapman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FCaqHz/ag-RCayGz) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-qJaG0O/ag-DJaOZO) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:46 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:07 AM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/scripts/update-leap/update-leap.mdoc.in b/contrib/ntp/scripts/update-leap/update-leap.mdoc.in index e7fd508..2e9c479 100644 --- a/contrib/ntp/scripts/update-leap/update-leap.mdoc.in +++ b/contrib/ntp/scripts/update-leap/update-leap.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt UPDATE_LEAP 1update-leapmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:24:54 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:25:37 AM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/sntp/Makefile.in b/contrib/ntp/sntp/Makefile.in index 39f7dc7..73acd4f 100644 --- a/contrib/ntp/sntp/Makefile.in +++ b/contrib/ntp/sntp/Makefile.in @@ -126,8 +126,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ diff --git a/contrib/ntp/sntp/aclocal.m4 b/contrib/ntp/sntp/aclocal.m4 index 00ce908..515b2bb 100644 --- a/contrib/ntp/sntp/aclocal.m4 +++ b/contrib/ntp/sntp/aclocal.m4 @@ -1361,3 +1361,4 @@ m4_include([m4/openldap-thread-check.m4]) m4_include([m4/openldap.m4]) m4_include([m4/os_cflags.m4]) m4_include([m4/snprintf.m4]) +m4_include([m4/sntp_problemtests.m4]) diff --git a/contrib/ntp/sntp/configure b/contrib/ntp/sntp/configure index 75555f6..db89397 100755 --- a/contrib/ntp/sntp/configure +++ b/contrib/ntp/sntp/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sntp 4.2.8p7. +# Generated by GNU Autoconf 2.69 for sntp 4.2.8p8. # # Report bugs to <http://bugs.ntp.org./>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sntp' PACKAGE_TARNAME='sntp' -PACKAGE_VERSION='4.2.8p7' -PACKAGE_STRING='sntp 4.2.8p7' +PACKAGE_VERSION='4.2.8p8' +PACKAGE_STRING='sntp 4.2.8p8' PACKAGE_BUGREPORT='http://bugs.ntp.org./' PACKAGE_URL='http://www.ntp.org./' @@ -636,6 +636,10 @@ enable_option_checking=no ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS +BUILD_TEST_KODFILE_FALSE +BUILD_TEST_KODFILE_TRUE +BUILD_TEST_KODDATABASE_FALSE +BUILD_TEST_KODDATABASE_TRUE GTEST_AVAILABLE_FALSE GTEST_AVAILABLE_TRUE GTEST_CPPFLAGS @@ -937,6 +941,7 @@ enable_ipv6 with_kame enable_getifaddrs with_gtest +enable_problem_tests ' ac_precious_vars='build_alias host_alias @@ -1491,7 +1496,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sntp 4.2.8p7 to adapt to many kinds of systems. +\`configure' configures sntp 4.2.8p8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1561,7 +1566,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sntp 4.2.8p7:";; + short | recursive ) echo "Configuration of sntp 4.2.8p8:";; esac cat <<\_ACEOF @@ -1596,6 +1601,7 @@ Optional Features: --enable-ipv6 s use IPv6? --enable-getifaddrs + Enable the use of getifaddrs() [[yes|no]]. + --enable-problem-tests + enable tests with undiagnosed problems Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1706,7 +1712,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sntp configure 4.2.8p7 +sntp configure 4.2.8p8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2536,7 +2542,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sntp $as_me 4.2.8p7, which was +It was created by sntp $as_me 4.2.8p8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3533,7 +3539,7 @@ fi # Define the identity of the package. PACKAGE='sntp' - VERSION='4.2.8p7' + VERSION='4.2.8p8' cat >>confdefs.h <<_ACEOF @@ -30508,6 +30514,63 @@ fi + +case "$build" in + $host) cross=0 ;; + *) cross=1 ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we want to enable tests with undiagnosed problems" >&5 +$as_echo_n "checking if we want to enable tests with undiagnosed problems... " >&6; } +# Check whether --enable-problem-tests was given. +if test "${enable_problem_tests+set}" = set; then : + enableval=$enable_problem_tests; sntp_ept=$enableval +else + sntp_ept=yes + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sntp_ept" >&5 +$as_echo "$sntp_ept" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can run test-kodDatabase" >&5 +$as_echo_n "checking if we can run test-kodDatabase... " >&6; } +sntp_test_kodDatabase="no" +case "$sntp_ept:$cross:$host" in + no:0:*-apple-darwin12.6.0) ;; + *) sntp_test_kodDatabase="yes" ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sntp_test_kodDatabase" >&5 +$as_echo "$sntp_test_kodDatabase" >&6; } + if test x$sntp_test_kodDatabase = xyes; then + BUILD_TEST_KODDATABASE_TRUE= + BUILD_TEST_KODDATABASE_FALSE='#' +else + BUILD_TEST_KODDATABASE_TRUE='#' + BUILD_TEST_KODDATABASE_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can run test-kodFile" >&5 +$as_echo_n "checking if we can run test-kodFile... " >&6; } +sntp_test_kodFile="no" +case "$sntp_ept:$cross:$host" in + no:0:*-apple-darwin12.6.0) ;; + *) sntp_test_kodFile="yes" ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sntp_test_kodFile" >&5 +$as_echo "$sntp_test_kodFile" >&6; } + if test x$sntp_test_kodFile = xyes; then + BUILD_TEST_KODFILE_TRUE= + BUILD_TEST_KODFILE_FALSE='#' +else + BUILD_TEST_KODFILE_TRUE='#' + BUILD_TEST_KODFILE_FALSE= +fi + + + + # All libraries should be in various LIB_* variables now. #LIBS= # Sadly not. There is a gettext() check somewhere, and on Solaris this pulls @@ -30716,6 +30779,14 @@ if test -z "${GTEST_AVAILABLE_TRUE}" && test -z "${GTEST_AVAILABLE_FALSE}"; then as_fn_error $? "conditional \"GTEST_AVAILABLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_TEST_KODDATABASE_TRUE}" && test -z "${BUILD_TEST_KODDATABASE_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TEST_KODDATABASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TEST_KODFILE_TRUE}" && test -z "${BUILD_TEST_KODFILE_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TEST_KODFILE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -31113,7 +31184,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sntp $as_me 4.2.8p7, which was +This file was extended by sntp $as_me 4.2.8p8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31180,7 +31251,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sntp config.status 4.2.8p7 +sntp config.status 4.2.8p8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/contrib/ntp/sntp/configure.ac b/contrib/ntp/sntp/configure.ac index a08aa13..391e586 100644 --- a/contrib/ntp/sntp/configure.ac +++ b/contrib/ntp/sntp/configure.ac @@ -143,6 +143,8 @@ NTP_UNITYBUILD AC_PROG_CXX NTP_GOOGLETEST +SNTP_PROBLEM_TESTS + # All libraries should be in various LIB_* variables now. #LIBS= # Sadly not. There is a gettext() check somewhere, and on Solaris this pulls diff --git a/contrib/ntp/sntp/include/Makefile.in b/contrib/ntp/sntp/include/Makefile.in index 1c8a179..e5274a5 100644 --- a/contrib/ntp/sntp/include/Makefile.in +++ b/contrib/ntp/sntp/include/Makefile.in @@ -114,8 +114,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ diff --git a/contrib/ntp/sntp/include/version.def b/contrib/ntp/sntp/include/version.def index a6eb3b4..add303d 100644 --- a/contrib/ntp/sntp/include/version.def +++ b/contrib/ntp/sntp/include/version.def @@ -1 +1 @@ -version = '4.2.8p7'; +version = '4.2.8p8'; diff --git a/contrib/ntp/sntp/include/version.texi b/contrib/ntp/sntp/include/version.texi index d604964..9f303b2 100644 --- a/contrib/ntp/sntp/include/version.texi +++ b/contrib/ntp/sntp/include/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 26 April 2016 -@set EDITION 4.2.8p7 -@set VERSION 4.2.8p7 +@set UPDATED 02 June 2016 +@set EDITION 4.2.8p8 +@set VERSION 4.2.8p8 diff --git a/contrib/ntp/sntp/invoke-sntp.texi b/contrib/ntp/sntp/invoke-sntp.texi index 455dc36..256ff86 100644 --- a/contrib/ntp/sntp/invoke-sntp.texi +++ b/contrib/ntp/sntp/invoke-sntp.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-sntp.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:21:12 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:19:58 AM by AutoGen 5.18.5 # From the definitions sntp-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -101,7 +101,7 @@ with a status code of 0. @exampleindent 0 @example -sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p7 +sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p8 Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \ [ hostname-or-IP ...] Flg Arg Option-Name Description diff --git a/contrib/ntp/sntp/libopts/Makefile.in b/contrib/ntp/sntp/libopts/Makefile.in index 1f138a2..d98b8a3 100644 --- a/contrib/ntp/sntp/libopts/Makefile.in +++ b/contrib/ntp/sntp/libopts/Makefile.in @@ -114,8 +114,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) diff --git a/contrib/ntp/sntp/m4/ntp_problemtests.m4 b/contrib/ntp/sntp/m4/ntp_problemtests.m4 index 7cc14c9..ebc2cd9 100644 --- a/contrib/ntp/sntp/m4/ntp_problemtests.m4 +++ b/contrib/ntp/sntp/m4/ntp_problemtests.m4 @@ -55,5 +55,6 @@ case "$ntp_ept:$cross:$host" in esac AC_MSG_RESULT([$ntp_test_ntp_signd]) AM_CONDITIONAL([BUILD_TEST_NTP_SIGND], [test x$ntp_test_ntp_signd = xyes]) + ]) dnl ====================================================================== diff --git a/contrib/ntp/sntp/m4/sntp_problemtests.m4 b/contrib/ntp/sntp/m4/sntp_problemtests.m4 new file mode 100644 index 0000000..fcf7014 --- /dev/null +++ b/contrib/ntp/sntp/m4/sntp_problemtests.m4 @@ -0,0 +1,47 @@ +dnl ###################################################################### +dnl SNTP_PROBLEM_TESTS +dnl +dnl Some platforms have problems building or running certain tests. +dnl While we're in the initial phase of the deployment of the test +dnl framework, sometimes we may need to disable these tests. +dnl +dnl This is where we do that. +dnl +AC_DEFUN([SNTP_PROBLEM_TESTS], [ +case "$build" in + $host) cross=0 ;; + *) cross=1 ;; +esac + +AC_MSG_CHECKING([if we want to enable tests with undiagnosed problems]) +AC_ARG_ENABLE( + [problem-tests], + [AS_HELP_STRING( + [--enable-problem-tests], + [+ enable tests with undiagnosed problems] + )], + [sntp_ept=$enableval], + [sntp_ept=yes] +) +AC_MSG_RESULT([$sntp_ept]) + +AC_MSG_CHECKING([if we can run test-kodDatabase]) +sntp_test_kodDatabase="no" +case "$sntp_ept:$cross:$host" in + no:0:*-apple-darwin12.6.0) ;; + *) sntp_test_kodDatabase="yes" ;; +esac +AC_MSG_RESULT([$sntp_test_kodDatabase]) +AM_CONDITIONAL([BUILD_TEST_KODDATABASE], [test x$sntp_test_kodDatabase = xyes]) + +AC_MSG_CHECKING([if we can run test-kodFile]) +sntp_test_kodFile="no" +case "$sntp_ept:$cross:$host" in + no:0:*-apple-darwin12.6.0) ;; + *) sntp_test_kodFile="yes" ;; +esac +AC_MSG_RESULT([$sntp_test_kodFile]) +AM_CONDITIONAL([BUILD_TEST_KODFILE], [test x$sntp_test_kodFile = xyes]) + +]) +dnl ====================================================================== diff --git a/contrib/ntp/sntp/m4/version.m4 b/contrib/ntp/sntp/m4/version.m4 index 87597f3..3529730 100644 --- a/contrib/ntp/sntp/m4/version.m4 +++ b/contrib/ntp/sntp/m4/version.m4 @@ -1 +1 @@ -m4_define([VERSION_NUMBER],[4.2.8p7]) +m4_define([VERSION_NUMBER],[4.2.8p8]) diff --git a/contrib/ntp/sntp/scripts/Makefile.in b/contrib/ntp/sntp/scripts/Makefile.in index 0494fc3..952e7b8 100644 --- a/contrib/ntp/sntp/scripts/Makefile.in +++ b/contrib/ntp/sntp/scripts/Makefile.in @@ -113,8 +113,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) diff --git a/contrib/ntp/sntp/sntp-opts.c b/contrib/ntp/sntp/sntp-opts.c index 71c8ab0..e469d3e 100644 --- a/contrib/ntp/sntp/sntp-opts.c +++ b/contrib/ntp/sntp/sntp-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (sntp-opts.c) * - * It has been AutoGen-ed April 26, 2016 at 08:20:39 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:18:42 AM by AutoGen 5.18.5 * From the definitions sntp-opts.def * and the template file options * @@ -70,7 +70,7 @@ extern FILE * option_usage_fp; * static const strings for sntp options */ static char const sntp_opt_strs[2549] = -/* 0 */ "sntp 4.2.8p7\n" +/* 0 */ "sntp 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -155,7 +155,7 @@ static char const sntp_opt_strs[2549] = /* 2298 */ "LOAD_OPTS\0" /* 2308 */ "no-load-opts\0" /* 2321 */ "SNTP\0" -/* 2326 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p7\n" +/* 2326 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n" "\t\t[ hostname-or-IP ...]\n\0" /* 2485 */ "$HOME\0" @@ -163,7 +163,7 @@ static char const sntp_opt_strs[2549] = /* 2493 */ ".ntprc\0" /* 2500 */ "http://bugs.ntp.org, bugs@ntp.org\0" /* 2534 */ "\n\0" -/* 2536 */ "sntp 4.2.8p7"; +/* 2536 */ "sntp 4.2.8p8"; /** * ipv4 option description with @@ -1173,7 +1173,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via sntpOptions.pzCopyright */ - puts(_("sntp 4.2.8p7\n\ + puts(_("sntp 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -1263,7 +1263,7 @@ implied warranty.\n")); puts(_("load options from a config file")); /* referenced via sntpOptions.pzUsageTitle */ - puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p7\n\ + puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\ \t\t[ hostname-or-IP ...]\n")); @@ -1271,7 +1271,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\ puts(_("\n")); /* referenced via sntpOptions.pzFullVersion */ - puts(_("sntp 4.2.8p7")); + puts(_("sntp 4.2.8p8")); /* referenced via sntpOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/sntp/sntp-opts.h b/contrib/ntp/sntp/sntp-opts.h index 0c8fae6..9136f28 100644 --- a/contrib/ntp/sntp/sntp-opts.h +++ b/contrib/ntp/sntp/sntp-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (sntp-opts.h) * - * It has been AutoGen-ed April 26, 2016 at 08:20:38 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:18:40 AM by AutoGen 5.18.5 * From the definitions sntp-opts.def * and the template file options * @@ -91,9 +91,9 @@ typedef enum { /** count of all options for sntp */ #define OPTION_CT 23 /** sntp version */ -#define SNTP_VERSION "4.2.8p7" +#define SNTP_VERSION "4.2.8p8" /** Full sntp version text */ -#define SNTP_FULL_VERSION "sntp 4.2.8p7" +#define SNTP_FULL_VERSION "sntp 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/sntp/sntp.1sntpman b/contrib/ntp/sntp/sntp.1sntpman index e0f0553..6921dd3 100644 --- a/contrib/ntp/sntp/sntp.1sntpman +++ b/contrib/ntp/sntp/sntp.1sntpman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH sntp 1sntpman "26 Apr 2016" "4.2.8p7" "User Commands" +.TH sntp 1sntpman "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-EjaOrb/ag-RjaGqb) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-5CayKq/ag-fDaqJq) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:21:08 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:19:39 AM by AutoGen 5.18.5 .\" From the definitions sntp-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/sntp/sntp.1sntpmdoc b/contrib/ntp/sntp/sntp.1sntpmdoc index 959ab83..8025d49 100644 --- a/contrib/ntp/sntp/sntp.1sntpmdoc +++ b/contrib/ntp/sntp/sntp.1sntpmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt SNTP 1sntpmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:21:15 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:20:03 AM by AutoGen 5.18.5 .\" From the definitions sntp-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/sntp/sntp.html b/contrib/ntp/sntp/sntp.html index 2bbb8a1..46bad27 100644 --- a/contrib/ntp/sntp/sntp.html +++ b/contrib/ntp/sntp/sntp.html @@ -36,7 +36,7 @@ display the time offset of the system clock relative to the server clock. Run as root, it can correct the system clock to this offset as well. It can be run as an interactive command or from a cron job. - <p>This document applies to version 4.2.8p7 of <code>sntp</code>. + <p>This document applies to version 4.2.8p8 of <code>sntp</code>. <p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4 IETF specification. @@ -176,7 +176,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p7 +<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p8 Usage: sntp [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \ [ hostname-or-IP ...] Flg Arg Option-Name Description diff --git a/contrib/ntp/sntp/sntp.man.in b/contrib/ntp/sntp/sntp.man.in index f136a72..899c49a 100644 --- a/contrib/ntp/sntp/sntp.man.in +++ b/contrib/ntp/sntp/sntp.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH sntp @SNTP_MS@ "26 Apr 2016" "4.2.8p7" "User Commands" +.TH sntp @SNTP_MS@ "02 Jun 2016" "4.2.8p8" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-EjaOrb/ag-RjaGqb) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-5CayKq/ag-fDaqJq) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:21:08 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:19:39 AM by AutoGen 5.18.5 .\" From the definitions sntp-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/sntp/sntp.mdoc.in b/contrib/ntp/sntp/sntp.mdoc.in index 00a18e1..71dd224 100644 --- a/contrib/ntp/sntp/sntp.mdoc.in +++ b/contrib/ntp/sntp/sntp.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt SNTP @SNTP_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:21:15 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:20:03 AM by AutoGen 5.18.5 .\" From the definitions sntp-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/sntp/tests/Makefile.am b/contrib/ntp/sntp/tests/Makefile.am index c5338c7..0e14a87 100644 --- a/contrib/ntp/sntp/tests/Makefile.am +++ b/contrib/ntp/sntp/tests/Makefile.am @@ -34,8 +34,6 @@ run_unity = cd $(srcdir) && ruby ../unity/auto/generate_test_runner.rb check_PROGRAMS = \ test-crypto \ test-keyFile \ - test-kodDatabase \ - test-kodFile \ test-log \ test-networking \ test-packetHandling \ @@ -43,6 +41,14 @@ check_PROGRAMS = \ test-utilities \ $(NULL) +if BUILD_TEST_KODDATABASE +check_PROGRAMS += test-kodDatabase +endif + +if BUILD_TEST_KODFILE +check_PROGRAMS += test-kodFile +endif + noinst_HEADERS = \ sntptest.h \ $(NULL) diff --git a/contrib/ntp/sntp/tests/Makefile.in b/contrib/ntp/sntp/tests/Makefile.in index 9803fa8..e557947 100644 --- a/contrib/ntp/sntp/tests/Makefile.in +++ b/contrib/ntp/sntp/tests/Makefile.in @@ -90,11 +90,13 @@ build_triplet = @build@ host_triplet = @host@ EXTRA_PROGRAMS = check_PROGRAMS = test-crypto$(EXEEXT) test-keyFile$(EXEEXT) \ - test-kodDatabase$(EXEEXT) test-kodFile$(EXEEXT) \ test-log$(EXEEXT) test-networking$(EXEEXT) \ test-packetHandling$(EXEEXT) test-packetProcessing$(EXEEXT) \ - test-utilities$(EXEEXT) $(am__EXEEXT_1) -@NTP_CROSSCOMPILE_FALSE@am__append_1 = $(check_PROGRAMS) + test-utilities$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ + $(am__EXEEXT_3) +@BUILD_TEST_KODDATABASE_TRUE@am__append_1 = test-kodDatabase +@BUILD_TEST_KODFILE_TRUE@am__append_2 = test-kodFile +@NTP_CROSSCOMPILE_FALSE@am__append_3 = $(check_PROGRAMS) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ @@ -121,8 +123,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ @@ -132,6 +135,8 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = fileHandlingTest.h CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = +@BUILD_TEST_KODDATABASE_TRUE@am__EXEEXT_2 = test-kodDatabase$(EXEEXT) +@BUILD_TEST_KODFILE_TRUE@am__EXEEXT_3 = test-kodFile$(EXEEXT) am__objects_1 = am_test_crypto_OBJECTS = test_crypto-crypto.$(OBJEXT) \ test_crypto-run-crypto.$(OBJEXT) test_crypto-version.$(OBJEXT) \ @@ -863,7 +868,7 @@ test_log_SOURCES = \ #$(srcdir)/../version.c: $(srcdir)/../version.c # gcc -o version.o ../version.c -TESTS = $(am__append_1) +TESTS = $(am__append_3) SNTP_INCS = -I$(top_srcdir)/../include \ -I$(top_srcdir)/../lib/isc/include \ -I$(top_srcdir)/../lib/isc/$(LIBISC_PTHREADS_NOTHREADS)/include \ @@ -1270,20 +1275,6 @@ test-keyFile.log: test-keyFile$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -test-kodDatabase.log: test-kodDatabase$(EXEEXT) - @p='test-kodDatabase$(EXEEXT)'; \ - b='test-kodDatabase'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test-kodFile.log: test-kodFile$(EXEEXT) - @p='test-kodFile$(EXEEXT)'; \ - b='test-kodFile'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) test-log.log: test-log$(EXEEXT) @p='test-log$(EXEEXT)'; \ b='test-log'; \ @@ -1319,6 +1310,20 @@ test-utilities.log: test-utilities$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test-kodDatabase.log: test-kodDatabase$(EXEEXT) + @p='test-kodDatabase$(EXEEXT)'; \ + b='test-kodDatabase'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-kodFile.log: test-kodFile$(EXEEXT) + @p='test-kodFile$(EXEEXT)'; \ + b='test-kodFile'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ diff --git a/contrib/ntp/sntp/unity/Makefile.in b/contrib/ntp/sntp/unity/Makefile.in index a5758b4..e82e55e 100644 --- a/contrib/ntp/sntp/unity/Makefile.in +++ b/contrib/ntp/sntp/unity/Makefile.in @@ -114,8 +114,9 @@ am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \ $(top_srcdir)/m4/ntp_ver_suffix.m4 \ $(top_srcdir)/m4/openldap-thread-check.m4 \ $(top_srcdir)/m4/openldap.m4 $(top_srcdir)/m4/os_cflags.m4 \ - $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/sntp_problemtests.m4 \ + $(top_srcdir)/m4/version.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) diff --git a/contrib/ntp/sntp/version.c b/contrib/ntp/sntp/version.c index 7eae711..38424f3 100644 --- a/contrib/ntp/sntp/version.c +++ b/contrib/ntp/sntp/version.c @@ -2,4 +2,4 @@ * version file for sntp */ #include <config.h> -const char * Version = "sntp 4.2.8p6@1.3265-o Wed Apr 27 00:21:06 UTC 2016 (28)"; +const char * Version = "sntp 4.2.8p7@1.3265-o Thu Jun 2 11:19:34 UTC 2016 (29)"; diff --git a/contrib/ntp/util/invoke-ntp-keygen.texi b/contrib/ntp/util/invoke-ntp-keygen.texi index 90cef02..cc8a005 100644 --- a/contrib/ntp/util/invoke-ntp-keygen.texi +++ b/contrib/ntp/util/invoke-ntp-keygen.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntp-keygen.texi) # -# It has been AutoGen-ed April 26, 2016 at 08:30:20 PM by AutoGen 5.18.5 +# It has been AutoGen-ed June 2, 2016 at 07:39:40 AM by AutoGen 5.18.5 # From the definitions ntp-keygen-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -886,7 +886,7 @@ with a status code of 0. @exampleindent 0 @example -ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p7 +ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p8 Usage: ntp-keygen [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... Flg Arg Option-Name Description -b Num imbits identity modulus bits diff --git a/contrib/ntp/util/ntp-keygen-opts.c b/contrib/ntp/util/ntp-keygen-opts.c index 3799a52..2fb198b 100644 --- a/contrib/ntp/util/ntp-keygen-opts.c +++ b/contrib/ntp/util/ntp-keygen-opts.c @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c) * - * It has been AutoGen-ed April 26, 2016 at 08:30:03 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:39:24 AM by AutoGen 5.18.5 * From the definitions ntp-keygen-opts.def * and the template file options * @@ -72,7 +72,7 @@ extern FILE * option_usage_fp; * static const strings for ntp-keygen options */ static char const ntp_keygen_opt_strs[2419] = -/* 0 */ "ntp-keygen (ntp) 4.2.8p7\n" +/* 0 */ "ntp-keygen (ntp) 4.2.8p8\n" "Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the NTP License, copies of which\n" @@ -164,14 +164,14 @@ static char const ntp_keygen_opt_strs[2419] = /* 2202 */ "no-load-opts\0" /* 2215 */ "no\0" /* 2218 */ "NTP_KEYGEN\0" -/* 2229 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p7\n" +/* 2229 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p8\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0" /* 2343 */ "$HOME\0" /* 2349 */ ".\0" /* 2351 */ ".ntprc\0" /* 2358 */ "http://bugs.ntp.org, bugs@ntp.org\0" /* 2392 */ "\n\0" -/* 2394 */ "ntp-keygen (ntp) 4.2.8p7"; +/* 2394 */ "ntp-keygen (ntp) 4.2.8p8"; /** * imbits option description: @@ -1309,7 +1309,7 @@ static void bogus_function(void) { translate option names. */ /* referenced via ntp_keygenOptions.pzCopyright */ - puts(_("ntp-keygen (ntp) 4.2.8p7\n\ + puts(_("ntp-keygen (ntp) 4.2.8p8\n\ Copyright (C) 1992-2016 The University of Delaware and Network Time Foundation, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the NTP License, copies of which\n\ @@ -1408,14 +1408,14 @@ implied warranty.\n")); puts(_("load options from a config file")); /* referenced via ntp_keygenOptions.pzUsageTitle */ - puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p7\n\ + puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p8\n\ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n")); /* referenced via ntp_keygenOptions.pzExplain */ puts(_("\n")); /* referenced via ntp_keygenOptions.pzFullVersion */ - puts(_("ntp-keygen (ntp) 4.2.8p7")); + puts(_("ntp-keygen (ntp) 4.2.8p8")); /* referenced via ntp_keygenOptions.pzFullUsage */ puts(_("<<<NOT-FOUND>>>")); diff --git a/contrib/ntp/util/ntp-keygen-opts.h b/contrib/ntp/util/ntp-keygen-opts.h index a88fdd1..68d6272 100644 --- a/contrib/ntp/util/ntp-keygen-opts.h +++ b/contrib/ntp/util/ntp-keygen-opts.h @@ -1,7 +1,7 @@ /* * EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.h) * - * It has been AutoGen-ed April 26, 2016 at 08:30:02 PM by AutoGen 5.18.5 + * It has been AutoGen-ed June 2, 2016 at 07:39:23 AM by AutoGen 5.18.5 * From the definitions ntp-keygen-opts.def * and the template file options * @@ -94,9 +94,9 @@ typedef enum { /** count of all options for ntp-keygen */ #define OPTION_CT 26 /** ntp-keygen version */ -#define NTP_KEYGEN_VERSION "4.2.8p7" +#define NTP_KEYGEN_VERSION "4.2.8p8" /** Full ntp-keygen version text */ -#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p7" +#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p8" /** * Interface defines for all options. Replace "n" with the UPPER_CASED diff --git a/contrib/ntp/util/ntp-keygen.1ntp-keygenman b/contrib/ntp/util/ntp-keygen.1ntp-keygenman index da1bd52..b3c1f2f 100644 --- a/contrib/ntp/util/ntp-keygen.1ntp-keygenman +++ b/contrib/ntp/util/ntp-keygen.1ntp-keygenman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp-keygen 1ntp-keygenman "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntp-keygen 1ntp-keygenman "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FRa4eL/ag-RRaWdL) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-.JaGB0/ag-lKayA0) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:30:15 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:36 AM by AutoGen 5.18.5 .\" From the definitions ntp-keygen-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc b/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc index 0a7c0fb..0e5a5eb 100644 --- a/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc +++ b/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_KEYGEN 1ntp-keygenmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:30:23 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:43 AM by AutoGen 5.18.5 .\" From the definitions ntp-keygen-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/ntp/util/ntp-keygen.html b/contrib/ntp/util/ntp-keygen.html index 30e8485..b7ca2c8 100644 --- a/contrib/ntp/util/ntp-keygen.html +++ b/contrib/ntp/util/ntp-keygen.html @@ -70,7 +70,7 @@ All other files are in PEM-encoded printable ASCII format so they can be embedded as MIME attachments in mail to other sites. - <p>This document applies to version 4.2.8p7 of <code>ntp-keygen</code>. + <p>This document applies to version 4.2.8p8 of <code>ntp-keygen</code>. <div class="node"> <p><hr> @@ -1085,7 +1085,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to <span class="file">more</span>. Both will exit with a status code of 0. -<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p6 +<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p7 Usage: ntp-keygen [ -<flag> [<val>] | --<name>[{=| }<val>] ]... Flg Arg Option-Name Description -b Num imbits identity modulus bits diff --git a/contrib/ntp/util/ntp-keygen.man.in b/contrib/ntp/util/ntp-keygen.man.in index aa0790a..6c8b5db 100644 --- a/contrib/ntp/util/ntp-keygen.man.in +++ b/contrib/ntp/util/ntp-keygen.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp-keygen @NTP_KEYGEN_MS@ "26 Apr 2016" "ntp (4.2.8p7)" "User Commands" +.TH ntp-keygen @NTP_KEYGEN_MS@ "02 Jun 2016" "ntp (4.2.8p8)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FRa4eL/ag-RRaWdL) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-.JaGB0/ag-lKayA0) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:30:15 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:36 AM by AutoGen 5.18.5 .\" From the definitions ntp-keygen-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/contrib/ntp/util/ntp-keygen.mdoc.in b/contrib/ntp/util/ntp-keygen.mdoc.in index 50a8f6a..d108b60 100644 --- a/contrib/ntp/util/ntp-keygen.mdoc.in +++ b/contrib/ntp/util/ntp-keygen.mdoc.in @@ -1,9 +1,9 @@ -.Dd April 26 2016 +.Dd June 2 2016 .Dt NTP_KEYGEN @NTP_KEYGEN_MS@ User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc) .\" -.\" It has been AutoGen-ed April 26, 2016 at 08:30:23 PM by AutoGen 5.18.5 +.\" It has been AutoGen-ed June 2, 2016 at 07:39:43 AM by AutoGen 5.18.5 .\" From the definitions ntp-keygen-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/contrib/one-true-awk/b.c b/contrib/one-true-awk/b.c index 4479935..01b91f3 100644 --- a/contrib/one-true-awk/b.c +++ b/contrib/one-true-awk/b.c @@ -85,11 +85,11 @@ fa *makedfa(const char *s, int anchor) /* returns dfa for reg expr s */ fa *pfa; static int now = 1; - if (setvec == 0) { /* first time through any RE */ + if (setvec == NULL) { /* first time through any RE */ maxsetvec = MAXLIN; setvec = (int *) malloc(maxsetvec * sizeof(int)); tmpset = (int *) malloc(maxsetvec * sizeof(int)); - if (setvec == 0 || tmpset == 0) + if (setvec == NULL || tmpset == NULL) overflo("out of space initializing makedfa"); } @@ -305,11 +305,11 @@ char *cclenter(const char *argp) /* add a character class */ int j; uschar *p = (uschar *) argp; uschar *op, *bp; - static uschar *buf = 0; + static uschar *buf = NULL; static int bufsz = 100; op = p; - if (buf == 0 && (buf = (uschar *) malloc(bufsz)) == NULL) + if (buf == NULL && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space for character class [%.10s...] 1", p); bp = buf; for (i = 0; (c = *p++) != 0; ) { @@ -368,7 +368,7 @@ void cfoll(fa *f, Node *v) /* enter follow set of each leaf of vertex v into lfo maxsetvec *= 4; setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); - if (setvec == 0 || tmpset == 0) + if (setvec == NULL || tmpset == NULL) overflo("out of space in cfoll()"); } for (i = 0; i <= f->accept; i++) @@ -409,7 +409,7 @@ int first(Node *p) /* collects initially active leaves of p into setvec */ maxsetvec *= 4; setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); - if (setvec == 0 || tmpset == 0) + if (setvec == NULL || tmpset == NULL) overflo("out of space in first()"); } if (type(p) == EMPTYRE) { @@ -788,7 +788,7 @@ int relex(void) /* lexical analyzer for reparse */ { int c, n; int cflag; - static uschar *buf = 0; + static uschar *buf = NULL; static int bufsz = 100; uschar *bp; struct charclass *cc; @@ -813,7 +813,7 @@ int relex(void) /* lexical analyzer for reparse */ rlxval = c; return CHAR; case '[': - if (buf == 0 && (buf = (uschar *) malloc(bufsz)) == NULL) + if (buf == NULL && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space in reg expr %.10s..", lastre); bp = buf; if (*prestr == '^') { @@ -878,7 +878,7 @@ int cgoto(fa *f, int s, int c) maxsetvec *= 4; setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); - if (setvec == 0 || tmpset == 0) + if (setvec == NULL || tmpset == NULL) overflo("out of space in cgoto()"); } for (i = 0; i <= f->accept; i++) @@ -900,7 +900,7 @@ int cgoto(fa *f, int s, int c) maxsetvec *= 4; setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); - if (setvec == 0 || tmpset == 0) + if (setvec == NULL || tmpset == NULL) overflo("cgoto overflow"); } if (setvec[q[j]] == 0) { diff --git a/contrib/one-true-awk/lex.c b/contrib/one-true-awk/lex.c index d09f550..0c65a9f 100644 --- a/contrib/one-true-awk/lex.c +++ b/contrib/one-true-awk/lex.c @@ -170,10 +170,10 @@ int reg = 0; /* 1 => return a REGEXPR now */ int yylex(void) { int c; - static char *buf = 0; + static char *buf = NULL; static int bufsize = 5; /* BUG: setting this small causes core dump! */ - if (buf == 0 && (buf = (char *) malloc(bufsize)) == NULL) + if (buf == NULL && (buf = (char *) malloc(bufsize)) == NULL) FATAL( "out of space in yylex" ); if (sc) { sc = 0; @@ -358,10 +358,10 @@ int string(void) { int c, n; char *s, *bp; - static char *buf = 0; + static char *buf = NULL; static int bufsz = 500; - if (buf == 0 && (buf = (char *) malloc(bufsz)) == NULL) + if (buf == NULL && (buf = (char *) malloc(bufsz)) == NULL) FATAL("out of space for strings"); for (bp = buf; (c = input()) != '"'; ) { if (!adjbuf(&buf, &bufsz, bp-buf+2, 500, &bp, "string")) @@ -504,11 +504,11 @@ void startreg(void) /* next call to yylex will return a regular expression */ int regexpr(void) { int c; - static char *buf = 0; + static char *buf = NULL; static int bufsz = 500; char *bp; - if (buf == 0 && (buf = (char *) malloc(bufsz)) == NULL) + if (buf == NULL && (buf = (char *) malloc(bufsz)) == NULL) FATAL("out of space for rex expr"); bp = buf; for ( ; (c = input()) != '/' && c != 0; ) { @@ -539,7 +539,7 @@ char ebuf[300]; char *ep = ebuf; char yysbuf[100]; /* pushback buffer */ char *yysptr = yysbuf; -FILE *yyin = 0; +FILE *yyin = NULL; int input(void) /* get next lexical input character */ { diff --git a/contrib/one-true-awk/maketab.c b/contrib/one-true-awk/maketab.c index 31acd75..b59e815 100644 --- a/contrib/one-true-awk/maketab.c +++ b/contrib/one-true-awk/maketab.c @@ -149,7 +149,7 @@ int main(int argc, char *argv[]) table[p->token-FIRSTTOKEN] = p->name; printf("\nCell *(*proctab[%d])(Node **, int) = {\n", SIZE); for (i=0; i<SIZE; i++) - if (table[i]==0) + if (table[i]==NULL) printf("\tnullproc,\t/* %s */\n", names[i]); else printf("\t%s,\t/* %s */\n", table[i], names[i]); diff --git a/contrib/one-true-awk/parse.c b/contrib/one-true-awk/parse.c index 8304ded..753a50d 100644 --- a/contrib/one-true-awk/parse.c +++ b/contrib/one-true-awk/parse.c @@ -259,7 +259,7 @@ int isarg(const char *s) /* is s in argument list for current function? */ Node *p = arglist; int n; - for (n = 0; p != 0; p = p->nnext, n++) + for (n = 0; p != NULL; p = p->nnext, n++) if (strcmp(((Cell *)(p->narg[0]))->nval, s) == 0) return n; return -1; diff --git a/contrib/one-true-awk/run.c b/contrib/one-true-awk/run.c index 2bcd9df..1e5f1c2 100644 --- a/contrib/one-true-awk/run.c +++ b/contrib/one-true-awk/run.c @@ -502,7 +502,7 @@ Cell *awkdelete(Node **a, int n) /* a[0] is symtab, a[1] is list of subscripts * x = execute(a[0]); /* Cell* for symbol table */ if (!isarr(x)) return True; - if (a[1] == 0) { /* delete the elements, not the table */ + if (a[1] == NULL) { /* delete the elements, not the table */ freesymtab(x); x->tval &= ~STR; x->tval |= ARR; @@ -586,7 +586,7 @@ Cell *matchop(Node **a, int n) /* ~ and match() */ } x = execute(a[1]); /* a[1] = target text */ s = getsval(x); - if (a[0] == 0) /* a[1] == 0: already-compiled reg expr */ + if (a[0] == NULL) /* a[1] == 0: already-compiled reg expr */ i = (*mf)((fa *) a[2], s); else { y = execute(a[2]); /* a[2] = regular expr */ @@ -702,7 +702,7 @@ Cell *gettemp(void) /* get a tempcell */ FATAL("out of space for temporaries"); for(i = 1; i < 100; i++) tmps[i-1].cnext = &tmps[i]; - tmps[i-1].cnext = 0; + tmps[i-1].cnext = NULL; } x = tmps; tmps = x->cnext; @@ -737,18 +737,18 @@ Cell *substr(Node **a, int nnn) /* substr(a[0], a[1], a[2]) */ int k, m, n; char *s; int temp; - Cell *x, *y, *z = 0; + Cell *x, *y, *z = NULL; x = execute(a[0]); y = execute(a[1]); - if (a[2] != 0) + if (a[2] != NULL) z = execute(a[2]); s = getsval(x); k = strlen(s) + 1; if (k <= 1) { tempfree(x); tempfree(y); - if (a[2] != 0) { + if (a[2] != NULL) { tempfree(z); } x = gettemp(); @@ -761,7 +761,7 @@ Cell *substr(Node **a, int nnn) /* substr(a[0], a[1], a[2]) */ else if (m > k) m = k; tempfree(y); - if (a[2] != 0) { + if (a[2] != NULL) { n = (int) getfval(z); tempfree(z); } else @@ -1175,7 +1175,7 @@ Cell *pastat(Node **a, int n) /* a[0] { a[1] } */ { Cell *x; - if (a[0] == 0) + if (a[0] == NULL) x = execute(a[1]); else { x = execute(a[0]); @@ -1212,16 +1212,16 @@ Cell *dopa2(Node **a, int n) /* a[0], a[1] { a[2] } */ Cell *split(Node **a, int nnn) /* split(a[0], a[1], a[2]); a[3] is type */ { - Cell *x = 0, *y, *ap; + Cell *x = NULL, *y, *ap; char *s, *origs; int sep; - char *t, temp, num[50], *fs = 0; + char *t, temp, num[50], *fs = NULL; int n, tempstat, arg3type; y = execute(a[0]); /* source string */ origs = s = strdup(getsval(y)); arg3type = ptoi(a[3]); - if (a[2] == 0) /* fs string */ + if (a[2] == NULL) /* fs string */ fs = *FS; else if (arg3type == STRING) { /* split(str,arr,"string") */ x = execute(a[2]); @@ -1340,7 +1340,7 @@ Cell *split(Node **a, int nnn) /* split(a[0], a[1], a[2]); a[3] is type */ tempfree(ap); tempfree(y); free(origs); - if (a[2] != 0 && arg3type == STRING) { + if (a[2] != NULL && arg3type == STRING) { tempfree(x); } x = gettemp(); @@ -1372,7 +1372,7 @@ Cell *ifstat(Node **a, int n) /* if (a[0]) a[1]; else a[2] */ if (istrue(x)) { tempfree(x); x = execute(a[1]); - } else if (a[2] != 0) { + } else if (a[2] != NULL) { tempfree(x); x = execute(a[2]); } @@ -1424,7 +1424,7 @@ Cell *forstat(Node **a, int n) /* for (a[0]; a[1]; a[2]) a[3] */ x = execute(a[0]); tempfree(x); for (;;) { - if (a[1]!=0) { + if (a[1]!=NULL) { x = execute(a[1]); if (!istrue(x)) return(x); else tempfree(x); @@ -1506,7 +1506,7 @@ Cell *bltin(Node **a, int n) /* builtin functions. a[0] is type, a[1] is arg lis case FCOS: u = cos(getfval(x)); break; case FATAN: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("atan2 requires two arguments; returning 1.0"); u = 1.0; } else { @@ -1569,7 +1569,7 @@ Cell *bltin(Node **a, int n) /* builtin functions. a[0] is type, a[1] is arg lis tempfree(x); x = gettemp(); setfval(x, u); - if (nextarg != 0) { + if (nextarg != NULL) { WARNING("warning: function has too many arguments"); for ( ; nextarg; nextarg = nextarg->nnext) execute(nextarg); @@ -1583,7 +1583,7 @@ Cell *printstat(Node **a, int n) /* print a[0] */ Cell *y; FILE *fp; - if (a[1] == 0) /* a[1] is redirection operator, a[2] is file */ + if (a[1] == NULL) /* a[1] is redirection operator, a[2] is file */ fp = stdout; else fp = redirect(ptoi(a[1]), a[2]); @@ -1596,7 +1596,7 @@ Cell *printstat(Node **a, int n) /* print a[0] */ else fputs(*OFS, fp); } - if (a[1] != 0) + if (a[1] != NULL) fflush(fp); if (ferror(fp)) FATAL("write error on %s", filename(fp)); @@ -1655,7 +1655,7 @@ FILE *openfile(int a, const char *us) { const char *s = us; int i, m; - FILE *fp = 0; + FILE *fp = NULL; if (*s == '\0') FATAL("null file name in print or getline"); @@ -1670,7 +1670,7 @@ FILE *openfile(int a, const char *us) return NULL; for (i=0; i < nfiles; i++) - if (files[i].fp == 0) + if (files[i].fp == NULL) break; if (i >= nfiles) { struct files *nf; @@ -1787,7 +1787,7 @@ Cell *sub(Node **a, int nnn) /* substitute command */ FATAL("out of memory in sub"); x = execute(a[3]); /* target string */ t = getsval(x); - if (a[0] == 0) /* 0 => a[1] is already-compiled regexpr */ + if (a[0] == NULL) /* 0 => a[1] is already-compiled regexpr */ pfa = (fa *) a[1]; /* regular expression */ else { y = execute(a[1]); @@ -1827,7 +1827,7 @@ Cell *sub(Node **a, int nnn) /* substitute command */ if (pb > buf + bufsz) FATAL("sub result2 %.30s too big; can't happen", buf); setsval(x, buf); /* BUG: should be able to avoid copy */ - result = True;; + result = True; } tempfree(x); tempfree(y); @@ -1850,7 +1850,7 @@ Cell *gsub(Node **a, int nnn) /* global substitute */ num = 0; x = execute(a[3]); /* target string */ t = getsval(x); - if (a[0] == 0) /* 0 => a[1] is already-compiled regexpr */ + if (a[0] == NULL) /* 0 => a[1] is already-compiled regexpr */ pfa = (fa *) a[1]; /* regular expression */ else { y = execute(a[1]); diff --git a/contrib/one-true-awk/tran.c b/contrib/one-true-awk/tran.c index a9fa325..e364ebd 100644 --- a/contrib/one-true-awk/tran.c +++ b/contrib/one-true-awk/tran.c @@ -174,7 +174,7 @@ void freesymtab(Cell *ap) /* free a symbol table */ free(cp); tp->nelem--; } - tp->tab[i] = 0; + tp->tab[i] = NULL; } if (tp->nelem != 0) WARNING("can't happen: inconsistent element count freeing %s", ap->nval); |