From: Dave Hart Date: Sun, 24 Oct 2010 03:48:00 +0000 (+0000) Subject: Merge shiny.ad.hartbrothers.com:C:/ntp/ntp-stable-1675 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd9a2715bb0f7915519d6207d22b965528dd6e5d;p=thirdparty%2Fntp.git Merge shiny.ad.hartbrothers.com:C:/ntp/ntp-stable-1675 into shiny.ad.hartbrothers.com:C:/ntp/ntp-dev-1675 bk: 4cc3ac70-c_ICAwqbfj_LcpRr29SXA --- fd9a2715bb0f7915519d6207d22b965528dd6e5d diff --cc ChangeLog index bd7f71b9ae,5b0fe5ecfb..eb20656749 --- a/ChangeLog +++ b/ChangeLog @@@ -1,421 -1,7 +1,426 @@@ ++* [Bug 1675] from 4.2.6p3-RC6: Prohibit includefile remote config. +(4.2.7p69) 2010/10/23 Released by Harlan Stenn - * [Bug 1671] Audoomatic delay calibration is sometimes inaccurate. ++* [Bug 1671] Automatic delay calibration is sometimes inaccurate. +(4.2.7p68) 2010/10/22 Released by Harlan Stenn +* [Bug 1669] from 4.2.6p3-RC5: NTP fails to compile on IBM AIX 5.3. +* [Bug 1670] Fix peer->bias and broadcastdelay. +* Documentation updates from Dave Mills. +* Documentation EOL cleanup. +(4.2.7p67) 2010/10/21 Released by Harlan Stenn +* [Bug 1649] from 4.2.6p3-RC5: Require NMEA checksum if $GPRMC or + previously seen. +(4.2.7p66) 2010/10/19 Released by Harlan Stenn +* [Bug 1277] Provide and use O(1) FIFOs, esp. in the config tree code. +* Remove unused 'bias' configuration keyword. +(4.2.7p65) 2010/10/16 Released by Harlan Stenn +* [Bug 1584] from 4.2.6p3-RC4: wrong SNMP type for precision, + resolution. +* Remove 'calldelay' and 'sign' remnants from parser, ntp_config.c. +(4.2.7p64) 2010/10/15 Released by Harlan Stenn +* [Bug 1584] from 4.2.6p3-RC3: ntpsnmpd OID must be mib-2.197. +* [Bug 1659] from 4.2.6p3-RC4: Need CLOCK_TRUETIME not CLOCK_TRUE. +* [Bug 1663] ntpdsim should not open net sockets. +* [Bug 1665] from 4.2.6p3-RC4: is_anycast() u_int32_t should be u_int32. +* from 4.2.6p3: ntpsnmpd, libntpq warning cleanup. +* Remove 'calldelay' and 'sign' keywords (Dave Mills). +* Documentation updates from Dave Mills. +(4.2.7p63) 2010/10/13 Released by Harlan Stenn +* [Bug 1080] from 4.2.6p3-RC3: ntpd on ipv6 routers very chatty. +* Documentation nit cleanup. +* Documentation updates from Dave Mills. +(4.2.7p62) 2010/10/12 Released by Harlan Stenn +* [Bug 750] from 4.2.6p3-RC3: Non-existing device causes coredump with + RIPE-NCC driver. +* [Bug 1567] from 4.2.6p3-RC3: Support Arbiter 1093C Satellite Clock on + Windows. +* [Bug 1581] from 4.2.6p3-RC3: printf format string mismatch leftover. +* [Bug 1659] from 4.2.6p3-RC3: Support Truetime Satellite Clocks on + Windows. +* [Bug 1660] from 4.2.6p3-RC3: On some systems, test is in /usr/bin, not + /bin. +* [Bug 1661] from 4.2.6p3-RC3: Re-indent refclock_ripencc.c. +* Lose peer_count from ntp_peer.c and ntp_proto.c (Dave Mills). +* Documentation updates from Dave Mills. +(4.2.7p61) 2010/10/06 Released by Harlan Stenn +* Documentation and code cleanup from Dave Mills. No more NTP_MAXASSOC. +(4.2.7p60) 2010/10/04 Released by Harlan Stenn +* Documentation updates from Dave Mills. +(4.2.7p59) 2010/10/02 Released by Harlan Stenn +* Documentation updates from Dave Mills. +* Variable name cleanup from Dave Mills. +* [Bug 1657] darwin needs res_9_init, not res_init. +(4.2.7p58) 2010/09/30 Released by Harlan Stenn +* Clock select bugfix from Dave Mills. +* [Bug 1554] peer may stay selected as system peer after becoming + unreachable. +* [Bug 1644] from 4.2.6p3-RC3: cvo.sh should use lsb_release to identify + linux distros. +* [Bug 1646] ntpd crashes with relative path to logfile. +(4.2.7p57) 2010/09/27 Released by Harlan Stenn +* Documentation updates from Dave Mills. +(4.2.7p56) 2010/09/25 Released by Harlan Stenn +* Clock combining algorithm improvements from Dave Mills. +* Documentation updates from Dave Mills. +* [Bug 1642] ntpdsim can't find simulate block in config file. +* [Bug 1643] from 4.2.6p3-RC3: Range-check the decoding of the RIPE-NCC + status codes. +(4.2.7p55) 2010/09/22 Released by Harlan Stenn +* Documentation updates from Dave Mills. +* [Bug 1636] from 4.2.6p3-RC2: segfault after denied remote config. +(4.2.7p54) 2010/09/21 Released by Harlan Stenn +* More Initial convergence improvements from Dave Mills. +* Documentation updates from Dave Mills. +* [Bug 1635] from 4.2.6p3-RC2: "filegen ... enable" is not default. +(4.2.7p53) 2010/09/20 Released by Harlan Stenn +* Documentation updates from Dave Mills. +* More Initial convergence improvements from Dave Mills. +(4.2.7p52) 2010/09/19 Released by Harlan Stenn +* Initial convergence improvements from Dave Mills. +(4.2.7p51) 2010/09/18 Released by Harlan Stenn +* [Bug 1344] from 4.2.6p3-RC1: ntpd on Windows exits without logging + cause. +* [Bug 1629] 4.2.7p50 configure.ac changes invalidate config.cache. +* [Bug 1630] 4.2.7p50 cannot bootstrap on Autoconf 2.61. +(4.2.7p50) 2010/09/16 Released by Harlan Stenn +* Cleanup NTP_LIB_M. +* [Bug 1628] Clean up -lxnet/-lsocket usage for (open)solaris. +(4.2.7p49) 2010/09/13 Released by Harlan Stenn +* Documentation updates from Dave Mills. +(4.2.7p48) 2010/09/12 Released by Harlan Stenn +* Documentation updates from Dave Mills. +(4.2.7p47) 2010/09/11 Released by Harlan Stenn +* Documentation updates from Dave Mills. +* [Bug 1588] finish configure --disable-autokey implementation. +* [Bug 1616] refclock_acts.c: if (pp->leap == 2) is always false. +* [Bug 1620] [Backward Incompatible] "discard minimum" value should be in + seconds, not log2 seconds. +(4.2.7p46) 2010/09/10 Released by Harlan Stenn +* Use AC_SEARCH_LIBS instead of AC_CHECK_LIB for NTP_LIB_M. +(4.2.7p45) 2010/09/05 Released by Harlan Stenn +* [Bug 1578] Consistently use -lm when needed. +(4.2.7p44) 2010/08/27 Released by Harlan Stenn +* [Bug 1573] from 4.2.6p3-beta1: Miscalculation of offset in sntp. +(4.2.7p43) 2010/08/26 Released by Harlan Stenn +* [Bug 1602] Refactor some of the sntp/ directory to facililtate testing. +(4.2.7p42) 2010/08/18 Released by Harlan Stenn +* [Bug 1593] ntpd abort in free() with logconfig syntax error. +* [Bug 1595] from 4.2.6p3-beta1: empty last line in key file causes + duplicate key to be added +* [Bug 1597] from 4.2.6p3-beta1: packet processing ignores RATE KoD packets, + Because of a bug in string comparison. +(4.2.7p41) 2010/07/28 Released by Harlan Stenn +* [Bug 1581] from 4.2.6p3-beta1: ntp_intres.c size_t printf format + string mismatch. +* [Bug 1586] ntpd 4.2.7p40 doesn't write to syslog after fork on QNX. +* Avoid race with parallel builds using same source directory in + scripts/genver by using build directory for temporary files. +* orphanwait documentation updates. +(4.2.7p40) 2010/07/12 Released by Harlan Stenn +* [Bug 1395] ease ntpdate elimination with ntpd -w/--wait-sync +* [Bug 1396] allow servers on ntpd command line like ntpdate +(4.2.7p39) 2010/07/09 Released by Harlan Stenn +* Fix typo in driver28.html. +* [Bug 1581] from 4.2.6p2: size_t printf format string mismatches, IRIG + string buffers undersized. Mostly backported from earlier ntp-dev + fixes by Juergen Perlinger. +(4.2.7p38) 2010/06/20 Released by Harlan Stenn +* [Bug 1570] backported to 4.2.6p2-RC7. +* [Bug 1575] from 4.2.6p2-RC7: use 'snprintf' with LIB_BUFLENGTH in + inttoa.c, tvtoa.c and utvtoa.c +* [Bug 1576] backported to 4.2.6p2-RC7. +* Typo fix in a comment in ntp_proto.c. +(4.2.7p37) 2010/06/19 Released by Harlan Stenn +* [Bug 1576] sys/sysctl.h depends on sys/param.h on OpenBSD. +(4.2.7p36) 2010/06/15 Released by Harlan Stenn +* [Bug 1560] Initial support for orphanwait, from Dave Mills. +* clock_filter()/reachability fixes from Dave Mills. +(4.2.7p35) 2010/06/12 Released by Harlan Stenn +* Rewrite of multiprecision macros in 'ntp_fp.h' from J. Perlinger + +* [Bug 715] from 4.2.6p2-RC6: libisc Linux IPv6 interface iteration + drops multicast flags. +(4.2.7p34) 2010/06/05 Released by Harlan Stenn +* [Bug 1570] serial clock drivers get outdated input from kernel tty + line buffer after startup +(4.2.7p33) 2010/06/04 Released by Harlan Stenn +* [Bug 1561] from 4.2.6p2-RC5: ntpq, ntpdc "passwd" prompts for MD5 + password w/SHA1. +* [Bug 1565] from 4.2.6p2-RC5: sntp/crypto.c compile fails on MacOS over + vsnprintf(). +* from 4.2.6p2-RC5: Windows port: do not exit in + ntp_timestamp_from_counter() without first logging the reason. +(4.2.7p32) 2010/05/19 Released by Harlan Stenn +* Copyright file cleanup from Dave Mills. +* [Bug 1555] from 4.2.6p2-RC4: sntp illegal C (mixed code and + declarations). +* [Bug 1558] pool prototype associations have 0.0.0.0 for remote addr. +* configure.ac: add --disable-autokey, #define AUTOKEY to enable future + support for building without Autokey, but with OpenSSL for its digest + algorithms (hash functions). Code must be modified to use #ifdef + AUTOKEY instead of #ifdef OPENSSL where appropriate to complete this. +* include/ntp_crypto.h: make assumption AUTOKEY implies OPENSSL explicit. +(4.2.7p31) 2010/05/11 Released by Harlan Stenn +* [Bug 1325] from 4.2.6p2-RC3: unreachable code sntp recv_bcst_data(). +* [Bug 1459] from 4.2.6p2-RC3: sntp MD5 authentication does not work + with ntpd. +* [Bug 1552] from 4.2.6p2-RC3: update and complete broadcast and crypto + features in sntp. +* [Bug 1553] from 4.2.6p2-RC3: sntp/configure.ac OpenSSL support. +* from 4.2.6p2-RC3: Escape unprintable characters in a refid in ntpq -p + billboard. +* from 4.2.6p2-RC3: Simplify hash client code by providing OpenSSL + EVP_*() API when built without OpenSSL. (already in 4.2.7) +* from 4.2.6p2-RC3: Do not depend on ASCII in sntp. +(4.2.7p30) 2010/05/06 Released by Harlan Stenn +* [Bug 1526] ntpd DNS pipe read EINTR with no network at startup. +* Update the ChangeLog entries when merging items from -stable. +(4.2.7p29) 2010/05/04 Released by Harlan Stenn +* [Bug 1542] ntpd mrulist response may have incorrect last.older. +* [Bug 1543] ntpq mrulist must refresh nonce when retrying. +* [Bug 1544] ntpq mrulist sscanf timestamp format mismatch on 64-bit. +* Windows compiling hints/winnt.html update from G. Sunil Tej. +(4.2.7p28) 2010/05/03 Released by Harlan Stenn +* [Bug 1512] from 4.2.6p2-RC3: ntpsnmpd should connect to net-snmpd + via a unix-domain socket by default. + Provide a command-line 'socket name' option. +* [Bug 1538] from 4.2.6p2-RC3: update refclock_nmea.c's call to + getprotobyname(). +* [Bug 1541] from 4.2.6p2-RC3: Fix wrong keyword for "maxclock". +(4.2.7p27) 2010/04/27 Released by Harlan Stenn +(4.2.7p26) 2010/04/24 Released by Harlan Stenn +* [Bug 1465] from 4.2.6p2-RC2: Make sure time from TS2100 is not + invalid (backport from -dev). +* [Bug 1528] from 4.2.6p2-RC2: Fix EDITLINE_LIBS link order for ntpq + and ntpdc. +* [Bug 1531] Require nonce with mrulist requests. +* [Bug 1532] Remove ntpd support for ntpdc's monlist in favor of ntpq's + mrulist. +* [Bug 1534] from 4.2.6p2-RC2: conflicts with VC++ 2010 errno.h. +* [Bug 1535] from 4.2.6p2-RC2: "restrict -4 default" and "restrict + -6 default" ignored. +(4.2.7p25) 2010/04/20 Released by Harlan Stenn +* [Bug 1528] from 4.2.6p2-RC2: Remove --with-arlib from br-flock. +* [Bug 1503] [Bug 1504] [Bug 1518] [Bug 1522] from 4.2.6p2-RC2: + all of which were fixed in 4.2.7 previously. +(4.2.7p24) 2010/04/13 Released by Harlan Stenn +* [Bug 1390] Control PPS on the Oncore M12. +* [Bug 1518] Windows ntpd should lock to one processor more + conservatively. +* [Bug 1520] '%u' formats for size_t gives warnings with 64-bit builds. +* [Bug 1522] Enable range syntax "trustedkey (301 ... 399)". +* Documentation updates for 4.2.7p22 changes and additions, updating + ntpdc.html, ntpq.html, accopt.html, confopt.html, manyopt.html, + miscopt.html, and miscopt.txt. +* accopt.html: non-ntpport doc changes from Dave Mills. +* Modify full MRU list preemption when full to match "discard monitor" + documentation, by removing exception for count == 1. +(4.2.7p23) 2010/04/04 Released by Harlan Stenn +* [Bug 1516] unpeer by IP address fails, DNS name works. +* [Bug 1517] ntpq and ntpdc should verify reverse DNS before use. + ntpq and ntpdc now use the following format for showing purported + DNS names from IP address "reverse" DNS lookups when the DNS name + does not exist or does not include the original IP address among + the results: "192.168.1.2 (fake.dns.local)". +(4.2.7p22) 2010/04/02 Released by Harlan Stenn +* [Bug 1432] Don't set inheritable flag for linux capabilities. +* [Bug 1465] Make sure time from TS2100 is not invalid. +* [Bug 1483] AI_NUMERICSERV undefined in 4.2.7p20. +* [Bug 1497] fudge is broken by getnetnum() change. +* [Bug 1503] Auto-enabling of monitor for "restrict ... limited" wrong. +* [Bug 1504] ntpdate tickles ntpd "discard minimum 1" rate limit if + "restrict ... limited" is used. +* ntpdate: stop querying source after KoD packet response, log it. +* ntpdate: rate limit each server to 2s between packets. +* From J. N. Perlinger: avoid pointer wraparound warnings in dolfptoa(), + printf format mismatches with 64-bit size_t. +* Broadcast client (ephemeral) associations should be demobilized only + if they are not heard from for 10 consecutive polls, regardless of + surviving the clock selection. Fix from David Mills. +* Add "ntpq -c ifstats" similar to "ntpdc -c ifstats". +* Add "ntpq -c sysstats" similar to "ntpdc -c sysstats". +* Add "ntpq -c monstats" to show monlist knobs and stats. +* Add "ntpq -c mrulist" similar to "ntpdc -c monlist" but not + limited to 600 rows, and with filtering and sorting options: + ntpq -c "mrulist mincount=2 laddr=192.168.1.2 sort=-avgint" + ntpq -c "mrulist sort=addr" + ntpq -c "mrulist mincount=2 sort=count" + ntpq -c "mrulist sort=-lstint" +* Modify internal representation of MRU list to use l_fp fixed-point + NTP timestamps instead of seconds since startup. This increases the + resolution and substantially improves accuracy of sorts involving + timestamps, at the cost of flushing all MRU entries when the clock is + stepped, to ensure the timestamps can be compared with the current + get_systime() results. +* Add ntp.conf "mru" directive to configure MRU parameters, such as + "mru mindepth 600 maxage 64 maxdepth 5000 maxmem 1024" or + "mru initalloc 0 initmem 16 incalloc 99 incmem 4". Several pairs are + equivalent with one in units of MRU entries and its twin in units of + kilobytes of memory, so the last one used in ntp.conf controls: + maxdepth/maxmem, initalloc/initmem, incalloc/incmem. With the above + values, ntpd will preallocate 16kB worth of MRU entries, allocating + 4kB worth each time more are needed, with a hard limit of 1MB of MRU + entries. Until there are more than 600 entries none would be reused. + Then only entries for addresses last seen 64 seconds or longer ago are + reused. +* Limit "ntpdc -c monlist" response in ntpd to 600 entries, the previous + overall limit on the MRU list depth which was driven by the monlist + implementation limit of one request with a single multipacket + response. +* New "pool" directive implementation modeled on manycastclient. +* Do not abort on non-ASCII characters in ntp.conf, ignore them. +* ntpq: increase response reassembly limit from 24 to 32 packets, add + discussion in comment regarding results with even larger MAXFRAGS. +* ntpq: handle "passwd MYPASSWORD" (without prompting) as with ntpdc. +* ntpdc: do not examine argument to "passwd" if not supplied. +* configure: remove check for pointer type used with qsort(), we + require ANSI C which mandates void *. +* Reset sys_kodsent to 0 in proto_clr_stats(). +* Add sptoa()/sockporttoa() similar to stoa()/socktoa() adding :port. +* Use memcpy() instead of memmove() when buffers can not overlap. +* Remove sockaddr_storage from our sockaddr_u union of sockaddr, + sockaddr_in, and sockaddr_in6, shaving about 100 bytes from its size + and substantially decreasing MRU entry memory consumption. +* Extend ntpq readvar (alias rv) to allow fetching up to three named + variables in one operation: ntpq -c "rv 0 version offset frequency". +* ntpq: use srchost variable to show .POOL. prototype associations' + hostname instead of address 0.0.0.0. +* "restrict source ..." configures override restrictions for time + sources, allows tight default restrictions to be used with the pool + directive (where server addresses are not known in advance). +* Ignore "preempt" modifier on manycastclient and pool prototype + associations. The resulting associations are preemptible, but the + prototype must not be. +* Maintain and use linked list of associations (struct peer) in ntpd, + avoiding walking 128 hash table entries to iterate over peers. +* Remove more workarounds unneeded since we require ISO C90 AKA ANSI C: + - remove fallback implementations for memmove(), memset, strstr(). + - do not test for atexit() or memcpy(). +* Collapse a bunch of code duplication in ntpd/ntp_restrict.c added with + support for IPv6. +* Correct some corner case failures in automatically enabling the MRU + list if any "restrict ... limited" is in effect, and in disabling MRU + maintenance. (ntp_monitor.c, ntp_restrict.c) +* Reverse the internal sort order of the address restriction lists, but + preserve the same behavior. This allows removal of special-case code + related to the default restrictions and more straightforward lookups + of restrictions for a given address (now, stop on first match). +* Move ntp_restrict.c MRU doubly-linked list maintenance code into + ntp_lists.h macros, allowing more duplicated source excision. +* Repair ntpdate.c to no longer test HAVE_TIMER_SETTIME. +* Do not reference peer_node/unpeer_node after freeing when built with + --disable-saveconfig and using DNS. +(4.2.7p21) 2010/03/31 Released by Harlan Stenn +* [Bug 1514] from 4.2.6p1-RC6: Typo in ntp_proto.c: fabs(foo < .4) + should be fabs(foo) < .4. +* [Bug 1464] from 4.2.6p1-RC6: synchronization source wrong for + refclocks ARCRON_MSF (27) and SHM (28). +* From 4.2.6p1-RC6: Correct Windows port's refclock_open() to + return 0 on failure not -1. +* From 4.2.6p1-RC6: Correct CHU, dumbclock, and WWVB drivers to + check for 0 returned from refclock_open() on failure. +* From 4.2.6p1-RC6: Correct "SIMUL=4 ./flock-build -1" to + prioritize -1/--one. +* [Bug 1306] constant conditionals in audio_gain(). +(4.2.7p20) 2010/02/13 Released by Harlan Stenn +* [Bug 1483] hostname in ntp.conf "restrict" parameter rejected. +* Use all addresses for each restrict by hostname. +* Use async DNS to resolve trap directive hostnames. +(4.2.7p19) 2010/02/09 Released by Harlan Stenn +* [Bug 1338] Update the association type codes in ntpq.html. +* [Bug 1478] from 4.2.6p1-RC5: linking fails: EVP_MD_pkey_type. +* [Bug 1479] from 4.2.6p1-RC5: not finding readline headers. +* [Bug 1484] from 4.2.6p1-RC5: ushort is not defined in QNX6. +(4.2.7p18) 2010/02/07 Released by Harlan Stenn +* [Bug 1480] from 4.2.6p1-RC5: snprintf() cleanup caused + unterminated refclock IDs. +* Stop using getaddrinfo() to convert numeric address strings to on-wire + addresses in favor of is_ip_address() alone. +(4.2.7p17) 2010/02/05 Released by Harlan Stenn +* [Bug 1477] from 4.2.6p1-RC5: First non-gmake make in clone + w/VPATH can't make COPYRIGHT. +* Attempts to cure CID 108 CID 118 CID 119 TAINTED_SCALAR warnings. +* Broaden ylwrap workaround VPATH_HACK to all non-GNU make. +(4.2.7p16) 2010/02/04 Released by Harlan Stenn +* [Bug 1474] from 4.2.6p1-RC4: ntp_keygen LCRYPTO after libntp.a. +* Include 4.2.6p1-RC4: Remove arlib. +(4.2.7p15) 2010/02/03 Released by Harlan Stenn +* [Bug 1455] from 4.2.6p1: ntpd does not try /etc/ntp.audio. +* Include 4.2.6p1: Convert many sprintf() calls to snprintf(), also + strcpy(), strcat(). +* Include 4.2.6p1: Fix widely cut-n-pasted bug in refclock shutdown + after failed start. +* Include 4.2.6p1: Remove some dead code checking for emalloc() + returning NULL. +(4.2.7p14) 2010/02/02 Released by Harlan Stenn +* [Bug 1338] ntpq displays incorrect association type codes. +* [Bug 1469] u_int32, int32 changes broke HP-UX 10.20 build. +* [Bug 1470] from 4.2.6p1: "make distdir" compiles keyword-gen. +* [Bug 1471] CID 120 CID 121 CID 122 is_ip_address() uninit family. +* [Bug 1472] CID 116 CID 117 minor warnings in new DNS code. +* [Bug 1473] from 4.2.6p1: "make distcheck" version.m4 error. +(4.2.7p13) 2010/01/31 Released by Harlan Stenn +* [Bug 1467] from 4.2.6p1: Fix bogus rebuild of sntp/sntp.html. +(4.2.7p12) 2010/01/30 Released by Harlan Stenn +* [Bug 1468] 'make install' broken for root on default NFS mount. +(4.2.7p11) 2010/01/28 Released by Harlan Stenn +* [Bug 47] Debugging and logging do not work after a fork. +* [Bug 1010] getaddrinfo() could block and thus should not be called by + the main thread/process. +* New async DNS resolver in ntpd allows nonblocking queries anytime, + instead of only once at startup. +(4.2.7p10) 2010/01/24 Released by Harlan Stenn +* [Bug 1140] from 4.2.6p1-RC5: Clean up debug.html, decode.html, + and ntpq.html. +* Include 4.2.6p1-RC3: Use TZ=UTC instead of TZ= when calling date in + scripts/mkver.in . +* [Bug 1448] from 4.2.6p1-RC3: Some macros not correctly conditionally + or absolutely defined on Windows. +* [Bug 1449] from 4.2.6p1-RC3: ntpsim.h in ntp_config.c should be used + conditionally. +* [Bug 1450] from 4.2.6p1-RC3: Option to exclude warnings not + unconditionally defined on Windows. +(4.2.7p9) 2010/01/13 Released by Harlan Stenn +(4.2.7p8) 2010/01/12 Released by Harlan Stenn +* [Bug 702] ntpd service logic should use libopts to examine cmdline. +* [Bug 1451] from 4.2.6p1-RC3: sntp leaks KoD entry updating. +* [Bug 1453] from 4.2.6p1-RC3: Use $CC in config.cache filename. +(4.2.7p7) 2009/12/30 Released by Harlan Stenn +* [Bug 620] ntpdc getresponse() esize != *rsize s/b size != *rsize. +* [Bug 1446] 4.2.7p6 requires autogen, missing ntpd.1, *.texi, *.menu. +(4.2.7p6) 2009/12/28 Released by Harlan Stenn +* [Bug 1443] Remove unnecessary dependencies on ntp_io.h +* [Bug 1442] Move Windows functions into libntp files +* [Bug 1127] from 4.2.6p1-RC3: Check the return of X590_verify(). +* [Bug 1439] from 4.2.6p1-RC3: .texi gen after binary is linked. +* [Bug 1440] from 4.2.6p1-RC3: Update configure.ac to support kfreebsd. +* [Bug 1445] from 4.2.6p1-RC3: IRIX does not have -lcap or support + linux capabilities. +(4.2.7p5) 2009/12/25 Released by Harlan Stenn +* Include 4.2.6p1-RC2 +(4.2.7p4) 2009/12/24 Released by Harlan Stenn +* [Bug 1429] ntpd -4 option does not reliably force IPv4 resolution. +* [Bug 1431] System headers must come before ntp headers in ntp_intres.c . +(4.2.7p3) 2009/12/22 Released by Harlan Stenn +* [Bug 1426] scripts/VersionName needs . on the search path. +* [Bug 1427] quote missing in ./build - shows up on NetBSD. +* [Bug 1428] Use AC_HEADER_RESOLV to fix breaks from resolv.h +(4.2.7p2) 2009/12/20 Released by Harlan Stenn +* [Bug 1419] ntpdate, ntpdc, sntp, ntpd ignore configure --bindir. +* [Bug 1421] add util/tg2, a clone of tg that works on Linux, NetBSD, and + FreeBSD +(4.2.7p1) 2009/12/15 Released by Harlan Stenn +* [Bug 1348] ntpd Windows port should wait for sendto() completion. +* [Bug 1413] test OpenSSL headers regarding -Wno-strict-prototypes. +* [Bug 1418] building ntpd/ntpdc/ntpq statically with ssl fails. +(4.2.7p0) 2009/12/13 Released by Harlan Stenn +* [Bug 1412] m4/os_cflags.m4 caches results that depend on $CC. +* [Bug 1414] Enable "make distcheck" success with BSD make. +(4.2.7) 2009/12/09 Released by Harlan Stenn +* [Bug 1407] configure.ac: recent GNU Make -v does not include "version". + --- + + * [Bug 1675] Prohibit includefile remote config. + --- (4.2.6p3-RC5) 2010/10/22 Released by Harlan Stenn diff --cc ntpd/ntp_parser.c index 29c9b08d38,590e1c3c4b..5df6c4cfcc --- a/ntpd/ntp_parser.c +++ b/ntpd/ntp_parser.c @@@ -728,18 -710,18 +728,18 @@@ union yyallo #endif /* YYFINAL -- State number of the termination state. */ - #define YYFINAL 186 -#define YYFINAL 168 ++#define YYFINAL 188 /* YYLAST -- Last index in YYTABLE. */ - #define YYLAST 610 -#define YYLAST 630 ++#define YYLAST 604 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 171 +#define YYNTOKENS 179 /* YYNNTS -- Number of nonterminals. */ - #define YYNNTS 74 -#define YYNNTS 89 ++#define YYNNTS 94 /* YYNRULES -- Number of rules. */ - #define YYNRULES 261 -#define YYNRULES 267 ++#define YYNRULES 280 /* YYNRULES -- Number of states. */ - #define YYNSTATES 401 -#define YYNSTATES 375 ++#define YYNSTATES 379 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@@ -803,138 -785,136 +803,141 @@@ 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, - 44, 47, 49, 51, 53, 55, 57, 59, 62, 65, - 67, 70, 72, 74, 76, 78, 81, 84, 87, 89, - 91, 93, 95, 97, 100, 103, 106, 109, 111, 113, - 115, 118, 121, 124, 127, 130, 133, 136, 139, 142, - 145, 148, 151, 153, 154, 157, 160, 163, 166, 169, - 172, 175, 178, 180, 183, 186, 189, 192, 195, 198, - 201, 204, 207, 210, 213, 216, 219, 223, 226, 228, - 230, 232, 234, 236, 238, 240, 242, 244, 245, 248, - 251, 254, 256, 258, 260, 262, 264, 266, 268, 270, - 272, 274, 276, 279, 282, 286, 292, 296, 301, 306, - 310, 311, 314, 316, 318, 320, 322, 324, 326, 328, - 330, 332, 334, 336, 338, 340, 342, 345, 347, 350, - 353, 356, 359, 361, 364, 367, 370, 373, 376, 379, - 382, 385, 389, 392, 394, 397, 400, 403, 406, 409, - 412, 415, 418, 421, 424, 427, 429, 431, 433, 435, - 437, 439, 441, 443, 446, 449, 451, 454, 457, 460, - 463, 466, 469, 472, 474, 478, 480, 483, 486, 489, - 492, 495, 498, 501, 504, 507, 510, 513, 517, 520, - 523, 525, 528, 529, 534, 538, 541, 543, 546, 549, - 552, 554, 556, 560, 564, 566, 568, 570, 572, 574, - 576, 578, 580, 582, 585, 587, 590, 592, 594, 596, - 602, 605, 607, 610, 612, 614, 616, 618, 620, 622, - 628, 630, 634, 637, 641, 643, 645, 648, 650, 656, - 661, 665, 668, 670, 677, 681, 684, 688, 690, 692, - 694, 696 + 44, 47, 49, 51, 53, 55, 57, 59, 62, 64, - 66, 68, 71, 73, 75, 77, 80, 82, 84, 86, - 88, 90, 92, 94, 96, 98, 101, 103, 105, 107, - 109, 111, 113, 116, 118, 120, 122, 125, 128, 131, - 134, 137, 140, 143, 146, 149, 152, 155, 156, 159, - 162, 165, 167, 169, 171, 173, 175, 177, 180, 183, - 185, 188, 191, 194, 196, 198, 200, 202, 204, 206, - 208, 210, 212, 215, 218, 222, 225, 227, 229, 231, - 233, 235, 237, 239, 241, 243, 244, 247, 250, 253, - 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, - 275, 277, 279, 282, 286, 290, 295, 300, 306, 307, - 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, - 330, 332, 334, 336, 338, 341, 343, 346, 348, 350, - 352, 356, 359, 361, 364, 367, 370, 373, 375, 377, - 379, 381, 383, 385, 388, 391, 394, 396, 398, 400, - 402, 404, 406, 408, 410, 412, 415, 418, 420, 423, - 425, 427, 429, 431, 433, 435, 437, 439, 442, 445, - 448, 452, 454, 457, 460, 463, 466, 469, 472, 476, - 479, 481, 483, 485, 487, 489, 491, 493, 495, 498, - 499, 504, 506, 507, 510, 512, 515, 518, 521, 523, - 525, 529, 533, 535, 537, 539, 541, 543, 545, 547, - 549, 551, 554, 556, 559, 561, 563, 565, 571, 574, - 576, 579, 581, 583, 585, 587, 589, 591, 597, 599, - 603, 606, 610, 614, 617, 619, 625, 630, 634, 637, - 639, 646, 650, 653, 657, 661, 665, 669 ++ 66, 68, 71, 73, 75, 77, 79, 81, 83, 85, ++ 87, 89, 91, 93, 95, 98, 100, 102, 104, 106, ++ 108, 110, 113, 115, 117, 119, 122, 125, 128, 131, ++ 134, 137, 140, 143, 146, 149, 152, 155, 157, 158, ++ 161, 164, 166, 168, 170, 172, 174, 177, 180, 182, ++ 185, 188, 191, 193, 195, 197, 199, 201, 203, 205, ++ 207, 209, 211, 214, 217, 221, 224, 226, 228, 230, ++ 232, 234, 236, 238, 240, 242, 243, 246, 249, 252, ++ 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, ++ 274, 276, 278, 281, 284, 288, 294, 298, 303, 308, ++ 312, 313, 316, 318, 320, 322, 324, 326, 328, 330, ++ 332, 334, 336, 338, 340, 342, 344, 347, 349, 352, ++ 354, 356, 358, 361, 363, 366, 368, 370, 372, 374, ++ 376, 378, 380, 382, 386, 389, 391, 394, 397, 400, ++ 403, 405, 407, 409, 411, 413, 415, 418, 421, 424, ++ 426, 428, 430, 432, 434, 436, 438, 440, 442, 445, ++ 448, 450, 453, 455, 457, 459, 461, 463, 465, 467, ++ 469, 472, 475, 478, 482, 484, 487, 490, 493, 496, ++ 500, 503, 505, 507, 509, 511, 513, 515, 517, 519, ++ 522, 523, 528, 530, 531, 532, 535, 538, 541, 544, ++ 546, 548, 552, 556, 558, 560, 562, 564, 566, 568, ++ 570, 572, 574, 577, 579, 582, 584, 586, 588, 594, ++ 597, 599, 602, 604, 606, 608, 610, 612, 614, 620, ++ 622, 626, 629, 633, 635, 637, 640, 642, 648, 653, ++ 657, 660, 662, 669, 673, 676, 680, 682, 684, 686, ++ 688 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 172, 0, -1, 173, -1, 173, 174, 155, -1, 174, - 155, -1, 1, 155, -1, -1, 175, -1, 186, -1, - 188, -1, 189, -1, 198, -1, 206, -1, 193, -1, - 212, -1, 217, -1, 221, -1, 225, -1, 248, -1, - 176, 177, 180, -1, 176, 177, -1, 123, -1, 109, - -1, 104, -1, 13, -1, 74, -1, 178, -1, 179, - 132, -1, 132, -1, 57, -1, 59, -1, 180, 181, - -1, 181, -1, 182, -1, 184, -1, 12, 247, -1, - 183, -1, 7, -1, 16, -1, 50, -1, 95, -1, - 111, -1, 112, -1, 141, -1, 151, -1, 185, 54, - -1, 61, -1, 83, -1, 79, -1, 143, -1, 85, - -1, 147, -1, 187, 177, -1, 145, -1, 146, -1, - 14, -1, 75, 245, -1, 88, 245, -1, 8, 54, - -1, 22, 54, -1, 23, 190, -1, 62, 132, -1, - 63, 132, -1, 119, 54, -1, 121, 54, -1, 142, - 241, -1, 101, 132, -1, -1, 190, 191, -1, 192, - 132, -1, 121, 54, -1, 48, -1, 51, -1, 114, - -1, 116, -1, 125, -1, 27, -1, 139, 194, -1, - 194, 195, -1, 195, -1, 196, 54, -1, 197, 247, - -1, 21, 246, -1, 19, -1, 45, -1, 102, -1, - 84, -1, 11, -1, 81, -1, 78, -1, 80, -1, - 77, -1, 126, 199, -1, 128, 132, -1, 39, 200, - 201, -1, 199, 200, -1, 200, -1, 20, -1, 24, - -1, 72, -1, 105, -1, 117, -1, 133, -1, 137, - -1, 113, -1, -1, 201, 202, -1, 38, 132, -1, - 144, 205, -1, 203, -1, 204, -1, 68, -1, 90, - -1, 35, -1, 28, -1, 92, -1, 107, -1, 25, - -1, 149, -1, 87, -1, 152, -1, 3, -1, 29, - 209, -1, 120, 177, 207, -1, 120, 26, 207, -1, - 120, 57, 26, 207, -1, 120, 59, 26, 207, -1, - 120, 178, 76, 178, 207, -1, -1, 207, 208, -1, - 44, -1, 52, -1, 64, -1, 65, -1, 67, -1, - 73, -1, 91, -1, 93, -1, 94, -1, 96, -1, - 97, -1, 98, -1, 100, -1, 147, -1, 209, 210, - -1, 210, -1, 211, 54, -1, 9, -1, 82, -1, - 86, -1, 47, 177, 213, -1, 213, 214, -1, 214, - -1, 215, 247, -1, 216, 246, -1, 131, 54, -1, - 118, 132, -1, 135, -1, 136, -1, 40, -1, 41, - -1, 42, -1, 43, -1, 35, 218, -1, 28, 218, - -1, 218, 219, -1, 219, -1, 220, -1, 127, -1, - 6, -1, 10, -1, 17, -1, 60, -1, 86, -1, - 99, -1, 138, 222, -1, 222, 223, -1, 223, -1, - 224, 247, -1, 5, -1, 30, -1, 46, -1, 49, - -1, 103, -1, 129, -1, 130, -1, 236, -1, 226, - 247, -1, 227, 132, -1, 228, 132, -1, 53, 132, - 174, -1, 36, -1, 18, 54, -1, 32, 229, -1, - 70, 234, -1, 106, 244, -1, 124, 230, -1, 140, - 178, -1, 140, 178, 232, -1, 143, 240, -1, 15, - -1, 134, -1, 66, -1, 108, -1, 115, -1, 71, - -1, 122, -1, 132, -1, 132, 31, -1, -1, 132, - 166, 132, 231, -1, 26, -1, -1, 232, 233, -1, - 233, -1, 110, 54, -1, 55, 178, -1, 234, 235, - -1, 235, -1, 132, -1, 237, 239, 238, -1, 237, - 239, 132, -1, 55, -1, 89, -1, 4, -1, 56, - -1, 58, -1, 150, -1, 69, -1, 52, -1, 33, - -1, 240, 54, -1, 54, -1, 241, 242, -1, 242, - -1, 54, -1, 243, -1, 167, 54, 34, 54, 168, - -1, 244, 132, -1, 132, -1, 245, 177, -1, 177, - -1, 54, -1, 141, -1, 37, -1, 54, -1, 31, - -1, 249, 169, 250, 252, 170, -1, 156, -1, 250, - 251, 155, -1, 251, 155, -1, 157, 166, 247, -1, - 158, 166, 247, -1, 252, 253, -1, 253, -1, 255, - 169, 254, 256, 170, -1, 159, 166, 247, 155, -1, - 123, 166, 177, -1, 256, 257, -1, 257, -1, 160, - 166, 247, 169, 258, 170, -1, 258, 259, 155, -1, - 259, 155, -1, 161, 166, 247, -1, 162, 166, 247, - -1, 163, 166, 247, -1, 164, 166, 247, -1, 165, - 166, 247, -1 + 180, 0, -1, 181, -1, 181, 182, 163, -1, 182, - 163, -1, 1, 163, -1, -1, 183, -1, 189, -1, - 191, -1, 192, -1, 198, -1, 204, -1, 195, -1, - 211, -1, 214, -1, 217, -1, 220, -1, 239, -1, - 184, 185, 187, -1, 184, 185, -1, 132, -1, 118, - -1, 113, -1, 12, -1, 77, -1, 186, -1, 60, - 141, -1, 62, 141, -1, 141, -1, 187, 188, -1, - 188, -1, 7, -1, 15, -1, 48, -1, 64, 56, - -1, 90, 56, -1, 85, 56, -1, 103, -1, 120, - -1, 121, -1, 150, -1, 160, -1, 152, 56, -1, - 92, 56, -1, 156, 56, -1, 190, 185, -1, 154, - -1, 155, -1, 13, -1, 78, 236, -1, 96, 236, - -1, 8, 56, -1, 20, 56, -1, 21, 193, -1, - 65, 141, -1, 66, 141, -1, 128, 56, -1, 130, - 56, -1, 151, 232, -1, 109, 141, -1, 193, 194, - -1, 194, -1, -1, 46, 141, -1, 49, 141, -1, - 123, 141, -1, 125, 141, -1, 25, 141, -1, 130, - 56, -1, 148, 196, -1, 196, 197, -1, 197, -1, - 17, 56, -1, 43, 56, -1, 19, 237, -1, 110, - 56, -1, 111, 56, -1, 88, 238, -1, 83, 238, - -1, 86, 238, -1, 81, 238, -1, 91, 56, -1, - 11, 56, -1, 135, 199, -1, 137, 141, -1, 37, - 200, 201, -1, 199, 200, -1, 200, -1, 18, -1, - 22, -1, 75, -1, 114, -1, 126, -1, 142, -1, - 146, -1, 122, -1, -1, 201, 202, -1, 36, 141, - -1, 153, 203, -1, 71, -1, 98, -1, 33, -1, - 26, -1, 100, -1, 116, -1, 23, -1, 158, -1, - 94, -1, 161, -1, 3, -1, 27, 207, -1, 95, - 209, -1, 129, 185, 205, -1, 129, 186, 79, 186, - 205, -1, 129, 24, 205, -1, 129, 60, 24, 205, - -1, 129, 62, 24, 205, -1, 129, 134, 205, -1, - -1, 205, 206, -1, 42, -1, 50, -1, 67, -1, - 68, -1, 70, -1, 76, -1, 99, -1, 101, -1, - 102, -1, 104, -1, 105, -1, 106, -1, 108, -1, - 156, -1, 207, 208, -1, 208, -1, 9, 56, -1, - 89, 56, -1, 93, 56, -1, 209, 210, -1, 210, - -1, 51, 56, -1, 52, 56, -1, 53, 56, -1, - 54, 56, -1, 80, 56, -1, 82, 56, -1, 84, - 56, -1, 87, 56, -1, 45, 185, 212, -1, 212, - 213, -1, 213, -1, 144, 238, -1, 145, 238, -1, - 140, 56, -1, 127, 141, -1, 38, 237, -1, 39, - 237, -1, 40, 237, -1, 41, 237, -1, 33, 215, - -1, 26, 215, -1, 215, 216, -1, 216, -1, 6, - -1, 10, -1, 16, -1, 63, -1, 93, -1, 107, - -1, 136, -1, 147, 218, -1, 218, 219, -1, 219, - -1, 5, 238, -1, 28, 238, -1, 44, 238, -1, - 47, 238, -1, 112, 238, -1, 138, 238, -1, 139, - 238, -1, 227, -1, 55, 141, 182, -1, 34, -1, - 14, 238, -1, 143, 238, -1, 30, 221, -1, 69, - 141, -1, 117, 141, -1, 74, 141, -1, 73, 225, - -1, 115, 235, -1, 131, 141, -1, 133, 222, -1, - 149, 186, -1, 149, 186, 223, -1, 152, 231, -1, - 124, 141, -1, 141, -1, 141, 29, -1, -1, 141, - 174, 141, 24, -1, 141, 174, 141, -1, 223, 224, - -1, 224, -1, 119, 56, -1, 57, 186, -1, 225, - 226, -1, 226, -1, 141, -1, 228, 230, 229, -1, - 228, 230, 141, -1, 57, -1, 97, -1, 4, -1, - 59, -1, 61, -1, 159, -1, 72, -1, 50, -1, - 31, -1, 231, 56, -1, 56, -1, 232, 233, -1, - 233, -1, 56, -1, 234, -1, 175, 56, 32, 56, - 176, -1, 235, 141, -1, 141, -1, 236, 185, -1, - 185, -1, 56, -1, 150, -1, 35, -1, 56, -1, - 29, -1, 240, 177, 241, 244, 178, -1, 164, -1, - 241, 242, 163, -1, 242, 163, -1, 243, 174, 238, - -1, 165, -1, 166, -1, 244, 245, -1, 245, -1, - 247, 177, 246, 248, 178, -1, 167, 174, 238, 163, - -1, 132, 174, 185, -1, 248, 249, -1, 249, -1, - 168, 174, 238, 177, 250, 178, -1, 250, 251, 163, - -1, 251, 163, -1, 252, 174, 238, -1, 169, -1, - 170, -1, 171, -1, 172, -1, 173, -1 ++ 163, -1, 1, 163, -1, -1, 183, -1, 194, -1, ++ 196, -1, 197, -1, 206, -1, 214, -1, 201, -1, ++ 223, -1, 228, -1, 232, -1, 236, -1, 259, -1, ++ 184, 185, 188, -1, 184, 185, -1, 132, -1, 118, ++ -1, 113, -1, 12, -1, 77, -1, 186, -1, 187, ++ 141, -1, 141, -1, 60, -1, 62, -1, 188, 189, ++ -1, 189, -1, 190, -1, 192, -1, 191, -1, 7, ++ -1, 15, -1, 48, -1, 103, -1, 120, -1, 121, ++ -1, 150, -1, 160, -1, 193, 56, -1, 64, -1, ++ 90, -1, 85, -1, 152, -1, 92, -1, 156, -1, ++ 195, 185, -1, 154, -1, 155, -1, 13, -1, 78, ++ 256, -1, 96, 256, -1, 8, 56, -1, 20, 56, ++ -1, 21, 198, -1, 65, 141, -1, 66, 141, -1, ++ 128, 56, -1, 130, 56, -1, 151, 252, -1, 109, ++ 141, -1, 198, 199, -1, 199, -1, -1, 200, 141, ++ -1, 130, 56, -1, 46, -1, 49, -1, 123, -1, ++ 125, -1, 25, -1, 148, 202, -1, 202, 203, -1, ++ 203, -1, 204, 56, -1, 205, 258, -1, 19, 257, ++ -1, 17, -1, 43, -1, 110, -1, 111, -1, 91, ++ -1, 11, -1, 88, -1, 83, -1, 86, -1, 81, ++ -1, 135, 207, -1, 137, 141, -1, 37, 208, 209, ++ -1, 207, 208, -1, 208, -1, 18, -1, 22, -1, ++ 75, -1, 114, -1, 126, -1, 142, -1, 146, -1, ++ 122, -1, -1, 209, 210, -1, 36, 141, -1, 153, ++ 213, -1, 211, -1, 212, -1, 71, -1, 98, -1, ++ 33, -1, 26, -1, 100, -1, 116, -1, 23, -1, ++ 158, -1, 94, -1, 161, -1, 3, -1, 27, 217, ++ -1, 95, 220, -1, 129, 185, 215, -1, 129, 186, ++ 79, 186, 215, -1, 129, 24, 215, -1, 129, 60, ++ 24, 215, -1, 129, 62, 24, 215, -1, 129, 134, ++ 215, -1, -1, 215, 216, -1, 42, -1, 50, -1, ++ 67, -1, 68, -1, 70, -1, 76, -1, 99, -1, ++ 101, -1, 102, -1, 104, -1, 105, -1, 106, -1, ++ 108, -1, 156, -1, 217, 218, -1, 218, -1, 219, ++ 56, -1, 9, -1, 89, -1, 93, -1, 220, 221, ++ -1, 221, -1, 222, 56, -1, 51, -1, 52, -1, ++ 53, -1, 54, -1, 80, -1, 82, -1, 84, -1, ++ 87, -1, 45, 185, 224, -1, 224, 225, -1, 225, ++ -1, 226, 258, -1, 227, 257, -1, 140, 56, -1, ++ 127, 141, -1, 144, -1, 145, -1, 38, -1, 39, ++ -1, 40, -1, 41, -1, 33, 229, -1, 26, 229, ++ -1, 229, 230, -1, 230, -1, 231, -1, 136, -1, ++ 6, -1, 10, -1, 16, -1, 63, -1, 93, -1, ++ 107, -1, 147, 233, -1, 233, 234, -1, 234, -1, ++ 235, 258, -1, 5, -1, 28, -1, 44, -1, 47, ++ -1, 112, -1, 138, -1, 139, -1, 247, -1, 237, ++ 258, -1, 238, 141, -1, 239, 141, -1, 55, 141, ++ 182, -1, 34, -1, 30, 240, -1, 73, 245, -1, ++ 115, 255, -1, 133, 241, -1, 149, 186, 243, -1, ++ 152, 251, -1, 14, -1, 143, -1, 69, -1, 117, ++ -1, 124, -1, 74, -1, 131, -1, 141, -1, 141, ++ 29, -1, -1, 141, 174, 141, 242, -1, 24, -1, ++ -1, -1, 243, 244, -1, 119, 56, -1, 57, 186, ++ -1, 245, 246, -1, 246, -1, 141, -1, 248, 250, ++ 249, -1, 248, 250, 141, -1, 57, -1, 97, -1, ++ 4, -1, 59, -1, 61, -1, 159, -1, 72, -1, ++ 50, -1, 31, -1, 251, 56, -1, 56, -1, 252, ++ 253, -1, 253, -1, 56, -1, 254, -1, 175, 56, ++ 32, 56, 176, -1, 255, 141, -1, 141, -1, 256, ++ 185, -1, 185, -1, 56, -1, 150, -1, 35, -1, ++ 56, -1, 29, -1, 260, 177, 261, 264, 178, -1, ++ 164, -1, 261, 262, 163, -1, 262, 163, -1, 263, ++ 174, 258, -1, 165, -1, 166, -1, 264, 265, -1, ++ 265, -1, 267, 177, 266, 268, 178, -1, 167, 174, ++ 258, 163, -1, 132, 174, 185, -1, 268, 269, -1, ++ 269, -1, 168, 174, 258, 177, 270, 178, -1, 270, ++ 271, 163, -1, 271, 163, -1, 272, 174, 258, -1, ++ 169, -1, 170, -1, 171, -1, 172, -1, 173, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 313, 313, 317, 318, 319, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 353, - 361, 372, 373, 374, 375, 376, 380, 381, 383, 388, - 393, 395, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 422, 432, 433, 443, - 445, 447, 458, 465, 467, 472, 474, 476, 478, 480, - 482, 487, 492, 498, 505, 507, 509, 511, 513, 515, - 532, 537, 542, 550, 552, 554, 556, 558, 560, 562, - 564, 566, 568, 570, 580, 582, 591, 601, 606, 614, - 615, 616, 617, 618, 619, 620, 621, 626, 629, 637, - 647, 656, 665, 674, 675, 679, 680, 681, 682, 683, - 684, 685, 694, 698, 702, 710, 718, 726, 741, 756, - 769, 772, 780, 781, 782, 783, 784, 785, 786, 787, - 788, 789, 790, 791, 792, 793, 797, 802, 810, 811, - 812, 816, 821, 829, 830, 831, 832, 833, 834, 835, - 836, 844, 854, 859, 867, 868, 869, 870, 871, 872, - 873, 874, 882, 884, 889, 894, 902, 903, 904, 905, - 906, 907, 908, 924, 929, 934, 942, 943, 944, 945, - 946, 947, 948, 957, 958, 973, 979, 986, 993, 995, - 1002, 1009, 1021, 1023, 1025, 1037, 1039, 1046, 1053, 1055, - 1065, 1072, 1082, 1091, 1093, 1098, 1103, 1111, 1113, 1121, - 1126, 1134, 1159, 1166, 1176, 1177, 1181, 1182, 1183, 1184, - 1188, 1189, 1190, 1200, 1205, 1213, 1218, 1226, 1228, 1232, - 1237, 1242, 1250, 1255, 1263, 1272, 1273, 1277, 1278, 1287, - 1305, 1309, 1314, 1322, 1327, 1328, 1332, 1337, 1345, 1350, - 1355, 1360, 1365, 1373, 1378, 1383, 1391, 1396, 1397, 1398, - 1399, 1400 - 0, 318, 318, 322, 323, 324, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 358, - 364, 373, 374, 375, 376, 377, 381, 382, 387, 392, - 394, 399, 400, 404, 405, 406, 411, 416, 417, 418, - 419, 420, 421, 422, 423, 427, 432, 433, 434, 435, - 436, 437, 447, 455, 456, 466, 468, 470, 481, 483, - 485, 490, 492, 494, 496, 498, 500, 506, 507, 517, - 519, 531, 532, 533, 534, 535, 536, 545, 550, 551, - 555, 557, 559, 564, 565, 566, 567, 568, 572, 573, - 574, 575, 584, 586, 595, 603, 604, 608, 609, 610, - 611, 612, 613, 614, 615, 620, 621, 631, 641, 650, - 665, 670, 671, 675, 676, 680, 681, 682, 683, 684, - 685, 686, 695, 699, 704, 709, 722, 735, 744, 745, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 767, 769, 774, 779, 780, 781, - 790, 795, 797, 802, 804, 806, 808, 813, 814, 818, - 819, 820, 821, 830, 832, 837, 844, 854, 856, 868, - 869, 870, 871, 872, 873, 882, 886, 887, 891, 896, - 897, 898, 899, 900, 901, 902, 911, 912, 919, 926, - 942, 961, 966, 968, 970, 972, 974, 976, 978, 980, - 985, 986, 990, 991, 992, 996, 997, 1001, 1003, 1007, - 1011, 1016, 1018, 1022, 1024, 1028, 1029, 1033, 1034, 1038, - 1053, 1058, 1066, 1067, 1071, 1072, 1073, 1074, 1078, 1079, - 1080, 1090, 1091, 1095, 1097, 1102, 1104, 1108, 1113, 1114, - 1118, 1119, 1123, 1132, 1133, 1137, 1138, 1147, 1162, 1166, - 1167, 1171, 1172, 1176, 1177, 1181, 1186, 1190, 1194, 1195, - 1199, 1204, 1205, 1209, 1211, 1213, 1215, 1217 ++ 0, 333, 333, 337, 338, 339, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 365, 373, ++ 380, 390, 391, 392, 393, 394, 398, 399, 404, 409, ++ 411, 416, 418, 423, 424, 428, 433, 434, 435, 436, ++ 437, 438, 439, 440, 444, 449, 450, 451, 452, 453, ++ 454, 462, 472, 473, 483, 485, 487, 498, 505, 507, ++ 512, 514, 516, 518, 520, 522, 527, 532, 538, 545, ++ 547, 559, 560, 561, 562, 563, 572, 577, 582, 590, ++ 592, 594, 600, 601, 602, 603, 604, 605, 609, 610, ++ 611, 612, 621, 623, 632, 642, 647, 655, 656, 657, ++ 658, 659, 660, 661, 662, 667, 670, 678, 688, 697, ++ 712, 717, 718, 722, 723, 728, 729, 730, 731, 732, ++ 733, 734, 743, 747, 751, 759, 767, 775, 790, 805, ++ 818, 821, 829, 830, 831, 832, 833, 834, 835, 836, ++ 837, 838, 839, 840, 841, 842, 846, 851, 859, 864, ++ 865, 866, 870, 875, 883, 888, 889, 890, 891, 892, ++ 893, 894, 895, 903, 913, 918, 926, 928, 930, 932, ++ 937, 938, 942, 943, 944, 945, 953, 955, 960, 965, ++ 973, 975, 987, 988, 989, 990, 991, 992, 1000, 1005, ++ 1010, 1018, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1038, ++ 1039, 1046, 1053, 1069, 1088, 1093, 1095, 1097, 1099, 1101, ++ 1108, 1113, 1114, 1118, 1119, 1120, 1124, 1125, 1129, 1136, ++ 1146, 1155, 1160, 1162, 1167, 1170, 1178, 1180, 1188, 1193, ++ 1201, 1226, 1233, 1243, 1244, 1248, 1249, 1250, 1251, 1255, ++ 1256, 1257, 1267, 1272, 1280, 1285, 1293, 1295, 1299, 1304, ++ 1309, 1317, 1322, 1330, 1339, 1340, 1344, 1345, 1354, 1372, ++ 1376, 1381, 1389, 1394, 1395, 1399, 1404, 1412, 1417, 1422, ++ 1427, 1432, 1440, 1445, 1450, 1458, 1463, 1464, 1465, 1466, ++ 1467 }; #endif @@@ -977,18 -956,24 +980,25 @@@ static const char *const yytname[] "T_Server_Offset", "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay", "'='", "'('", "')'", "'{'", "'}'", "$accept", "configuration", "command_list", "command", "server_command", - "client_type", "address", "ip_address", "option_list", "option", - "unpeer_command", "unpeer_keyword", "other_mode_command", - "authentication_command", "crypto_command_list", "crypto_command", - "orphan_mode_command", "tos_option_list", "tos_option", - "monitoring_command", "stats_list", "stat", "filegen_option_list", - "filegen_option", "filegen_type", "access_control_command", - "ac_flag_list", "access_control_flag", "discard_option_list", - "discard_option", "mru_option_list", "mru_option", "fudge_command", - "fudge_factor_list", "fudge_factor", "system_option_command", - "system_option_list", "system_option", "tinker_command", - "tinker_option_list", "tinker_option", "miscellaneous_command", - "drift_parm", "variable_assign", "trap_option_list", "trap_option", + "client_type", "address", "ip_address", "address_fam", "option_list", + "option", "option_flag", "option_flag_keyword", "option_int", + "option_int_keyword", "unpeer_command", "unpeer_keyword", + "other_mode_command", "authentication_command", "crypto_command_list", + "crypto_command", "crypto_str_keyword", "orphan_mode_command", + "tos_option_list", "tos_option", "tos_option_int_keyword", + "tos_option_dbl_keyword", "monitoring_command", "stats_list", "stat", + "filegen_option_list", "filegen_option", "link_nolink", "enable_disable", + "filegen_type", "access_control_command", "ac_flag_list", + "access_control_flag", "discard_option_list", "discard_option", - "discard_option_keyword", "fudge_command", "fudge_factor_list", ++ "discard_option_keyword", "mru_option_list", "mru_option", ++ "mru_option_keyword", "fudge_command", "fudge_factor_list", + "fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword", + "system_option_command", "system_option_list", "system_option", + "system_option_flag_keyword", "tinker_command", "tinker_option_list", + "tinker_option", "tinker_option_keyword", "miscellaneous_command", + "misc_cmd_dbl_keyword", "misc_cmd_str_keyword", + "misc_cmd_str_lcl_keyword", "drift_parm", "variable_assign", + "t_default_or_zero", "trap_option_list", "trap_option", "log_config_list", "log_config_command", "interface_command", "interface_nic", "nic_rule_class", "nic_rule_action", "integer_list", "integer_list_range", "integer_list_range_elt", "integer_range", @@@ -1027,35 -1011,35 +1037,37 @@@ static const yytype_uint16 yytoknum[] # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ - static const yytype_uint8 yyr1[] = + static const yytype_uint16 yyr1[] = { - 0, 171, 172, 173, 173, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, - 175, 176, 176, 176, 176, 176, 177, 177, 178, 179, - 179, 180, 180, 181, 181, 181, 182, 183, 183, 183, - 183, 183, 183, 183, 183, 184, 185, 185, 185, 185, - 185, 185, 186, 187, 187, 188, 188, 188, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 190, 190, 191, - 191, 192, 192, 192, 192, 192, 192, 193, 194, 194, - 195, 195, 195, 196, 196, 196, 196, 196, 197, 197, - 197, 197, 198, 198, 198, 199, 199, 200, 200, 200, - 200, 200, 200, 200, 200, 201, 201, 202, 202, 202, - 202, 203, 203, 204, 204, 205, 205, 205, 205, 205, - 205, 205, 206, 206, 206, 206, 206, 206, 207, 207, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 209, 209, 210, 211, 211, 211, - 212, 213, 213, 214, 214, 214, 214, 215, 215, 216, - 216, 216, 216, 217, 217, 218, 218, 219, 219, 220, - 220, 220, 220, 220, 220, 221, 222, 222, 223, 224, - 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 226, 226, 227, 227, 227, 228, 228, 229, 229, 229, - 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, - 236, 236, 237, 237, 238, 238, 238, 238, 239, 239, - 239, 240, 240, 241, 241, 242, 242, 243, 244, 244, - 245, 245, 246, 246, 246, 247, 247, 248, 249, 250, - 250, 251, 251, 252, 252, 253, 254, 255, 256, 256, - 257, 258, 258, 259, 259, 259, 259, 259 + 0, 179, 180, 181, 181, 181, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, - 183, 184, 184, 184, 184, 184, 185, 185, 185, 186, - 187, 187, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 189, 190, 190, 191, - 191, 191, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 193, 193, 193, 194, 194, 194, 194, 194, 194, - 195, 196, 196, 197, 197, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 198, 198, 198, 199, 199, 200, - 200, 200, 200, 200, 200, 200, 200, 201, 201, 202, - 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, - 203, 203, 204, 204, 204, 204, 204, 204, 204, 204, - 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 207, 207, 208, 208, - 208, 209, 209, 210, 210, 210, 210, 210, 210, 210, - 210, 211, 212, 212, 213, 213, 213, 213, 213, 213, - 213, 213, 214, 214, 215, 215, 216, 216, 216, 216, - 216, 216, 216, 217, 218, 218, 219, 219, 219, 219, - 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 221, 221, 221, 222, 222, 223, 223, 224, 224, 225, - 225, 226, 227, 227, 228, 228, 229, 229, 229, 229, - 230, 230, 230, 231, 231, 232, 232, 233, 233, 234, - 235, 235, 236, 236, 237, 237, 237, 238, 238, 239, - 240, 241, 241, 242, 243, 243, 244, 244, 245, 246, - 247, 248, 248, 249, 250, 250, 251, 252, 252, 252, - 252, 252 ++ 183, 184, 184, 184, 184, 184, 185, 185, 186, 187, ++ 187, 188, 188, 189, 189, 190, 191, 191, 191, 191, ++ 191, 191, 191, 191, 192, 193, 193, 193, 193, 193, ++ 193, 194, 195, 195, 196, 196, 196, 197, 197, 197, ++ 197, 197, 197, 197, 197, 197, 198, 198, 198, 199, ++ 199, 200, 200, 200, 200, 200, 201, 202, 202, 203, ++ 203, 203, 204, 204, 204, 204, 204, 204, 205, 205, ++ 205, 205, 206, 206, 206, 207, 207, 208, 208, 208, ++ 208, 208, 208, 208, 208, 209, 209, 210, 210, 210, ++ 210, 211, 211, 212, 212, 213, 213, 213, 213, 213, ++ 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, ++ 215, 215, 216, 216, 216, 216, 216, 216, 216, 216, ++ 216, 216, 216, 216, 216, 216, 217, 217, 218, 219, ++ 219, 219, 220, 220, 221, 222, 222, 222, 222, 222, ++ 222, 222, 222, 223, 224, 224, 225, 225, 225, 225, ++ 226, 226, 227, 227, 227, 227, 228, 228, 229, 229, ++ 230, 230, 231, 231, 231, 231, 231, 231, 232, 233, ++ 233, 234, 235, 235, 235, 235, 235, 235, 235, 236, ++ 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, ++ 236, 237, 237, 238, 238, 238, 239, 239, 240, 240, ++ 240, 241, 242, 242, 243, 243, 244, 244, 245, 245, ++ 246, 247, 247, 248, 248, 249, 249, 249, 249, 250, ++ 250, 250, 251, 251, 252, 252, 253, 253, 254, 255, ++ 255, 256, 256, 257, 257, 257, 258, 258, 259, 260, ++ 261, 261, 262, 263, 263, 264, 264, 265, 266, 267, ++ 268, 268, 269, 270, 270, 271, 272, 272, 272, 272, ++ 272 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@@ -1063,31 -1047,31 +1075,33 @@@ static const yytype_uint8 yyr2[] { 0, 2, 1, 3, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, - 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 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, + 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ++ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, ++ 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 1, 0, 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, 3, 3, 4, 4, 5, 0, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, - 3, 2, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 3, 1, 2, 2, 2, 2, 2, 2, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 4, 1, 0, 2, 1, 2, 2, 2, 1, 1, - 3, 3, 1, 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, 3, 2, 1, 5, 4, 3, 2, 1, - 6, 3, 2, 3, 3, 3, 3, 3 + 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, 2, 1, 2, 2, - 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, - 2, 2, 2, 1, 3, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 1, 2, 0, 4, 3, 2, 1, 2, 2, 2, - 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 2, 1, 1, 1, 5, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 5, - 1, 3, 2, 3, 1, 1, 2, 1, 5, 4, - 3, 2, 1, 6, 3, 2, 3, 1, 1, 1, - 1, 1 ++ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, ++ 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, ++ 1, 1, 1, 3, 2, 1, 2, 2, 2, 2, ++ 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, ++ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, ++ 2, 2, 2, 3, 1, 2, 2, 2, 2, 3, ++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, ++ 0, 4, 1, 0, 0, 2, 2, 2, 2, 1, ++ 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 2, 1, 2, 1, 1, 1, 5, 2, ++ 1, 2, 1, 1, 1, 1, 1, 1, 5, 1, ++ 3, 2, 3, 1, 1, 2, 1, 5, 4, 3, ++ 2, 1, 6, 3, 2, 3, 1, 1, 1, 1, ++ 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@@ -1095,121 -1079,117 +1109,119 @@@ means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 0, 24, 49, 0, 0, 63, 0, 0, - 202, 0, 185, 0, 0, 0, 214, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 215, 0, 23, 0, - 0, 22, 0, 0, 0, 0, 0, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 48, 240, - 0, 0, 0, 24, 55, 200, 0, 0, 67, 0, - 0, 209, 0, 191, 0, 0, 0, 222, 0, 0, - 202, 0, 205, 25, 0, 0, 223, 0, 23, 0, - 203, 22, 204, 0, 0, 0, 206, 21, 0, 0, - 0, 201, 0, 0, 0, 0, 0, 53, 54, 248, ++ 0, 0, 0, 24, 54, 211, 0, 68, 0, 0, ++ 220, 0, 204, 0, 0, 0, 233, 0, 0, 213, ++ 0, 216, 25, 0, 0, 0, 234, 0, 23, 0, ++ 214, 22, 215, 0, 0, 0, 217, 21, 0, 0, ++ 0, 212, 0, 0, 0, 0, 0, 52, 53, 259, 0, 2, 0, 7, 0, 8, 0, 9, 10, 13, - 11, 12, 14, 15, 16, 17, 183, 0, 18, 0, - 5, 52, 238, 237, 186, 53, 0, 0, 0, 0, - 0, 0, 54, 62, 166, 167, 168, 169, 170, 171, - 172, 163, 165, 0, 0, 0, 112, 137, 200, 188, - 162, 89, 90, 91, 92, 96, 93, 94, 95, 97, - 0, 0, 29, 0, 26, 6, 55, 56, 189, 211, - 192, 210, 191, 233, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 113, 142, 51, 60, 231, 193, 190, - 199, 57, 120, 0, 0, 120, 120, 26, 58, 194, - 0, 195, 84, 88, 85, 187, 0, 0, 0, 0, - 0, 0, 0, 173, 175, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 70, 72, 196, 227, - 0, 59, 226, 228, 224, 198, 1, 0, 4, 20, - 46, 222, 221, 220, 0, 0, 68, 64, 65, 66, - 67, 69, 61, 164, 138, 139, 140, 136, 201, 86, - 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 153, 184, 209, 232, 143, 144, 145, 146, 147, - 148, 149, 150, 141, 230, 116, 120, 120, 119, 114, - 0, 0, 87, 176, 177, 178, 179, 180, 181, 182, - 174, 83, 73, 236, 234, 235, 75, 74, 81, 79, - 80, 78, 82, 76, 77, 71, 0, 0, 197, 206, - 0, 225, 223, 3, 32, 33, 34, 0, 0, 0, - 0, 38, 39, 40, 41, 0, 0, 42, 19, 31, - 216, 217, 218, 213, 219, 212, 244, 245, 0, 0, - 0, 104, 103, 0, 101, 102, 0, 98, 158, 159, - 160, 161, 157, 156, 154, 155, 152, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 121, 117, 118, 120, 204, 208, 207, 205, 0, - 35, 37, 36, 44, 43, 45, 30, 0, 0, 0, - 247, 0, 242, 0, 99, 111, 107, 109, 105, 106, - 108, 110, 100, 115, 203, 0, 0, 241, 239, 246, - 0, 243, 229, 250, 0, 0, 0, 0, 0, 252, - 0, 0, 248, 251, 249, 0, 0, 257, 258, 259, - 260, 261, 0, 0, 0, 253, 0, 255, 0, 254, - 256 - 11, 12, 14, 15, 16, 17, 0, 0, 0, 186, - 0, 18, 0, 5, 58, 192, 59, 60, 169, 170, - 171, 172, 173, 174, 168, 164, 166, 167, 147, 148, - 149, 122, 145, 0, 207, 193, 163, 97, 98, 99, - 100, 104, 101, 102, 103, 105, 29, 30, 28, 0, - 26, 0, 6, 61, 62, 219, 194, 218, 241, 56, - 57, 66, 239, 195, 63, 128, 29, 30, 128, 26, - 64, 0, 196, 92, 96, 93, 179, 180, 181, 182, - 183, 184, 185, 175, 177, 0, 87, 83, 0, 84, - 91, 89, 90, 88, 86, 85, 77, 79, 0, 0, - 197, 235, 0, 65, 234, 236, 232, 199, 1, 0, - 4, 20, 52, 246, 245, 187, 188, 189, 230, 229, - 228, 0, 0, 76, 71, 72, 73, 74, 0, 75, - 68, 0, 165, 144, 146, 208, 94, 159, 160, 161, - 162, 0, 0, 157, 158, 150, 152, 0, 0, 27, - 190, 217, 240, 238, 124, 128, 128, 123, 0, 0, - 95, 176, 178, 244, 242, 243, 82, 78, 80, 81, - 0, 0, 198, 214, 0, 233, 231, 3, 37, 0, - 38, 39, 46, 48, 47, 50, 40, 41, 42, 43, - 49, 51, 44, 19, 32, 33, 36, 34, 0, 224, - 225, 226, 221, 227, 220, 0, 0, 0, 0, 70, - 69, 114, 113, 0, 111, 112, 0, 106, 109, 110, - 156, 155, 151, 153, 154, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 129, - 125, 126, 128, 212, 216, 215, 213, 0, 35, 31, - 45, 0, 0, 0, 0, 0, 254, 0, 250, 107, - 121, 117, 119, 115, 116, 118, 120, 108, 127, 211, - 210, 0, 251, 252, 0, 249, 247, 253, 0, 237, - 257, 0, 0, 0, 0, 0, 259, 0, 0, 255, - 258, 256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 260, 0, 262, 263, - 264, 265, 266, 267, 261 ++ 11, 12, 14, 15, 16, 17, 0, 0, 0, 199, ++ 0, 18, 0, 5, 57, 58, 75, 71, 72, 73, ++ 74, 0, 59, 67, 0, 182, 183, 184, 185, 186, ++ 187, 181, 177, 179, 180, 149, 150, 151, 122, 147, ++ 0, 218, 205, 176, 97, 98, 99, 100, 104, 101, ++ 102, 103, 105, 29, 30, 28, 0, 26, 0, 6, ++ 60, 61, 230, 206, 229, 252, 55, 155, 156, 157, ++ 158, 159, 160, 161, 162, 123, 153, 0, 56, 65, ++ 250, 207, 62, 130, 29, 30, 130, 130, 26, 63, ++ 0, 208, 92, 96, 93, 192, 193, 194, 195, 196, ++ 197, 198, 188, 190, 0, 87, 82, 0, 83, 91, ++ 89, 90, 88, 86, 84, 85, 76, 78, 0, 0, ++ 224, 246, 0, 64, 245, 247, 243, 210, 1, 0, ++ 4, 20, 51, 257, 256, 200, 201, 202, 241, 240, ++ 239, 0, 0, 70, 66, 69, 178, 146, 148, 219, ++ 94, 172, 173, 174, 175, 0, 0, 170, 171, 163, ++ 165, 0, 0, 27, 203, 228, 251, 152, 154, 249, ++ 126, 130, 130, 129, 124, 0, 0, 95, 189, 191, ++ 255, 253, 254, 81, 77, 79, 80, 209, 0, 244, ++ 242, 3, 36, 37, 38, 45, 47, 46, 49, 39, ++ 40, 41, 42, 48, 50, 43, 19, 32, 33, 35, ++ 34, 0, 235, 236, 237, 232, 238, 231, 263, 264, ++ 0, 0, 0, 114, 113, 0, 111, 112, 0, 106, ++ 109, 110, 169, 168, 164, 166, 167, 132, 133, 134, ++ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, ++ 145, 131, 127, 128, 130, 223, 0, 0, 225, 0, ++ 31, 44, 0, 0, 0, 266, 0, 261, 0, 107, ++ 121, 117, 119, 115, 116, 118, 120, 108, 125, 222, ++ 221, 227, 226, 0, 0, 260, 258, 265, 0, 262, ++ 248, 269, 0, 0, 0, 0, 0, 271, 0, 0, ++ 267, 270, 268, 0, 0, 276, 277, 278, 279, 280, ++ 0, 0, 0, 272, 0, 274, 0, 273, 275 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 50, 51, 52, 53, 54, 123, 114, 288, 289, - 55, 56, 57, 58, 82, 83, 59, 176, 177, 60, - 152, 109, 209, 307, 362, 61, 235, 331, 96, 97, - 133, 134, 62, 220, 221, 63, 91, 92, 64, 163, - 164, 65, 99, 151, 268, 269, 120, 121, 66, 67, - 295, 194, 185, 181, 182, 183, 138, 124, 256, 74, - 68, 69, 298, 299, 300, 349, 350, 375, 351, 378, - 379, 392, 393, 394 - -1, 50, 51, 52, 53, 54, 118, 110, 111, 253, - 254, 255, 256, 257, 258, 55, 56, 57, 58, 77, - 190, 191, 59, 156, 157, 158, 159, 60, 133, 105, - 196, 277, 278, 279, 327, 61, 214, 299, 91, 92, - 93, 62, 205, 206, 207, 208, 63, 85, 86, 87, - 64, 143, 144, 145, 65, 66, 67, 68, 95, 132, - 330, 232, 233, 116, 117, 69, 70, 264, 181, 167, - 163, 164, 165, 123, 119, 226, 175, 71, 72, 267, - 268, 315, 316, 342, 317, 345, 346, 359, 360 ++ -1, 50, 51, 52, 53, 54, 125, 117, 118, 266, ++ 267, 268, 269, 270, 271, 55, 56, 57, 58, 82, ++ 83, 84, 59, 176, 177, 178, 179, 60, 152, 112, ++ 210, 289, 290, 291, 337, 61, 230, 311, 98, 99, ++ 100, 135, 136, 137, 62, 219, 220, 221, 222, 63, ++ 92, 93, 94, 64, 162, 163, 164, 65, 66, 67, ++ 68, 102, 151, 340, 247, 318, 123, 124, 69, 70, ++ 277, 201, 187, 183, 184, 185, 141, 126, 243, 195, ++ 71, 72, 280, 281, 282, 324, 325, 353, 326, 356, ++ 357, 370, 371, 372 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ - #define YYPACT_NINF -159 -#define YYPACT_NINF -145 ++#define YYPACT_NINF -163 static const yytype_int16 yypact[] = { - 124, -139, -28, -159, -159, -3, -25, -17, 34, -2, - -106, 34, -159, 49, -51, -103, -159, -94, -82, -76, - -75, -73, -159, -51, 178, -51, -159, -71, -159, -69, - -68, -159, -57, 29, 15, 33, -49, -159, -48, 49, - -45, -3, 14, 499, -42, -36, 42, -159, -159, -159, - 100, 272, -61, -159, -51, -159, -51, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -159, 2, -159, -74, - -159, -159, -159, -159, -159, -159, -37, -31, -27, 5, - 18, 53, -17, -159, -159, -159, -159, -159, -159, -159, - -159, 34, -159, 56, 87, 92, -2, -159, 76, -159, - 34, -159, -159, -159, -159, -159, -159, -159, -159, -159, - 21, 23, -159, 174, -159, 417, -159, -159, -159, -159, - -75, -159, -159, -159, -51, 99, 110, 111, 116, 117, - 118, 120, 131, 178, -159, -51, -159, -159, 39, -159, - -159, -159, -159, -7, -6, -159, -159, 109, -159, -159, - 20, -159, 49, -159, -159, -159, -3, -3, -3, -3, - -3, -3, -3, 14, -159, 140, 143, -10, 144, -3, - -3, -3, -3, 147, 148, 149, 499, -159, -43, -159, - 150, -36, -159, -159, -159, 151, -159, 46, -159, 262, - -159, -159, -159, -159, 1, -102, -159, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -159, -159, -159, -20, - -159, -159, -10, -10, -10, -10, 69, 155, -3, -3, - 174, -159, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, -159, -159, -159, 399, -159, -159, 399, 399, - -42, 75, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -42, 161, -43, -159, - 186, -159, -159, -159, -159, -159, -159, 166, 167, 168, - 169, -159, -159, -159, -159, 170, 171, -159, 262, -159, - -159, -159, -159, -159, -159, -159, -159, -159, -117, 65, - 61, -159, -159, 95, -159, -159, 7, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, 399, 399, -159, 214, -159, -159, -159, 184, - -159, -159, -159, -159, -159, -159, -159, 70, 80, -109, - -159, 68, -159, -3, -159, -159, -159, -159, -159, -159, - -159, -159, -159, 399, -159, 71, -51, -159, -159, -159, - 79, -159, -159, -159, 77, 81, -3, 89, -141, -159, - 101, -3, -159, -159, -159, 73, 13, -159, -159, -159, - -159, -159, -90, 103, 94, -159, 107, -159, -3, -159, - -159 - 126, -121, -19, -145, -145, -145, -2, -1, -145, 8, - 20, -95, 8, -145, 47, -46, -78, -145, -76, -73, - -145, -72, -145, -145, -46, -46, -145, -71, -145, -67, - -145, -145, -145, 12, -17, 19, -145, -145, -58, 47, - -56, -145, 0, 295, -55, -47, 24, -145, -145, -145, - 80, 262, -70, -145, -46, -145, -46, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -10, -50, -49, -145, - 3, -145, -85, -145, -145, -145, -145, 142, -145, -145, - -145, -145, -145, -145, -145, 8, -145, -145, -145, -145, - -145, 20, -145, 33, 58, -145, 8, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -145, 168, - -145, -36, 398, -145, -145, -145, -72, -145, -145, -46, - -46, -145, -145, -34, -145, -145, 71, 73, -145, 25, - -145, -57, -145, 47, -145, -145, -145, -145, -145, -145, - -145, -145, -145, 0, -145, -10, -145, -145, -9, -145, - -145, -145, -145, -145, -145, -145, 295, -145, 57, -10, - -35, -145, 59, -47, -145, -145, -145, 63, -145, -37, - -145, 31, -145, -145, -145, -145, -145, -145, -145, -145, - -145, 6, -126, -145, -145, -145, -145, -145, 74, -145, - -145, -20, -145, -145, -145, -145, -11, -145, -145, -145, - -145, 4, 77, -145, -145, 168, -145, -10, -9, -145, - -145, -145, -145, -145, 483, -145, -145, 483, -55, 5, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -55, 91, -35, -145, 112, -145, -145, -145, -145, -10, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, 31, -145, -145, -145, -145, 93, -145, - -145, -145, -145, -145, -145, -7, -3, -107, -4, -145, - -145, -145, -145, 34, -145, -145, 1, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - 483, 483, -145, 131, -145, -145, -145, 116, -145, -145, - -145, -10, -10, 9, 16, -100, -145, 7, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, 483, -145, - -145, 15, -145, -145, -46, -145, -145, -145, 26, -145, - -145, 21, 35, -10, 28, -112, -145, 36, -10, -145, - -145, -145, 37, -40, 39, 41, 46, 50, 62, 61, - 48, -10, -10, -10, -10, -10, -145, 78, -145, -145, - -145, -145, -145, -145, -145 ++ 108, -138, -21, -163, -163, -163, -19, 90, 18, 9, ++ -102, 18, -163, 26, -46, -98, -163, -96, -95, -163, ++ -94, -163, -163, -46, 399, -46, -163, -88, -163, -84, ++ -163, -163, -163, 4, 17, 6, -163, -163, -78, 26, ++ -77, -163, 5, 493, -75, -49, 12, -163, -163, -163, ++ 70, 266, -91, -163, -46, -163, -46, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, -6, -68, -67, -163, ++ -18, -163, -99, -163, -163, -163, -163, -163, -163, -163, ++ -163, 19, 90, -163, -61, -163, -163, -163, -163, -163, ++ -163, -163, 18, -163, -163, -163, -163, -163, 9, -163, ++ 31, 61, -163, 18, -163, -163, -163, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, 168, -163, -47, 411, ++ -163, -163, -163, -94, -163, -163, -46, -163, -163, -163, ++ -163, -163, -163, -163, -163, 399, -163, 36, -46, -163, ++ -163, -42, -163, -163, 69, 76, -163, -163, 27, -163, ++ -70, -163, 26, -163, -163, -163, -163, -163, -163, -163, ++ -163, -163, 5, -163, -6, -163, -163, -20, -163, -163, ++ -163, -163, -163, -163, -163, -163, 493, -163, 51, -6, ++ -163, -163, 52, -49, -163, -163, -163, 54, -163, -36, ++ -163, 98, -163, -163, -163, -163, -163, -163, -163, -163, ++ -163, 8, -136, -163, -163, -163, -163, -163, -163, -163, ++ 25, -163, -163, -163, -163, -27, 75, -163, -163, 168, ++ -163, -6, -20, -163, -163, -163, -163, -163, -163, -163, ++ 248, -163, -163, 248, 248, -75, -9, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, -163, -48, 101, -163, ++ -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, 98, -163, -163, -163, ++ -163, 81, -163, -163, -163, -163, -163, -163, -163, -163, ++ -110, -16, -24, -163, -163, 14, -163, -163, 3, -163, ++ -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, ++ -163, -163, 248, 248, -163, 132, -75, 103, -163, 104, ++ -163, -163, -17, 7, -113, -163, -8, -163, -6, -163, ++ -163, -163, -163, -163, -163, -163, -163, -163, 248, -163, ++ -163, -163, -163, -1, -46, -163, -163, -163, 13, -163, ++ -163, -163, 2, 11, -6, 10, -147, -163, 24, -6, ++ -163, -163, -163, 16, 58, -163, -163, -163, -163, -163, ++ -87, 28, 15, -163, 32, -163, -6, -163, -163 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -159, -159, -159, -29, -159, -159, -13, -32, -159, -14, - -159, -159, -159, -159, -159, 199, -159, -159, 106, -159, - -159, -5, -159, -159, -159, -159, -142, -159, -159, 187, - -159, 156, -159, -159, 74, -159, 279, -55, -159, -159, - 128, -159, -159, -159, -159, 27, -159, 176, -159, -159, - -159, -159, -159, -159, 119, -159, -159, 278, -158, -41, - -159, -159, -159, -1, -159, -159, -38, -159, -159, -159, - -70, -159, -88, -159 - -145, -145, -145, -43, -145, -145, -15, -32, -145, -145, - -51, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, 81, -145, -145, -145, -145, -33, - -145, -145, -145, -145, -145, -145, -125, -145, -145, 122, - -145, -145, -145, 38, -145, -145, -145, 217, -63, -145, - -145, -145, 95, -145, -145, -145, -145, -145, -145, -145, - -145, -145, 10, -145, 120, -145, -145, -145, -145, -145, - -145, 76, -145, -145, 215, 43, -144, -145, -145, -145, - -23, -145, -62, -145, -145, -145, -90, -145, -102 ++ -163, -163, -163, -43, -163, -163, -14, -33, -163, -163, ++ -72, -163, -163, -163, -163, -163, -163, -163, -163, -163, ++ 114, -163, -163, -163, 22, -163, -163, -163, -163, -34, ++ -163, -163, -163, -163, -163, -163, -143, -163, -163, 102, ++ -163, -163, 64, -163, -163, -163, -7, -163, -163, -163, ++ 199, -65, -163, -163, -163, 49, -163, -163, -163, -163, ++ -163, -163, -163, -163, -163, -163, -163, 93, -163, -163, ++ -163, -163, -163, -163, 39, -163, -163, 208, 20, -162, ++ -163, -163, -163, -56, -163, -163, -90, -163, -163, -163, ++ -121, -163, -126, -163 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@@ -1219,181 -1199,182 +1231,176 @@@ #define YYTABLE_NINF -7 static const yytype_int16 yytable[] = { - 155, 113, 147, 238, 239, 290, 301, 93, 76, 110, - 355, 111, 178, 302, 266, 347, 303, 236, 237, 156, - 179, 146, 187, 347, 70, 253, 72, 377, 71, 77, - 356, 75, 78, 191, 153, 98, 203, 382, 115, 142, - 84, 189, 157, 190, 85, 203, 254, 116, 296, 297, - 86, 304, 192, 73, 308, 309, 310, 311, 158, 117, - 291, 159, 292, 296, 297, 118, 119, 101, 122, 368, - 136, 102, 137, 139, 193, 143, 267, 144, 305, 387, - 388, 389, 390, 391, 140, 141, 222, 94, 395, 148, - 112, 95, 149, 150, 332, 333, 154, 87, 184, 112, - 186, 357, 188, 195, 196, 208, 79, 358, 80, 201, - 197, 224, 204, 81, 198, 243, 244, 245, 246, 247, - 248, 249, 224, 359, 103, 1, 160, 88, 258, 259, - 260, 261, 2, 306, 210, 211, 3, 4, 5, 180, - 255, 89, 293, 205, 6, 7, 199, 242, 206, 145, - 8, 9, 161, 162, 10, 225, 112, 11, 12, 200, - 294, 13, 210, 104, 211, 360, 226, 227, 361, 14, - 90, 105, 228, 229, 230, 106, 231, 314, 315, 15, - 234, 16, 387, 388, 389, 390, 391, 232, 240, 17, - 18, 107, 363, 19, 241, 108, 251, 20, 21, 252, - 257, 22, 23, 262, 263, 264, 270, 272, 334, 273, - 312, 313, 212, 213, 214, 215, 335, 337, 339, 24, - 25, 26, 340, 341, 342, 343, 344, 345, 352, 125, - 126, 127, 128, 27, 336, 353, 354, 28, 364, 29, - 365, 30, 31, 367, 366, 370, 374, 372, 32, 377, - 386, 376, 33, 34, 35, 36, 37, 38, 129, 39, - 130, 40, 131, 381, 384, 132, 397, 41, 398, 274, - 399, 42, 43, 44, 346, 45, 46, 275, 47, 48, - 2, 202, 265, 207, 3, 4, 5, -6, 49, 233, - 100, 250, 6, 7, 316, 338, 223, 348, 8, 9, - 271, 216, 10, 135, 396, 11, 12, 0, 383, 13, - 276, 369, 371, 0, 217, 0, 0, 14, 218, 219, - 0, 0, 0, 0, 0, 0, 277, 15, 0, 16, - 0, 0, 0, 0, 0, 380, 0, 17, 18, 0, - 385, 19, 0, 0, 0, 20, 21, 278, 0, 22, - 23, 0, 279, 373, 280, 0, 0, 400, 0, 0, - 0, 0, 0, 0, 0, 281, 0, 24, 25, 26, - 109, 222, 129, 217, 320, 136, 134, 161, 169, 125, - 259, 106, 160, 107, 78, 229, 313, 271, 79, 128, - 230, 173, 192, 313, 272, 80, 321, 273, 223, 88, - 137, 265, 266, 192, 73, 74, 178, 94, 238, 171, - 126, 172, 127, 239, 174, 224, 138, 240, 344, 139, - 265, 266, 75, 76, 112, 179, 113, 274, 349, 114, - 115, 121, 260, 283, 261, 122, 124, 97, 81, 210, - 336, 98, 180, 130, 131, 231, 135, 108, 166, 275, - 168, 241, 176, 177, 182, 170, 108, 194, 322, 195, - 300, 301, 242, 323, 82, 308, 209, 215, 213, 216, - 220, 218, 89, 140, 212, 212, 90, 83, 324, 219, - 243, 228, 270, 234, 244, 108, 245, 236, 237, 99, - 162, 354, 355, 356, 357, 358, 246, 1, 269, 141, - 142, 281, 225, 276, 2, 84, 280, 303, 262, 3, - 4, 5, 247, 248, 6, 305, 307, 310, 7, 8, - 325, 318, 100, 326, 9, 10, 263, 329, 11, 311, - 101, 12, 13, 312, 102, 14, 319, 332, 333, 183, - 331, 335, 249, 15, 250, 334, 338, 328, 251, 16, - 103, 17, 252, 339, 104, 341, 302, 343, 18, 19, - 184, 351, 20, 185, 348, 344, 21, 22, 304, 347, - 23, 24, 309, 368, 352, 361, 353, 362, 197, 198, - 199, 200, 363, 193, 25, 26, 364, 369, 370, 371, - 372, 373, 354, 355, 356, 357, 358, 27, 365, 96, - 28, 366, 29, 374, 30, 31, 211, 227, 221, 235, - 120, 32, 306, 282, 314, 33, 34, 35, 36, 37, - 38, 284, 39, 337, 40, 350, 186, 367, 187, 0, - 41, 0, 0, 188, 42, 43, 44, 189, 45, 46, - 2, 47, 48, 0, 0, 3, 4, 5, 0, 0, - 6, -6, 49, 0, 7, 8, 201, 0, 0, 0, - 9, 10, 0, 0, 11, 0, 0, 12, 13, 202, - 0, 14, 0, 203, 204, 0, 146, 0, 0, 15, - 0, 0, 0, 0, 147, 16, 148, 17, 0, 340, - 0, 0, 0, 0, 18, 19, 0, 0, 20, 0, - 0, 0, 21, 22, 0, 0, 23, 24, 0, 0, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 28, 0, 29, 0, - 30, 31, 150, 151, 0, 152, 153, 32, 0, 154, - 0, 33, 34, 35, 36, 37, 38, 0, 39, 0, - 40, 0, 0, 0, 0, 0, 41, 155, 0, 0, - 42, 43, 44, 0, 45, 46, 2, 47, 48, 0, - 0, 3, 4, 5, 0, 0, 6, -6, 49, 0, - 7, 8, 0, 0, 0, 0, 9, 10, 0, 0, - 11, 0, 0, 12, 13, 0, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 16, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 19, 0, 0, 20, 0, 0, 0, 21, 22, - 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 0, 28, 0, 29, 0, 30, 31, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 33, 34, 35, - 36, 37, 38, 0, 39, 0, 40, 285, 0, 0, - 0, 0, 41, 0, 0, 286, 42, 43, 44, 0, - 45, 46, 0, 47, 48, 0, 0, 287, 288, 0, - 289, 0, 0, 0, 49, 0, 290, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 292, 293, 0, 294, - 295, 296, 0, 297, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 116, 148, 239, 233, 234, 153, 330, 181, 189, 316, ++ 155, 180, 272, 198, 113, 240, 114, 246, 95, 322, ++ 147, 355, 322, 193, 85, 73, 331, 206, 86, 278, ++ 279, 360, 199, 156, 87, 74, 241, 75, 206, 101, ++ 191, 143, 192, 119, 104, 120, 121, 122, 105, 157, ++ 194, 283, 158, 139, 200, 278, 279, 140, 284, 295, ++ 142, 285, 149, 150, 154, 346, 115, 273, 186, 274, ++ 188, 317, 190, 196, 197, 203, 224, 144, 202, 145, ++ 205, 88, 365, 366, 367, 368, 369, 208, 312, 313, ++ 209, 373, 228, 231, 223, 115, 286, 332, 96, 229, ++ 232, 106, 97, 333, 236, 252, 235, 245, 248, 1, ++ 250, 89, 226, 253, 292, 76, 2, 159, 237, 334, ++ 3, 4, 5, 287, 226, 90, 182, 251, 6, 7, ++ 242, 293, 315, 319, 8, 9, 77, 321, 10, 78, ++ 107, 11, 12, 160, 161, 13, 254, 327, 108, 275, ++ 328, 146, 109, 14, 91, 329, 339, 344, 115, 342, ++ 343, 335, 255, 15, 336, 16, 349, 276, 110, 348, ++ 345, 338, 111, 17, 18, 350, 354, 19, 288, 355, ++ 352, 20, 21, 256, 359, 22, 23, 362, 257, 376, ++ 258, 375, 358, 364, 320, 377, 204, 363, 244, 227, ++ 207, 259, 314, 24, 25, 26, 211, 212, 213, 214, ++ 103, 238, 294, 79, 378, 80, 225, 27, 260, 261, ++ 81, 28, 249, 29, 323, 30, 31, 365, 366, 367, ++ 368, 369, 32, 138, 347, 361, 33, 34, 35, 36, ++ 37, 38, 296, 39, 374, 40, 0, 0, 262, 0, ++ 263, 41, 0, 0, 264, 42, 43, 44, 265, 45, ++ 46, 0, 47, 48, 0, 0, 0, 0, 0, 0, ++ 0, -6, 49, 0, 2, 0, 0, 0, 3, 4, ++ 5, 0, 0, 341, 0, 0, 6, 7, 0, 0, ++ 297, 0, 8, 9, 0, 215, 10, 0, 298, 11, ++ 12, 0, 0, 13, 0, 0, 0, 0, 216, 0, ++ 0, 14, 217, 218, 0, 299, 300, 0, 301, 0, ++ 0, 15, 0, 16, 302, 0, 0, 0, 0, 0, ++ 351, 17, 18, 0, 0, 19, 0, 0, 0, 20, ++ 21, 0, 0, 22, 23, 0, 0, 303, 0, 304, ++ 305, 0, 306, 307, 308, 0, 309, 0, 0, 0, ++ 0, 24, 25, 26, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 27, 0, 0, 0, 28, ++ 0, 29, 0, 30, 31, 0, 0, 0, 0, 0, ++ 32, 0, 0, 0, 33, 34, 35, 36, 37, 38, ++ 0, 39, 0, 40, 310, 0, 0, 0, 0, 41, ++ 0, 0, 0, 42, 43, 44, 0, 45, 46, 2, ++ 47, 48, 0, 3, 4, 5, 0, 0, 0, -6, ++ 49, 6, 7, 0, 0, 0, 0, 8, 9, 0, ++ 0, 10, 0, 0, 11, 12, 0, 0, 13, 0, ++ 127, 128, 129, 130, 0, 0, 14, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, ++ 0, 0, 0, 0, 0, 0, 17, 18, 0, 131, ++ 19, 132, 0, 133, 20, 21, 134, 0, 22, 23, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 165, 0, 24, 25, 26, 0, ++ 166, 0, 167, 0, 0, 0, 0, 0, 0, 0, ++ 27, 0, 0, 0, 28, 0, 29, 0, 30, 31, ++ 0, 0, 0, 0, 0, 32, 168, 0, 0, 33, ++ 34, 35, 36, 37, 38, 0, 39, 0, 40, 0, ++ 0, 0, 0, 0, 41, 0, 0, 0, 42, 43, ++ 44, 0, 45, 46, 0, 47, 48, 0, 0, 0, ++ 0, 0, 0, 0, 169, 49, 170, 0, 0, 171, ++ 0, 172, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 282, 283, 0, 28, 0, 29, 0, 30, - 31, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 33, 34, 35, 36, 37, 38, 0, 39, 0, 40, - 0, 0, 284, 0, 285, 41, 0, 0, 286, 42, - 43, 44, 287, 45, 46, 2, 47, 48, 0, 3, - 4, 5, 0, 0, 0, -6, 49, 6, 7, 0, - 0, 317, 0, 8, 9, 0, 0, 10, 0, 318, - 11, 12, 0, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 14, 0, 0, 0, 319, 320, 0, 321, - 0, 0, 15, 0, 16, 322, 0, 0, 0, 0, - 0, 0, 17, 18, 0, 0, 19, 0, 0, 0, - 20, 21, 0, 0, 22, 23, 0, 0, 323, 0, - 324, 325, 0, 326, 327, 328, 0, 329, 0, 0, - 165, 0, 24, 25, 26, 0, 166, 0, 167, 0, - 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 28, 0, 29, 0, 30, 31, 0, 0, 0, 0, - 0, 32, 168, 0, 0, 33, 34, 35, 36, 37, - 38, 0, 39, 0, 40, 330, 0, 0, 0, 0, - 41, 0, 0, 0, 42, 43, 44, 0, 45, 46, - 0, 47, 48, 0, 0, 0, 0, 0, 0, 0, - 169, 49, 170, 0, 0, 171, 0, 172, 0, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 175 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 298 ++ 0, 0, 0, 174, 175 }; static const yytype_int16 yycheck[] = { - 41, 14, 34, 145, 146, 4, 26, 9, 25, 60, - 3, 62, 44, 33, 57, 132, 36, 24, 24, 5, - 56, 34, 51, 132, 163, 35, 29, 168, 56, 46, - 23, 56, 49, 31, 39, 141, 91, 178, 141, 24, - 6, 54, 28, 56, 10, 100, 56, 141, 165, 166, - 16, 71, 50, 56, 212, 213, 214, 215, 44, 141, - 59, 47, 61, 165, 166, 141, 141, 18, 141, 178, - 141, 22, 141, 141, 72, 60, 119, 62, 98, 169, - 170, 171, 172, 173, 141, 56, 115, 89, 178, 56, - 141, 93, 141, 141, 236, 237, 141, 63, 56, 141, - 0, 94, 163, 177, 141, 29, 123, 100, 125, 56, - 141, 124, 56, 130, 141, 156, 157, 158, 159, 160, - 161, 162, 135, 116, 75, 1, 112, 93, 169, 170, - 171, 172, 8, 153, 141, 141, 12, 13, 14, 175, - 150, 107, 141, 56, 20, 21, 141, 152, 56, 134, - 26, 27, 138, 139, 30, 56, 141, 33, 34, 141, - 159, 37, 141, 114, 141, 158, 56, 56, 161, 45, - 136, 122, 56, 56, 56, 126, 56, 218, 219, 55, - 141, 57, 169, 170, 171, 172, 173, 56, 79, 65, - 66, 142, 334, 69, 174, 146, 56, 73, 74, 56, - 56, 77, 78, 56, 56, 56, 56, 56, 240, 163, - 141, 56, 38, 39, 40, 41, 141, 56, 32, 95, - 96, 97, 56, 56, 56, 56, 56, 56, 163, 51, - 52, 53, 54, 109, 266, 174, 141, 113, 24, 115, - 56, 117, 118, 163, 174, 177, 167, 176, 124, 168, - 177, 174, 128, 129, 130, 131, 132, 133, 80, 135, - 82, 137, 84, 174, 163, 87, 163, 143, 174, 7, - 163, 147, 148, 149, 288, 151, 152, 15, 154, 155, - 8, 82, 176, 96, 12, 13, 14, 163, 164, 133, - 11, 163, 20, 21, 220, 268, 120, 298, 26, 27, - 181, 127, 30, 25, 392, 33, 34, -1, 378, 37, - 48, 349, 353, -1, 140, -1, -1, 45, 144, 145, - -1, -1, -1, -1, -1, -1, 64, 55, -1, 57, - -1, -1, -1, -1, -1, 376, -1, 65, 66, -1, - 381, 69, -1, -1, -1, 73, 74, 85, -1, 77, - 78, -1, 90, 366, 92, -1, -1, 398, -1, -1, - -1, -1, -1, -1, -1, 103, -1, 95, 96, 97, - 15, 145, 34, 128, 3, 5, 39, 54, 51, 26, - 4, 57, 44, 59, 6, 159, 123, 28, 10, 34, - 55, 31, 85, 123, 35, 17, 25, 38, 37, 9, - 30, 157, 158, 96, 155, 54, 33, 132, 7, 54, - 57, 56, 59, 12, 54, 54, 46, 16, 160, 49, - 157, 158, 54, 54, 132, 52, 132, 68, 170, 132, - 132, 132, 56, 207, 58, 132, 54, 20, 60, 112, - 170, 24, 69, 54, 132, 110, 132, 132, 54, 90, - 0, 50, 132, 132, 169, 155, 132, 54, 87, 31, - 215, 216, 61, 92, 86, 239, 132, 26, 132, 26, - 133, 76, 82, 103, 119, 120, 86, 99, 107, 166, - 79, 54, 132, 54, 83, 132, 85, 54, 155, 72, - 167, 161, 162, 163, 164, 165, 95, 1, 54, 129, - 130, 54, 141, 144, 8, 127, 132, 132, 132, 13, - 14, 15, 111, 112, 18, 54, 34, 54, 22, 23, - 149, 155, 105, 152, 28, 29, 150, 26, 32, 166, - 113, 35, 36, 166, 117, 39, 132, 311, 312, 27, - 54, 155, 141, 47, 143, 166, 169, 302, 147, 53, - 133, 55, 151, 168, 137, 159, 218, 166, 62, 63, - 48, 155, 66, 51, 166, 160, 70, 71, 230, 343, - 74, 75, 253, 155, 348, 166, 169, 166, 40, 41, - 42, 43, 166, 91, 88, 89, 166, 361, 362, 363, - 364, 365, 161, 162, 163, 164, 165, 101, 166, 12, - 104, 170, 106, 155, 108, 109, 116, 156, 143, 163, - 25, 115, 232, 205, 267, 119, 120, 121, 122, 123, - 124, 208, 126, 315, 128, 345, 114, 359, 116, -1, - 134, -1, -1, 121, 138, 139, 140, 125, 142, 143, - 8, 145, 146, -1, -1, 13, 14, 15, -1, -1, - 18, 155, 156, -1, 22, 23, 118, -1, -1, -1, - 28, 29, -1, -1, 32, -1, -1, 35, 36, 131, - -1, 39, -1, 135, 136, -1, 11, -1, -1, 47, - -1, -1, -1, -1, 19, 53, 21, 55, -1, 334, - -1, -1, -1, -1, 62, 63, -1, -1, 66, -1, - -1, -1, 70, 71, -1, -1, 74, 75, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 101, -1, -1, 104, -1, 106, -1, - 108, 109, 77, 78, -1, 80, 81, 115, -1, 84, - -1, 119, 120, 121, 122, 123, 124, -1, 126, -1, - 128, -1, -1, -1, -1, -1, 134, 102, -1, -1, - 138, 139, 140, -1, 142, 143, 8, 145, 146, -1, - -1, 13, 14, 15, -1, -1, 18, 155, 156, -1, - 22, 23, -1, -1, -1, -1, 28, 29, -1, -1, - 32, -1, -1, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, - -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, - 62, 63, -1, -1, 66, -1, -1, -1, 70, 71, - -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, - -1, -1, 104, -1, 106, -1, 108, 109, -1, -1, - -1, -1, -1, 115, -1, -1, -1, 119, 120, 121, - 122, 123, 124, -1, 126, -1, 128, 44, -1, -1, - -1, -1, 134, -1, -1, 52, 138, 139, 140, -1, - 142, 143, -1, 145, 146, -1, -1, 64, 65, -1, - 67, -1, -1, -1, 156, -1, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, -1, 93, 94, -1, 96, - 97, 98, -1, 100, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 14, 34, 164, 146, 147, 39, 3, 56, 51, 57, ++ 5, 44, 4, 31, 60, 35, 62, 179, 9, 132, ++ 34, 168, 132, 29, 6, 163, 23, 92, 10, 165, ++ 166, 178, 50, 28, 16, 56, 56, 56, 103, 141, ++ 54, 24, 56, 141, 18, 141, 141, 141, 22, 44, ++ 56, 26, 47, 141, 72, 165, 166, 141, 33, 221, ++ 56, 36, 56, 141, 141, 178, 141, 59, 56, 61, ++ 0, 119, 163, 141, 141, 56, 119, 60, 177, 62, ++ 141, 63, 169, 170, 171, 172, 173, 56, 231, 232, ++ 29, 178, 56, 24, 141, 141, 71, 94, 89, 141, ++ 24, 75, 93, 100, 174, 7, 79, 56, 56, 1, ++ 56, 93, 126, 15, 141, 25, 8, 112, 152, 116, ++ 12, 13, 14, 98, 138, 107, 175, 163, 20, 21, ++ 150, 56, 141, 32, 26, 27, 46, 56, 30, 49, ++ 114, 33, 34, 138, 139, 37, 48, 163, 122, 141, ++ 174, 134, 126, 45, 136, 141, 24, 174, 141, 56, ++ 56, 158, 64, 55, 161, 57, 328, 159, 142, 177, ++ 163, 314, 146, 65, 66, 176, 174, 69, 153, 168, ++ 167, 73, 74, 85, 174, 77, 78, 163, 90, 174, ++ 92, 163, 354, 177, 266, 163, 82, 359, 176, 135, ++ 98, 103, 235, 95, 96, 97, 38, 39, 40, 41, ++ 11, 162, 219, 123, 376, 125, 123, 109, 120, 121, ++ 130, 113, 183, 115, 280, 117, 118, 169, 170, 171, ++ 172, 173, 124, 25, 324, 356, 128, 129, 130, 131, ++ 132, 133, 222, 135, 370, 137, -1, -1, 150, -1, ++ 152, 143, -1, -1, 156, 147, 148, 149, 160, 151, ++ 152, -1, 154, 155, -1, -1, -1, -1, -1, -1, ++ -1, 163, 164, -1, 8, -1, -1, -1, 12, 13, ++ 14, -1, -1, 316, -1, -1, 20, 21, -1, -1, ++ 42, -1, 26, 27, -1, 127, 30, -1, 50, 33, ++ 34, -1, -1, 37, -1, -1, -1, -1, 140, -1, ++ -1, 45, 144, 145, -1, 67, 68, -1, 70, -1, ++ -1, 55, -1, 57, 76, -1, -1, -1, -1, -1, ++ 344, 65, 66, -1, -1, 69, -1, -1, -1, 73, ++ 74, -1, -1, 77, 78, -1, -1, 99, -1, 101, ++ 102, -1, 104, 105, 106, -1, 108, -1, -1, -1, ++ -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 109, -1, -1, -1, 113, ++ -1, 115, -1, 117, 118, -1, -1, -1, -1, -1, ++ 124, -1, -1, -1, 128, 129, 130, 131, 132, 133, ++ -1, 135, -1, 137, 156, -1, -1, -1, -1, 143, ++ -1, -1, -1, 147, 148, 149, -1, 151, 152, 8, ++ 154, 155, -1, 12, 13, 14, -1, -1, -1, 163, ++ 164, 20, 21, -1, -1, -1, -1, 26, 27, -1, ++ -1, 30, -1, -1, 33, 34, -1, -1, 37, -1, ++ 51, 52, 53, 54, -1, -1, 45, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 55, -1, 57, -1, ++ -1, -1, -1, -1, -1, -1, 65, 66, -1, 80, ++ 69, 82, -1, 84, 73, 74, 87, -1, 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 120, 121, -1, 113, -1, 115, -1, 117, - 118, -1, -1, -1, -1, -1, 124, -1, -1, -1, - 128, 129, 130, 131, 132, 133, -1, 135, -1, 137, - -1, -1, 150, -1, 152, 143, -1, -1, 156, 147, - 148, 149, 160, 151, 152, 8, 154, 155, -1, 12, - 13, 14, -1, -1, -1, 163, 164, 20, 21, -1, - -1, 42, -1, 26, 27, -1, -1, 30, -1, 50, - 33, 34, -1, -1, 37, -1, -1, -1, -1, -1, - -1, -1, 45, -1, -1, -1, 67, 68, -1, 70, - -1, -1, 55, -1, 57, 76, -1, -1, -1, -1, - -1, -1, 65, 66, -1, -1, 69, -1, -1, -1, - 73, 74, -1, -1, 77, 78, -1, -1, 99, -1, - 101, 102, -1, 104, 105, 106, -1, 108, -1, -1, - 11, -1, 95, 96, 97, -1, 17, -1, 19, -1, - -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, - 113, -1, 115, -1, 117, 118, -1, -1, -1, -1, - -1, 124, 43, -1, -1, 128, 129, 130, 131, 132, - 133, -1, 135, -1, 137, 156, -1, -1, -1, -1, - 143, -1, -1, -1, 147, 148, 149, -1, 151, 152, - -1, 154, 155, -1, -1, -1, -1, -1, -1, -1, - 81, 164, 83, -1, -1, 86, -1, 88, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, - 111 ++ -1, -1, -1, -1, 11, -1, 95, 96, 97, -1, ++ 17, -1, 19, -1, -1, -1, -1, -1, -1, -1, ++ 109, -1, -1, -1, 113, -1, 115, -1, 117, 118, ++ -1, -1, -1, -1, -1, 124, 43, -1, -1, 128, ++ 129, 130, 131, 132, 133, -1, 135, -1, 137, -1, ++ -1, -1, -1, -1, 143, -1, -1, -1, 147, 148, ++ 149, -1, 151, 152, -1, 154, 155, -1, -1, -1, ++ -1, -1, -1, -1, 81, 164, 83, -1, -1, 86, ++ -1, 88, -1, -1, 91, -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, - 147 ++ -1, -1, -1, 110, 111 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ - static const yytype_uint8 yystos[] = + static const yytype_uint16 yystos[] = { - 0, 1, 8, 13, 14, 15, 18, 22, 23, 28, - 29, 32, 35, 36, 39, 47, 53, 55, 62, 63, - 66, 70, 71, 74, 75, 88, 89, 101, 104, 106, - 108, 109, 115, 119, 120, 121, 122, 123, 124, 126, - 128, 134, 138, 139, 140, 142, 143, 145, 146, 156, - 172, 173, 174, 175, 176, 186, 187, 188, 189, 193, - 198, 206, 212, 217, 221, 225, 226, 227, 228, 236, - 237, 248, 249, 155, 54, 54, 54, 190, 6, 10, - 17, 60, 86, 99, 127, 218, 219, 220, 9, 82, - 86, 209, 210, 211, 132, 229, 218, 20, 24, 72, - 105, 113, 117, 133, 137, 200, 57, 59, 132, 177, - 178, 179, 132, 132, 132, 132, 234, 235, 177, 245, - 245, 132, 132, 244, 54, 26, 57, 59, 177, 178, - 54, 132, 230, 199, 200, 132, 5, 30, 46, 49, - 103, 129, 130, 222, 223, 224, 11, 19, 21, 45, - 77, 78, 80, 81, 84, 102, 194, 195, 196, 197, - 178, 54, 167, 241, 242, 243, 54, 240, 0, 174, - 155, 177, 177, 31, 54, 247, 132, 132, 33, 52, - 69, 239, 169, 27, 48, 51, 114, 116, 121, 125, - 191, 192, 219, 210, 54, 31, 201, 40, 41, 42, - 43, 118, 131, 135, 136, 213, 214, 215, 216, 132, - 174, 235, 177, 132, 207, 26, 26, 207, 76, 166, - 200, 223, 247, 37, 54, 141, 246, 195, 54, 247, - 55, 110, 232, 233, 54, 242, 54, 155, 7, 12, - 16, 50, 61, 79, 83, 85, 95, 111, 112, 141, - 143, 147, 151, 180, 181, 182, 183, 184, 185, 4, - 56, 58, 132, 150, 238, 157, 158, 250, 251, 54, - 132, 28, 35, 38, 68, 90, 144, 202, 203, 204, - 132, 54, 214, 247, 246, 44, 52, 64, 65, 67, - 73, 91, 93, 94, 96, 97, 98, 100, 147, 208, - 207, 207, 178, 132, 178, 54, 233, 34, 247, 181, - 54, 166, 166, 123, 251, 252, 253, 255, 155, 132, - 3, 25, 87, 92, 107, 149, 152, 205, 207, 26, - 231, 54, 247, 247, 166, 155, 170, 253, 169, 168, - 177, 159, 254, 166, 160, 256, 257, 247, 166, 170, - 257, 155, 247, 169, 161, 162, 163, 164, 165, 258, - 259, 166, 166, 166, 166, 166, 170, 259, 155, 247, - 247, 247, 247, 247, 155 + 0, 1, 8, 12, 13, 14, 20, 21, 26, 27, + 30, 33, 34, 37, 45, 55, 57, 65, 66, 69, + 73, 74, 77, 78, 95, 96, 97, 109, 113, 115, + 117, 118, 124, 128, 129, 130, 131, 132, 133, 135, + 137, 143, 147, 148, 149, 151, 152, 154, 155, 164, - 180, 181, 182, 183, 184, 189, 190, 191, 192, 195, - 198, 204, 211, 214, 217, 220, 227, 228, 239, 240, - 163, 56, 29, 56, 238, 56, 25, 46, 49, 123, - 125, 130, 193, 194, 6, 10, 16, 63, 93, 107, - 136, 215, 216, 9, 89, 93, 207, 208, 141, 221, - 215, 18, 22, 75, 114, 122, 126, 142, 146, 200, - 60, 62, 141, 185, 186, 141, 141, 141, 141, 141, - 225, 226, 141, 185, 236, 51, 52, 53, 54, 80, - 82, 84, 87, 209, 210, 236, 141, 141, 235, 141, - 141, 56, 24, 60, 62, 134, 185, 186, 56, 141, - 141, 222, 199, 200, 141, 238, 5, 28, 44, 47, - 112, 138, 139, 218, 219, 11, 17, 19, 43, 81, - 83, 86, 88, 91, 110, 111, 196, 197, 186, 56, - 175, 232, 233, 234, 56, 231, 0, 182, 163, 185, - 185, 31, 50, 72, 230, 177, 141, 141, 141, 141, - 141, 56, 194, 216, 56, 56, 56, 208, 29, 201, - 141, 141, 38, 39, 40, 41, 127, 140, 144, 145, - 212, 213, 182, 226, 185, 56, 56, 56, 56, 56, - 56, 56, 56, 210, 141, 205, 24, 24, 205, 205, - 79, 174, 200, 238, 238, 238, 238, 238, 238, 238, - 219, 56, 56, 35, 56, 150, 237, 56, 238, 238, - 238, 238, 56, 56, 56, 197, 57, 119, 223, 224, - 56, 233, 56, 163, 7, 15, 48, 64, 85, 90, - 92, 103, 120, 121, 150, 152, 156, 160, 187, 188, - 4, 59, 61, 141, 159, 229, 165, 166, 241, 242, - 243, 26, 33, 36, 71, 98, 153, 202, 237, 237, - 237, 237, 141, 56, 238, 238, 213, 42, 50, 67, ++ 180, 181, 182, 183, 184, 194, 195, 196, 197, 201, ++ 206, 214, 223, 228, 232, 236, 237, 238, 239, 247, ++ 248, 259, 260, 163, 56, 56, 25, 46, 49, 123, ++ 125, 130, 198, 199, 200, 6, 10, 16, 63, 93, ++ 107, 136, 229, 230, 231, 9, 89, 93, 217, 218, ++ 219, 141, 240, 229, 18, 22, 75, 114, 122, 126, ++ 142, 146, 208, 60, 62, 141, 185, 186, 187, 141, ++ 141, 141, 141, 245, 246, 185, 256, 51, 52, 53, ++ 54, 80, 82, 84, 87, 220, 221, 222, 256, 141, ++ 141, 255, 56, 24, 60, 62, 134, 185, 186, 56, ++ 141, 241, 207, 208, 141, 5, 28, 44, 47, 112, ++ 138, 139, 233, 234, 235, 11, 17, 19, 43, 81, ++ 83, 86, 88, 91, 110, 111, 202, 203, 204, 205, ++ 186, 56, 175, 252, 253, 254, 56, 251, 0, 182, ++ 163, 185, 185, 29, 56, 258, 141, 141, 31, 50, ++ 72, 250, 177, 56, 199, 141, 230, 218, 56, 29, ++ 209, 38, 39, 40, 41, 127, 140, 144, 145, 224, ++ 225, 226, 227, 141, 182, 246, 185, 221, 56, 141, ++ 215, 24, 24, 215, 215, 79, 174, 208, 234, 258, ++ 35, 56, 150, 257, 203, 56, 258, 243, 56, 253, ++ 56, 163, 7, 15, 48, 64, 85, 90, 92, 103, ++ 120, 121, 150, 152, 156, 160, 188, 189, 190, 191, ++ 192, 193, 4, 59, 61, 141, 159, 249, 165, 166, ++ 261, 262, 263, 26, 33, 36, 71, 98, 153, 210, ++ 211, 212, 141, 56, 225, 258, 257, 42, 50, 67, + 68, 70, 76, 99, 101, 102, 104, 105, 106, 108, - 156, 206, 205, 205, 186, 141, 186, 56, 224, 32, - 56, 56, 56, 56, 56, 56, 188, 132, 242, 244, - 245, 247, 163, 174, 141, 3, 23, 94, 100, 116, - 158, 161, 203, 205, 24, 56, 174, 163, 178, 245, - 177, 238, 176, 185, 167, 246, 174, 168, 248, 249, - 238, 174, 178, 249, 163, 238, 177, 169, 170, 171, - 172, 173, 250, 251, 252, 178, 251, 163, 174, 163, - 238 ++ 156, 216, 215, 215, 186, 141, 57, 119, 244, 32, ++ 189, 56, 132, 262, 264, 265, 267, 163, 174, 141, ++ 3, 23, 94, 100, 116, 158, 161, 213, 215, 24, ++ 242, 186, 56, 56, 174, 163, 178, 265, 177, 258, ++ 176, 185, 167, 266, 174, 168, 268, 269, 258, 174, ++ 178, 269, 163, 258, 177, 169, 170, 171, 172, 173, ++ 270, 271, 272, 178, 271, 163, 174, 163, 258 }; #define yyerrok (yyerrstatus = 0) @@@ -2216,7 -2197,7 +2223,7 @@@ yyreduce case 5: /* Line 1464 of yacc.c */ - #line 320 "ntp_parser.y" -#line 325 "ntp_parser.y" ++#line 340 "ntp_parser.y" { /* I will need to incorporate much more fine grained * error messages. The following should suffice for @@@ -2233,336 -2214,216 +2240,229 @@@ case 19: /* Line 1464 of yacc.c */ - #line 354 "ntp_parser.y" -#line 359 "ntp_parser.y" ++#line 374 "ntp_parser.y" { - struct peer_node *my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue)); - if (my_node) - enqueue(cfgt.peers, my_node); + peer_node *my_node; + + my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); - if (my_node) - APPEND_G_FIFO(cfgt.peers, my_node); ++ APPEND_G_FIFO(cfgt.peers, my_node); } break; case 20: /* Line 1464 of yacc.c */ - #line 362 "ntp_parser.y" -#line 365 "ntp_parser.y" ++#line 381 "ntp_parser.y" { - struct peer_node *my_node = create_peer_node((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node), NULL); - if (my_node) - enqueue(cfgt.peers, my_node); + peer_node *my_node; + + my_node = create_peer_node((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node), NULL); - if (my_node) - APPEND_G_FIFO(cfgt.peers, my_node); ++ APPEND_G_FIFO(cfgt.peers, my_node); } break; case 27: /* Line 1464 of yacc.c */ - #line 382 "ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET); } -#line 383 "ntp_parser.y" ++#line 400 "ntp_parser.y" + { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), (yyvsp[(1) - (2)].Integer)); } break; case 28: /* Line 1464 of yacc.c */ - #line 384 "ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET6); } -#line 388 "ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), 0); } ++#line 405 "ntp_parser.y" ++ { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); } break; case 29: /* Line 1464 of yacc.c */ - #line 389 "ntp_parser.y" - { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); } -#line 393 "ntp_parser.y" ++#line 410 "ntp_parser.y" + { (yyval.Integer) = AF_INET; } break; case 30: /* Line 1464 of yacc.c */ - #line 394 "ntp_parser.y" - { (yyval.Attr_val_fifo) = append_gen_fifo((yyvsp[(1) - (2)].Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); } -#line 395 "ntp_parser.y" ++#line 412 "ntp_parser.y" + { (yyval.Integer) = AF_INET6; } break; case 31: /* Line 1464 of yacc.c */ - #line 396 "ntp_parser.y" - { (yyval.Attr_val_fifo) = append_gen_fifo(NULL, (yyvsp[(1) - (1)].Attr_val)); } -#line 399 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 417 "ntp_parser.y" ++ { (yyval.Attr_val_fifo) = append_gen_fifo((yyvsp[(1) - (2)].Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); } break; case 32: /* Line 1464 of yacc.c */ --#line 400 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 33: - - /* Line 1464 of yacc.c */ - #line 401 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 34: - - /* Line 1464 of yacc.c */ - #line 402 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 419 "ntp_parser.y" ++ { (yyval.Attr_val_fifo) = append_gen_fifo(NULL, (yyvsp[(1) - (1)].Attr_val)); } break; case 35: /* Line 1464 of yacc.c */ - #line 403 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 36: - - /* Line 1464 of yacc.c */ - #line 404 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 37: - - /* Line 1464 of yacc.c */ - #line 405 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 38: - - /* Line 1464 of yacc.c */ - #line 406 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 39: - - /* Line 1464 of yacc.c */ --#line 407 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 40: - - /* Line 1464 of yacc.c */ - #line 408 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 41: - - /* Line 1464 of yacc.c */ - #line 409 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } -- break; -- - case 42: - case 36: -- --/* Line 1464 of yacc.c */ - #line 410 "ntp_parser.y" -#line 412 "ntp_parser.y" ++#line 429 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } break; - case 43: - - /* Line 1464 of yacc.c */ - #line 411 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 45: + case 44: /* Line 1464 of yacc.c */ - #line 412 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 45: - - /* Line 1464 of yacc.c */ - #line 413 "ntp_parser.y" -#line 428 "ntp_parser.y" ++#line 445 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 46: - case 52: ++ case 51: /* Line 1464 of yacc.c */ - #line 423 "ntp_parser.y" -#line 448 "ntp_parser.y" ++#line 463 "ntp_parser.y" { - struct unpeer_node *my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node)); + unpeer_node *my_node; + + my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node)); if (my_node) - enqueue(cfgt.unpeers, my_node); + APPEND_G_FIFO(cfgt.unpeers, my_node); } break; - case 49: - case 55: ++ case 54: /* Line 1464 of yacc.c */ - #line 444 "ntp_parser.y" -#line 467 "ntp_parser.y" ++#line 484 "ntp_parser.y" { cfgt.broadcastclient = 1; } break; - case 50: ++ case 55: + +/* Line 1464 of yacc.c */ - #line 446 "ntp_parser.y" ++#line 486 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[(2) - (2)].Address_fifo)); } + break; + - case 51: + case 56: /* Line 1464 of yacc.c */ - #line 448 "ntp_parser.y" -#line 469 "ntp_parser.y" - { append_queue(cfgt.manycastserver, (yyvsp[(2) - (2)].Queue)); } ++#line 488 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[(2) - (2)].Address_fifo)); } break; - case 52: + case 57: /* Line 1464 of yacc.c */ - #line 459 "ntp_parser.y" -#line 471 "ntp_parser.y" - { append_queue(cfgt.multicastclient, (yyvsp[(2) - (2)].Queue)); } ++#line 499 "ntp_parser.y" + { + attr_val *atrv; + + atrv = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); + APPEND_G_FIFO(cfgt.vars, atrv); + } break; - case 53: + case 58: /* Line 1464 of yacc.c */ - #line 466 "ntp_parser.y" -#line 482 "ntp_parser.y" - { enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); } ++#line 506 "ntp_parser.y" + { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); } break; - case 54: + case 59: /* Line 1464 of yacc.c */ - #line 468 "ntp_parser.y" -#line 484 "ntp_parser.y" - { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); } ++#line 508 "ntp_parser.y" + { + cfgt.auth.cryptosw++; + CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Attr_val_fifo)); + } break; - case 55: + case 60: /* Line 1464 of yacc.c */ - #line 473 "ntp_parser.y" -#line 486 "ntp_parser.y" - { - cfgt.auth.cryptosw++; - append_queue(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Queue)); - } ++#line 513 "ntp_parser.y" + { cfgt.auth.keys = (yyvsp[(2) - (2)].String); } break; - case 56: + case 61: /* Line 1464 of yacc.c */ - #line 475 "ntp_parser.y" -#line 491 "ntp_parser.y" - { cfgt.auth.keys = (yyvsp[(2) - (2)].String); } ++#line 515 "ntp_parser.y" + { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); } break; - case 57: + case 62: /* Line 1464 of yacc.c */ - #line 477 "ntp_parser.y" -#line 493 "ntp_parser.y" - { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); } ++#line 517 "ntp_parser.y" + { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); } break; - case 58: + case 63: /* Line 1464 of yacc.c */ - #line 479 "ntp_parser.y" -#line 495 "ntp_parser.y" - { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); } ++#line 519 "ntp_parser.y" + { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); } break; - case 59: + case 64: /* Line 1464 of yacc.c */ - #line 481 "ntp_parser.y" -#line 497 "ntp_parser.y" - { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); } ++#line 521 "ntp_parser.y" + { cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Attr_val_fifo); } break; - case 60: + case 65: /* Line 1464 of yacc.c */ - #line 483 "ntp_parser.y" -#line 499 "ntp_parser.y" - { cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Queue); } ++#line 523 "ntp_parser.y" + { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); } break; - case 61: + case 66: /* Line 1464 of yacc.c */ - #line 488 "ntp_parser.y" -#line 501 "ntp_parser.y" - { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); } ++#line 528 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 62: + case 67: /* Line 1464 of yacc.c */ - #line 493 "ntp_parser.y" -#line 506 "ntp_parser.y" - { (yyval.Queue) = create_queue(); } ++#line 533 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 63: + case 68: /* Line 1464 of yacc.c */ - #line 498 "ntp_parser.y" -#line 508 "ntp_parser.y" - { - if ((yyvsp[(2) - (2)].Attr_val) != NULL) - (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); - else - (yyval.Queue) = (yyvsp[(1) - (2)].Queue); ++#line 538 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), NULL); } break; - case 64: - - /* Line 1464 of yacc.c */ - #line 506 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } - break; - - case 65: - - /* Line 1464 of yacc.c */ - #line 508 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } - break; - - case 66: - - /* Line 1464 of yacc.c */ - #line 510 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } - break; - - case 67: - - /* Line 1464 of yacc.c */ - #line 512 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } - break; - - case 68: + case 69: /* Line 1464 of yacc.c */ - #line 514 "ntp_parser.y" -#line 518 "ntp_parser.y" ++#line 546 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } break; - case 69: + case 70: /* Line 1464 of yacc.c */ - #line 516 "ntp_parser.y" -#line 520 "ntp_parser.y" ++#line 548 "ntp_parser.y" { (yyval.Attr_val) = NULL; cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); @@@ -2573,121 -2434,59 +2473,65 @@@ } break; - case 70: - case 77: ++ case 76: /* Line 1464 of yacc.c */ - #line 533 "ntp_parser.y" -#line 546 "ntp_parser.y" - { append_queue(cfgt.orphan_cmds,(yyvsp[(2) - (2)].Queue)); } ++#line 573 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 71: - case 78: ++ case 77: /* Line 1464 of yacc.c */ - #line 538 "ntp_parser.y" -#line 550 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 578 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 72: - case 79: ++ case 78: /* Line 1464 of yacc.c */ - #line 543 "ntp_parser.y" -#line 551 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 583 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 73: - - /* Line 1464 of yacc.c */ - #line 551 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 74: - - /* Line 1464 of yacc.c */ - #line 553 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 75: - - /* Line 1464 of yacc.c */ - #line 555 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 76: - - /* Line 1464 of yacc.c */ - #line 557 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 77: - - /* Line 1464 of yacc.c */ - #line 559 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 78: - - /* Line 1464 of yacc.c */ - #line 561 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - - case 80: + case 79: /* Line 1464 of yacc.c */ - #line 563 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } -#line 556 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); } ++#line 591 "ntp_parser.y" ++ { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 81: + case 80: /* Line 1464 of yacc.c */ - #line 565 "ntp_parser.y" -#line 558 "ntp_parser.y" ++#line 593 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } break; - case 82: + case 81: /* Line 1464 of yacc.c */ - #line 567 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - - case 82: - - /* Line 1464 of yacc.c */ - #line 569 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 83: - - /* Line 1464 of yacc.c */ - #line 571 "ntp_parser.y" -#line 560 "ntp_parser.y" ++#line 595 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 84: + case 92: /* Line 1464 of yacc.c */ - #line 581 "ntp_parser.y" -#line 585 "ntp_parser.y" - { append_queue(cfgt.stats_list, (yyvsp[(2) - (2)].Queue)); } ++#line 622 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[(2) - (2)].Int_fifo)); } break; - case 85: + case 93: /* Line 1464 of yacc.c */ - #line 583 "ntp_parser.y" -#line 587 "ntp_parser.y" ++#line 624 "ntp_parser.y" { if (input_from_file) { cfgt.stats_dir = (yyvsp[(2) - (2)].String); @@@ -2698,543 -2497,313 +2542,402 @@@ } break; - case 86: + case 94: /* Line 1464 of yacc.c */ - #line 592 "ntp_parser.y" -#line 596 "ntp_parser.y" ++#line 633 "ntp_parser.y" { - enqueue(cfgt.filegen_opts, - create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Queue))); + filegen_node *fgn; + + fgn = create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Attr_val_fifo)); + APPEND_G_FIFO(cfgt.filegen_opts, fgn); } break; - case 87: + case 95: /* Line 1464 of yacc.c */ - #line 602 "ntp_parser.y" -#line 603 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); } ++#line 643 "ntp_parser.y" + { + (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + } break; - case 88: + case 96: /* Line 1464 of yacc.c */ - #line 607 "ntp_parser.y" -#line 604 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); } ++#line 648 "ntp_parser.y" + { + (yyval.Int_fifo) = NULL; + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer))); + } break; - case 97: + case 105: /* Line 1464 of yacc.c */ - #line 626 "ntp_parser.y" -#line 620 "ntp_parser.y" - { (yyval.Queue) = create_queue(); } ++#line 667 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + } break; - case 98: + case 106: /* Line 1464 of yacc.c */ - #line 630 "ntp_parser.y" -#line 622 "ntp_parser.y" ++#line 671 "ntp_parser.y" { - if ((yyvsp[(2) - (2)].Attr_val) != NULL) - (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); - else - (yyval.Queue) = (yyvsp[(1) - (2)].Queue); + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); } break; - case 99: + case 107: /* Line 1464 of yacc.c */ - #line 638 "ntp_parser.y" -#line 632 "ntp_parser.y" ++#line 679 "ntp_parser.y" { - if (input_from_file) + if (input_from_file) { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - else { + } else { (yyval.Attr_val) = NULL; YYFREE((yyvsp[(2) - (2)].String)); - yyerror("filegen file remote configuration ignored"); + yyerror("filegen file remote config ignored"); } } break; - case 100: + case 108: /* Line 1464 of yacc.c */ - #line 648 "ntp_parser.y" -#line 642 "ntp_parser.y" ++#line 689 "ntp_parser.y" { - if (input_from_file) + if (input_from_file) { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); - else { - (yyval.Attr_val) = NULL; - yyerror("filegen type remote configuration ignored"); - } - } - break; - - case 101: - - /* Line 1464 of yacc.c */ - #line 657 "ntp_parser.y" - { - if (input_from_file) - (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); - else { + } else { (yyval.Attr_val) = NULL; - yyerror("filegen link remote configuration ignored"); + yyerror("filegen type remote config ignored"); } } break; - case 102: + case 109: /* Line 1464 of yacc.c */ - #line 666 "ntp_parser.y" -#line 651 "ntp_parser.y" ++#line 698 "ntp_parser.y" { - if (input_from_file) + const char *err; + + if (input_from_file) { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); - else { + } else { (yyval.Attr_val) = NULL; - yyerror("filegen nolink remote configuration ignored"); + if (T_Link == (yyvsp[(1) - (1)].Integer)) + err = "filegen link remote config ignored"; + else + err = "filegen nolink remote config ignored"; + yyerror(err); } } break; - case 103: - - /* Line 1464 of yacc.c */ - #line 674 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 104: + case 110: /* Line 1464 of yacc.c */ - #line 675 "ntp_parser.y" -#line 666 "ntp_parser.y" ++#line 713 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } break; - case 112: + case 122: /* Line 1464 of yacc.c */ - #line 695 "ntp_parser.y" -#line 696 "ntp_parser.y" ++#line 744 "ntp_parser.y" { - append_queue(cfgt.discard_opts, (yyvsp[(2) - (2)].Queue)); + CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 113: + case 123: /* Line 1464 of yacc.c */ - #line 699 "ntp_parser.y" -#line 700 "ntp_parser.y" ++#line 748 "ntp_parser.y" { - enqueue(cfgt.restrict_opts, - create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no)); + CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 114: + case 124: /* Line 1464 of yacc.c */ - #line 703 "ntp_parser.y" -#line 705 "ntp_parser.y" ++#line 752 "ntp_parser.y" { - enqueue(cfgt.restrict_opts, - create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no)); + restrict_node *rn; + + rn = create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Int_fifo), + ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); } break; - case 115: + case 125: /* Line 1464 of yacc.c */ - #line 711 "ntp_parser.y" -#line 710 "ntp_parser.y" ++#line 760 "ntp_parser.y" { - enqueue(cfgt.restrict_opts, - create_restrict_node( - create_address_node( - estrdup("0.0.0.0"), - AF_INET), - create_address_node( - estrdup("0.0.0.0"), - AF_INET), - (yyvsp[(4) - (4)].Queue), - ip_file->line_no)); + restrict_node *rn; + + rn = create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Int_fifo), + ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); } break; - case 116: + case 126: /* Line 1464 of yacc.c */ - #line 719 "ntp_parser.y" -#line 723 "ntp_parser.y" ++#line 768 "ntp_parser.y" { - enqueue(cfgt.restrict_opts, - create_restrict_node( - create_address_node( - estrdup("::"), - AF_INET6), - create_address_node( - estrdup("::"), - AF_INET6), - (yyvsp[(4) - (4)].Queue), - ip_file->line_no)); + restrict_node *rn; + + rn = create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), + ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); } break; - case 117: + case 127: /* Line 1464 of yacc.c */ - #line 727 "ntp_parser.y" -#line 736 "ntp_parser.y" ++#line 776 "ntp_parser.y" { - enqueue(cfgt.restrict_opts, - create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Queue), ip_file->line_no)); + restrict_node *rn; + + rn = create_restrict_node( + create_address_node( + estrdup("0.0.0.0"), + AF_INET), + create_address_node( + estrdup("0.0.0.0"), + AF_INET), + (yyvsp[(4) - (4)].Int_fifo), + ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); } break; - case 118: + case 128: /* Line 1464 of yacc.c */ - #line 742 "ntp_parser.y" -#line 744 "ntp_parser.y" - { (yyval.Queue) = create_queue(); } ++#line 791 "ntp_parser.y" + { + restrict_node *rn; + + rn = create_restrict_node( + create_address_node( + estrdup("::"), + AF_INET6), + create_address_node( + estrdup("::"), + AF_INET6), + (yyvsp[(4) - (4)].Int_fifo), + ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); + } break; - case 119: + case 129: /* Line 1464 of yacc.c */ - #line 757 "ntp_parser.y" -#line 746 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); } ++#line 806 "ntp_parser.y" + { + restrict_node * rn; + + append_gen_fifo((yyvsp[(3) - (3)].Int_fifo), create_int_node((yyvsp[(2) - (3)].Integer))); + rn = create_restrict_node( + NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), ip_file->line_no); + APPEND_G_FIFO(cfgt.restrict_opts, rn); + } break; - case 120: - case 144: ++ case 130: /* Line 1464 of yacc.c */ - #line 769 "ntp_parser.y" -#line 768 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 818 "ntp_parser.y" + { + (yyval.Int_fifo) = NULL; + } break; - case 121: - case 145: ++ case 131: /* Line 1464 of yacc.c */ - #line 773 "ntp_parser.y" -#line 770 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 822 "ntp_parser.y" + { + (yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo); + APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + } break; - case 136: + case 146: /* Line 1464 of yacc.c */ - #line 798 "ntp_parser.y" -#line 775 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } ++#line 847 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 137: - case 150: ++ case 147: /* Line 1464 of yacc.c */ - #line 803 "ntp_parser.y" -#line 791 "ntp_parser.y" - { enqueue(cfgt.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } ++#line 852 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 138: - - /* Line 1464 of yacc.c */ - #line 810 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 139: - - /* Line 1464 of yacc.c */ - #line 811 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 140: - case 151: ++ case 148: /* Line 1464 of yacc.c */ - #line 812 "ntp_parser.y" -#line 796 "ntp_parser.y" - { enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 860 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 141: + case 152: /* Line 1464 of yacc.c */ - #line 817 "ntp_parser.y" -#line 798 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 871 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 142: + case 153: /* Line 1464 of yacc.c */ - #line 822 "ntp_parser.y" -#line 803 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } ++#line 876 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 143: + case 154: /* Line 1464 of yacc.c */ - #line 829 "ntp_parser.y" -#line 805 "ntp_parser.y" ++#line 884 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } + break; + - case 144: ++ case 163: + +/* Line 1464 of yacc.c */ - #line 830 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } ++#line 904 "ntp_parser.y" ++ { ++ addr_opts_node *aon; ++ ++ aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); ++ APPEND_G_FIFO(cfgt.fudge, aon); ++ } + break; + - case 145: ++ case 164: + +/* Line 1464 of yacc.c */ - #line 831 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } ++#line 914 "ntp_parser.y" ++ { ++ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); ++ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); ++ } + break; + - case 146: ++ case 165: + +/* Line 1464 of yacc.c */ - #line 832 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 147: - - /* Line 1464 of yacc.c */ - #line 833 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 148: - - /* Line 1464 of yacc.c */ - #line 834 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 149: - - /* Line 1464 of yacc.c */ - #line 835 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 150: - - /* Line 1464 of yacc.c */ - #line 836 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 151: - - /* Line 1464 of yacc.c */ - #line 845 "ntp_parser.y" - { - addr_opts_node *aon; - - aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); - APPEND_G_FIFO(cfgt.fudge, aon); - } - break; - - case 152: - - /* Line 1464 of yacc.c */ - #line 855 "ntp_parser.y" - { - (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); - } - break; - - case 153: - - /* Line 1464 of yacc.c */ - #line 860 "ntp_parser.y" ++#line 919 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } + break; + - case 154: - - /* Line 1464 of yacc.c */ - #line 867 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - - case 155: ++ case 166: + +/* Line 1464 of yacc.c */ - #line 868 "ntp_parser.y" ++#line 927 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } + break; + - case 156: - - /* Line 1464 of yacc.c */ - #line 869 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 157: - - /* Line 1464 of yacc.c */ - #line 870 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } - break; - - case 158: - - /* Line 1464 of yacc.c */ - #line 871 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } - break; - - case 159: ++ case 167: + +/* Line 1464 of yacc.c */ - #line 872 "ntp_parser.y" ++#line 929 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 160: - case 155: ++ case 168: /* Line 1464 of yacc.c */ - #line 873 "ntp_parser.y" -#line 807 "ntp_parser.y" ++#line 931 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 161: - case 156: ++ case 169: /* Line 1464 of yacc.c */ - #line 874 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } -#line 809 "ntp_parser.y" ++#line 933 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); } break; - case 162: - case 163: ++ case 176: /* Line 1464 of yacc.c */ - #line 883 "ntp_parser.y" -#line 831 "ntp_parser.y" - { append_queue(cfgt.enable_opts, (yyvsp[(2) - (2)].Queue)); } ++#line 954 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 163: - case 164: ++ case 177: /* Line 1464 of yacc.c */ - #line 885 "ntp_parser.y" -#line 833 "ntp_parser.y" - { append_queue(cfgt.disable_opts, (yyvsp[(2) - (2)].Queue)); } ++#line 956 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 164: - case 165: ++ case 178: /* Line 1464 of yacc.c */ - #line 890 "ntp_parser.y" -#line 838 "ntp_parser.y" ++#line 961 "ntp_parser.y" { - if ((yyvsp[(2) - (2)].Attr_val) != NULL) - (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); - else - (yyval.Queue) = (yyvsp[(1) - (2)].Queue); + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); } break; - case 165: - case 166: ++ case 179: /* Line 1464 of yacc.c */ - #line 895 "ntp_parser.y" -#line 845 "ntp_parser.y" ++#line 966 "ntp_parser.y" { - if ((yyvsp[(1) - (1)].Attr_val) != NULL) - (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); - else - (yyval.Queue) = create_queue(); + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); } break; - case 166: - - /* Line 1464 of yacc.c */ - #line 902 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - -- case 167: - - /* Line 1464 of yacc.c */ - #line 903 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 168: - - /* Line 1464 of yacc.c */ - #line 904 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 169: - - /* Line 1464 of yacc.c */ - #line 905 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 170: - - /* Line 1464 of yacc.c */ - #line 906 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } - break; - - case 171: ++ case 180: /* Line 1464 of yacc.c */ - #line 907 "ntp_parser.y" -#line 855 "ntp_parser.y" ++#line 974 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); } break; - case 172: - case 168: ++ case 181: /* Line 1464 of yacc.c */ - #line 909 "ntp_parser.y" -#line 857 "ntp_parser.y" ++#line 976 "ntp_parser.y" { if (input_from_file) { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); @@@ -3245,87 -2814,88 +2948,94 @@@ } break; - case 173: - case 175: ++ case 188: /* Line 1464 of yacc.c */ - #line 925 "ntp_parser.y" -#line 882 "ntp_parser.y" - { append_queue(cfgt.tinker, (yyvsp[(2) - (2)].Queue)); } ++#line 1001 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 174: - case 176: ++ case 189: /* Line 1464 of yacc.c */ - #line 930 "ntp_parser.y" -#line 886 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 1006 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 175: - case 177: ++ case 190: /* Line 1464 of yacc.c */ - #line 935 "ntp_parser.y" -#line 887 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 1011 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 176: - - /* Line 1464 of yacc.c */ - #line 942 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - - case 177: - - /* Line 1464 of yacc.c */ - #line 943 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - -- case 178: ++ case 191: /* Line 1464 of yacc.c */ - #line 944 "ntp_parser.y" -#line 892 "ntp_parser.y" ++#line 1019 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } break; - case 179: - case 187: ++ case 200: /* Line 1464 of yacc.c */ - #line 945 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } -#line 913 "ntp_parser.y" ++#line 1040 "ntp_parser.y" + { - struct attr_val *av; ++ attr_val *av; + + av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); - enqueue(cfgt.vars, av); ++ APPEND_G_FIFO(cfgt.vars, av); + } break; - case 180: - case 188: ++ case 201: /* Line 1464 of yacc.c */ - #line 946 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } -#line 920 "ntp_parser.y" ++#line 1047 "ntp_parser.y" + { - struct attr_val *av; ++ attr_val *av; + + av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - enqueue(cfgt.vars, av); ++ APPEND_G_FIFO(cfgt.vars, av); + } break; - case 181: - case 189: ++ case 202: /* Line 1464 of yacc.c */ - #line 947 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } - break; - - case 182: -#line 927 "ntp_parser.y" ++#line 1054 "ntp_parser.y" + { + char error_text[64]; - struct attr_val *av; ++ attr_val *av; - /* Line 1464 of yacc.c */ - #line 948 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); } + if (input_from_file) { + av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - enqueue(cfgt.vars, av); ++ APPEND_G_FIFO(cfgt.vars, av); + } else { + YYFREE((yyvsp[(2) - (2)].String)); + snprintf(error_text, sizeof(error_text), + "%s remote config ignored", + keyword((yyvsp[(1) - (2)].Integer))); + yyerror(error_text); + } + } break; - case 184: - case 190: ++ case 203: /* Line 1464 of yacc.c */ - #line 959 "ntp_parser.y" -#line 943 "ntp_parser.y" ++#line 1070 "ntp_parser.y" { + if (!input_from_file) { + yyerror("remote includefile ignored"); + break; + } if (curr_include_level >= MAXINCLUDELEVEL) { fprintf(stderr, "getconfig: Maximum include file level exceeded.\n"); msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.\n"); @@@ -3341,427 -2911,261 +3051,320 @@@ } break; - case 185: - case 191: ++ case 204: /* Line 1464 of yacc.c */ - #line 974 "ntp_parser.y" -#line 962 "ntp_parser.y" ++#line 1089 "ntp_parser.y" { while (curr_include_level != -1) FCLOSE(fp[curr_include_level--]); } break; - case 186: - case 192: -- --/* Line 1464 of yacc.c */ - #line 980 "ntp_parser.y" - { - attr_val *av; - - av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); - APPEND_G_FIFO(cfgt.vars, av); - } -#line 967 "ntp_parser.y" - { enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); } -- break; -- - case 187: - case 193: -- --/* Line 1464 of yacc.c */ - #line 987 "ntp_parser.y" - { - attr_val *av; - - av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); - APPEND_G_FIFO(cfgt.vars, av); - } -#line 969 "ntp_parser.y" - { /* Null action, possibly all null parms */ } -- break; -- - case 188: - case 194: ++ case 205: /* Line 1464 of yacc.c */ - #line 994 "ntp_parser.y" -#line 971 "ntp_parser.y" - { append_queue(cfgt.logconfig, (yyvsp[(2) - (2)].Queue)); } ++#line 1094 "ntp_parser.y" + { /* see drift_parm below for actions */ } break; - case 189: - - /* Line 1464 of yacc.c */ - #line 996 "ntp_parser.y" - { - attr_val *av; - - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - APPEND_G_FIFO(cfgt.vars, av); - } - break; - - case 190: - - /* Line 1464 of yacc.c */ - #line 1003 "ntp_parser.y" - { - attr_val *av; - - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - APPEND_G_FIFO(cfgt.vars, av); - } - break; - - case 191: - - /* Line 1464 of yacc.c */ - #line 1010 "ntp_parser.y" - { - attr_val *av; - - if (input_from_file) { - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - APPEND_G_FIFO(cfgt.vars, av); - } else { - YYFREE((yyvsp[(2) - (2)].String)); - yyerror("logfile remote configuration ignored"); - } - } - break; - - case 192: - case 195: ++ case 206: /* Line 1464 of yacc.c */ - #line 1022 "ntp_parser.y" -#line 973 "ntp_parser.y" - { append_queue(cfgt.phone, (yyvsp[(2) - (2)].Queue)); } ++#line 1096 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 193: - case 196: ++ case 207: /* Line 1464 of yacc.c */ - #line 1024 "ntp_parser.y" -#line 975 "ntp_parser.y" - { enqueue(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); } ++#line 1098 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[(2) - (2)].String_fifo)); } break; - case 194: - - /* Line 1464 of yacc.c */ - #line 1026 "ntp_parser.y" - { - attr_val *av; - - if (input_from_file) { - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - APPEND_G_FIFO(cfgt.vars, av); - } else { - YYFREE((yyvsp[(2) - (2)].String)); - yyerror("saveconfigdir remote configuration ignored"); - } - } - break; - - case 195: - case 197: ++ case 208: /* Line 1464 of yacc.c */ - #line 1038 "ntp_parser.y" -#line 977 "ntp_parser.y" - { enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (2)].Address_node), NULL)); } ++#line 1100 "ntp_parser.y" + { APPEND_G_FIFO(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); } break; - case 196: - case 198: ++ case 209: /* Line 1464 of yacc.c */ - #line 1040 "ntp_parser.y" - { - addr_opts_node *aon; - - aon = create_addr_opts_node((yyvsp[(2) - (2)].Address_node), NULL); - APPEND_G_FIFO(cfgt.trap, aon); - } - break; - - case 197: - - /* Line 1464 of yacc.c */ - #line 1047 "ntp_parser.y" -#line 979 "ntp_parser.y" - { enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } ++#line 1102 "ntp_parser.y" + { + addr_opts_node *aon; + + aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo)); + APPEND_G_FIFO(cfgt.trap, aon); + } break; - case 198: - case 199: ++ case 210: /* Line 1464 of yacc.c */ - #line 1054 "ntp_parser.y" -#line 981 "ntp_parser.y" - { append_queue(cfgt.ttl, (yyvsp[(2) - (2)].Queue)); } ++#line 1109 "ntp_parser.y" + { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[(2) - (2)].Attr_val_fifo)); } break; - case 199: - - /* Line 1464 of yacc.c */ - #line 1056 "ntp_parser.y" - { - attr_val *av; - - av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); - APPEND_G_FIFO(cfgt.qos, av); - } - break; - - case 200: - case 207: ++ case 218: /* Line 1464 of yacc.c */ - #line 1066 "ntp_parser.y" -#line 1002 "ntp_parser.y" - { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String))); } ++#line 1130 "ntp_parser.y" + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String)); + APPEND_G_FIFO(cfgt.vars, av); + } break; - case 201: - case 208: ++ case 219: /* Line 1464 of yacc.c */ - #line 1073 "ntp_parser.y" -#line 1004 "ntp_parser.y" - { enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double))); - enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String))); } ++#line 1137 "ntp_parser.y" + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String)); + APPEND_G_FIFO(cfgt.vars, av); + av = create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double)); + APPEND_G_FIFO(cfgt.vars, av); + } break; - case 202: - case 209: ++ case 220: /* Line 1464 of yacc.c */ - #line 1082 "ntp_parser.y" -#line 1007 "ntp_parser.y" - { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, "\0")); } ++#line 1146 "ntp_parser.y" + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, ""); + APPEND_G_FIFO(cfgt.vars, av); + } break; - case 203: - case 210: ++ case 221: /* Line 1464 of yacc.c */ - #line 1092 "ntp_parser.y" -#line 1012 "ntp_parser.y" ++#line 1156 "ntp_parser.y" { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); } break; - case 204: - case 212: ++ case 223: /* Line 1464 of yacc.c */ - #line 1094 "ntp_parser.y" - { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].String), 0); } -#line 1018 "ntp_parser.y" ++#line 1162 "ntp_parser.y" + { (yyval.Integer) = 0; } break; - case 205: - case 213: ++ case 224: /* Line 1464 of yacc.c */ - #line 1099 "ntp_parser.y" -#line 1023 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 1167 "ntp_parser.y" + { - (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; + } break; - case 206: - case 214: ++ case 225: /* Line 1464 of yacc.c */ - #line 1104 "ntp_parser.y" -#line 1024 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 1171 "ntp_parser.y" + { - (yyval.Attr_val_fifo) = NULL; - APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); ++ (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); ++ APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 207: - case 215: ++ case 226: /* Line 1464 of yacc.c */ - #line 1112 "ntp_parser.y" -#line 1028 "ntp_parser.y" ++#line 1179 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); } break; - case 208: - case 216: ++ case 227: /* Line 1464 of yacc.c */ - #line 1114 "ntp_parser.y" -#line 1029 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_pval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node)); } ++#line 1181 "ntp_parser.y" + { + (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)); + } break; - case 209: - case 217: ++ case 228: /* Line 1464 of yacc.c */ - #line 1122 "ntp_parser.y" -#line 1033 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 1189 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 210: - case 218: ++ case 229: /* Line 1464 of yacc.c */ - #line 1127 "ntp_parser.y" -#line 1034 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 1194 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 211: - case 219: ++ case 230: /* Line 1464 of yacc.c */ - #line 1135 "ntp_parser.y" -#line 1039 "ntp_parser.y" ++#line 1202 "ntp_parser.y" { - char prefix = (yyvsp[(1) - (1)].String)[0]; - char *type = (yyvsp[(1) - (1)].String) + 1; + char prefix; + char * type; - if (prefix != '+' && prefix != '-' && prefix != '=') { - yyerror("Logconfig prefix is not '+', '-' or '='\n"); - } - else - (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type)); + switch ((yyvsp[(1) - (1)].String)[0]) { + + case '+': + case '-': + case '=': + prefix = (yyvsp[(1) - (1)].String)[0]; + type = (yyvsp[(1) - (1)].String) + 1; + break; + + default: + prefix = '='; + type = (yyvsp[(1) - (1)].String); + } + + (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type)); YYFREE((yyvsp[(1) - (1)].String)); } break; - case 212: - case 220: ++ case 231: /* Line 1464 of yacc.c */ - #line 1160 "ntp_parser.y" -#line 1054 "ntp_parser.y" ++#line 1227 "ntp_parser.y" { - enqueue(cfgt.nic_rules, - create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer))); + nic_rule_node *nrn; + + nrn = create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer)); + APPEND_G_FIFO(cfgt.nic_rules, nrn); } break; - case 213: - case 221: ++ case 232: /* Line 1464 of yacc.c */ - #line 1167 "ntp_parser.y" -#line 1059 "ntp_parser.y" ++#line 1234 "ntp_parser.y" { - enqueue(cfgt.nic_rules, - create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer))); + nic_rule_node *nrn; + + nrn = create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer)); + APPEND_G_FIFO(cfgt.nic_rules, nrn); } break; - case 223: - case 231: ++ case 242: /* Line 1464 of yacc.c */ - #line 1201 "ntp_parser.y" -#line 1090 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); } ++#line 1268 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(2) - (2)].Integer))); + } break; - case 224: - case 232: ++ case 243: /* Line 1464 of yacc.c */ - #line 1206 "ntp_parser.y" -#line 1091 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); } ++#line 1273 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(1) - (1)].Integer))); + } break; - case 225: - case 233: ++ case 244: /* Line 1464 of yacc.c */ - #line 1214 "ntp_parser.y" -#line 1096 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } ++#line 1281 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val)); + } break; - case 226: - case 234: ++ case 245: /* Line 1464 of yacc.c */ - #line 1219 "ntp_parser.y" -#line 1098 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } ++#line 1286 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val)); + } break; - case 227: - case 235: ++ case 246: /* Line 1464 of yacc.c */ - #line 1227 "ntp_parser.y" -#line 1103 "ntp_parser.y" ++#line 1294 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[(1) - (1)].Integer)); } break; - case 229: - case 237: ++ case 248: /* Line 1464 of yacc.c */ - #line 1233 "ntp_parser.y" -#line 1109 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_shorts('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); } ++#line 1300 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); } break; - case 230: - case 238: ++ case 249: /* Line 1464 of yacc.c */ - #line 1238 "ntp_parser.y" -#line 1113 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_pval((yyvsp[(2) - (2)].String))); } ++#line 1305 "ntp_parser.y" + { + (yyval.String_fifo) = (yyvsp[(1) - (2)].String_fifo); + APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(2) - (2)].String))); + } break; - case 231: - case 239: ++ case 250: /* Line 1464 of yacc.c */ - #line 1243 "ntp_parser.y" -#line 1114 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue(create_pval((yyvsp[(1) - (1)].String))); } ++#line 1310 "ntp_parser.y" + { + (yyval.String_fifo) = NULL; + APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(1) - (1)].String))); + } break; - case 232: - case 240: ++ case 251: /* Line 1464 of yacc.c */ - #line 1251 "ntp_parser.y" -#line 1118 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Address_node)); } ++#line 1318 "ntp_parser.y" + { + (yyval.Address_fifo) = (yyvsp[(1) - (2)].Address_fifo); + APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(2) - (2)].Address_node)); + } break; - case 233: - case 241: ++ case 252: /* Line 1464 of yacc.c */ - #line 1256 "ntp_parser.y" -#line 1119 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Address_node)); } ++#line 1323 "ntp_parser.y" + { + (yyval.Address_fifo) = NULL; + APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(1) - (1)].Address_node)); + } break; - case 234: - case 242: ++ case 253: /* Line 1464 of yacc.c */ - #line 1264 "ntp_parser.y" -#line 1124 "ntp_parser.y" ++#line 1331 "ntp_parser.y" { if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) { yyerror("Integer value is not boolean (0 or 1). Assuming 1"); @@@ -3772,175 -3176,183 +3375,175 @@@ } break; - case 235: - case 243: ++ case 254: /* Line 1464 of yacc.c */ - #line 1272 "ntp_parser.y" -#line 1132 "ntp_parser.y" ++#line 1339 "ntp_parser.y" { (yyval.Integer) = 1; } break; - case 236: - case 244: ++ case 255: /* Line 1464 of yacc.c */ - #line 1273 "ntp_parser.y" -#line 1133 "ntp_parser.y" ++#line 1340 "ntp_parser.y" { (yyval.Integer) = 0; } break; - case 237: - case 245: ++ case 256: /* Line 1464 of yacc.c */ - #line 1277 "ntp_parser.y" -#line 1137 "ntp_parser.y" ++#line 1344 "ntp_parser.y" { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); } break; - case 239: - case 247: ++ case 258: /* Line 1464 of yacc.c */ - #line 1288 "ntp_parser.y" -#line 1148 "ntp_parser.y" ++#line 1355 "ntp_parser.y" { - cfgt.sim_details = create_sim_node((yyvsp[(3) - (5)].Queue), (yyvsp[(4) - (5)].Queue)); + sim_node *sn; + + sn = create_sim_node((yyvsp[(3) - (5)].Attr_val_fifo), (yyvsp[(4) - (5)].Sim_server_fifo)); + APPEND_G_FIFO(cfgt.sim_details, sn); - /* Reset the old_config_style variable */ + /* Revert from ; to \n for end-of-command */ old_config_style = 1; } break; - case 240: - case 248: ++ case 259: /* Line 1464 of yacc.c */ - #line 1305 "ntp_parser.y" -#line 1162 "ntp_parser.y" ++#line 1372 "ntp_parser.y" { old_config_style = 0; } break; - case 241: - case 249: - -/* Line 1464 of yacc.c */ -#line 1166 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } - break; - - case 250: ++ case 260: /* Line 1464 of yacc.c */ - #line 1310 "ntp_parser.y" -#line 1167 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } ++#line 1377 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val)); + } break; - case 242: - case 251: ++ case 261: /* Line 1464 of yacc.c */ - #line 1315 "ntp_parser.y" -#line 1171 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } ++#line 1382 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val)); + } break; - case 243: - case 252: ++ case 262: /* Line 1464 of yacc.c */ - #line 1323 "ntp_parser.y" -#line 1172 "ntp_parser.y" ++#line 1390 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } break; - case 246: - case 253: ++ case 265: /* Line 1464 of yacc.c */ - #line 1333 "ntp_parser.y" -#line 1176 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_server)); } ++#line 1400 "ntp_parser.y" + { + (yyval.Sim_server_fifo) = (yyvsp[(1) - (2)].Sim_server_fifo); + APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(2) - (2)].Sim_server)); + } break; - case 247: - case 254: ++ case 266: /* Line 1464 of yacc.c */ - #line 1338 "ntp_parser.y" -#line 1177 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_server)); } ++#line 1405 "ntp_parser.y" + { + (yyval.Sim_server_fifo) = NULL; + APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(1) - (1)].Sim_server)); + } break; - case 248: - case 255: ++ case 267: /* Line 1464 of yacc.c */ - #line 1346 "ntp_parser.y" -#line 1182 "ntp_parser.y" - { (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Queue)); } ++#line 1413 "ntp_parser.y" + { (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Sim_script_fifo)); } break; - case 249: - case 256: ++ case 268: /* Line 1464 of yacc.c */ - #line 1351 "ntp_parser.y" -#line 1186 "ntp_parser.y" ++#line 1418 "ntp_parser.y" { (yyval.Double) = (yyvsp[(3) - (4)].Double); } break; - case 250: - case 257: ++ case 269: /* Line 1464 of yacc.c */ - #line 1356 "ntp_parser.y" -#line 1190 "ntp_parser.y" ++#line 1423 "ntp_parser.y" { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); } break; - case 251: - case 258: - -/* Line 1464 of yacc.c */ -#line 1194 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_script)); } - break; - - case 259: - -/* Line 1464 of yacc.c */ -#line 1195 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_script)); } - break; - - case 260: - -/* Line 1464 of yacc.c */ -#line 1200 "ntp_parser.y" - { (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Queue)); } - break; - - case 261: - -/* Line 1464 of yacc.c */ -#line 1204 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } - break; - - case 262: ++ case 270: /* Line 1464 of yacc.c */ - #line 1361 "ntp_parser.y" -#line 1205 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } ++#line 1428 "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)); + } break; - case 252: - case 263: ++ case 271: /* Line 1464 of yacc.c */ - #line 1366 "ntp_parser.y" -#line 1210 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } ++#line 1433 "ntp_parser.y" + { + (yyval.Sim_script_fifo) = NULL; + APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(1) - (1)].Sim_script)); + } break; - case 253: - case 264: ++ case 272: /* Line 1464 of yacc.c */ - #line 1374 "ntp_parser.y" -#line 1212 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } ++#line 1441 "ntp_parser.y" + { (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Attr_val_fifo)); } break; - case 254: - case 265: ++ case 273: /* Line 1464 of yacc.c */ - #line 1379 "ntp_parser.y" -#line 1214 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } ++#line 1446 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo); + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val)); + } break; - case 255: - case 266: ++ case 274: /* Line 1464 of yacc.c */ - #line 1384 "ntp_parser.y" -#line 1216 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } ++#line 1451 "ntp_parser.y" + { + (yyval.Attr_val_fifo) = NULL; + APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val)); + } break; - case 256: - case 267: ++ case 275: /* Line 1464 of yacc.c */ - #line 1392 "ntp_parser.y" -#line 1218 "ntp_parser.y" ++#line 1459 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); } break; /* Line 1464 of yacc.c */ - #line 3944 "ntp_parser.c" -#line 3356 "ntp_parser.c" ++#line 3547 "ntp_parser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@@ -4152,10 -3564,13 +3755,13 @@@ yyreturn /* Line 1684 of yacc.c */ - #line 1403 "ntp_parser.y" -#line 1222 "ntp_parser.y" ++#line 1470 "ntp_parser.y" - void yyerror (char *msg) -void ++void + yyerror( + const char *msg + ) { int retval; diff --cc ntpd/ntp_parser.y index 69f70c796b,377443a941..057e96a35a --- a/ntpd/ntp_parser.y +++ b/ntpd/ntp_parser.y @@@ -244,47 -234,64 +244,67 @@@ /*** NON-TERMINALS ***/ %type access_control_flag -%type ac_flag_list +%type ac_flag_list %type address + %type address_fam -%type address_list +%type address_list %type boolean %type client_type %type crypto_command -%type crypto_command_list +%type crypto_command_list + %type crypto_str_keyword %type discard_option + %type discard_option_keyword -%type discard_option_list +%type discard_option_list + %type enable_disable %type filegen_option -%type filegen_option_list +%type filegen_option_list %type filegen_type %type fudge_factor + %type fudge_factor_bool_keyword + %type fudge_factor_dbl_keyword -%type fudge_factor_list -%type integer_list -%type integer_list_range +%type fudge_factor_list +%type integer_list +%type integer_list_range %type integer_list_range_elt %type integer_range %type nic_rule_action %type interface_command %type interface_nic %type ip_address + %type link_nolink %type log_config_command -%type log_config_list +%type log_config_list + %type misc_cmd_dbl_keyword + %type misc_cmd_str_keyword + %type misc_cmd_str_lcl_keyword +%type mru_option ++%type mru_option_keyword +%type mru_option_list %type nic_rule_class %type number %type option + %type option_flag + %type option_flag_keyword -%type option_list +%type option_list + %type option_int + %type option_int_keyword %type stat -%type stats_list -%type string_list +%type stats_list +%type string_list %type system_option + %type system_option_flag_keyword -%type system_option_list +%type system_option_list + %type t_default_or_zero + %type tinker_option_keyword %type tinker_option -%type tinker_option_list +%type tinker_option_list %type tos_option + %type tos_option_dbl_keyword + %type tos_option_int_keyword -%type tos_option_list +%type tos_option_list %type trap_option -%type trap_option_list +%type trap_option_list %type unpeer_keyword %type variable_assign @@@ -352,19 -357,15 +372,17 @@@ command : /* NULL STATEMENT * server_command : client_type address option_list { - struct peer_node *my_node = create_peer_node($1, $2, $3); - if (my_node) - enqueue(cfgt.peers, my_node); + peer_node *my_node; + + my_node = create_peer_node($1, $2, $3); - if (my_node) - APPEND_G_FIFO(cfgt.peers, my_node); ++ APPEND_G_FIFO(cfgt.peers, my_node); } | client_type address { - struct peer_node *my_node = create_peer_node($1, $2, NULL); - if (my_node) - enqueue(cfgt.peers, my_node); + peer_node *my_node; + + my_node = create_peer_node($1, $2, NULL); - if (my_node) - APPEND_G_FIFO(cfgt.peers, my_node); ++ APPEND_G_FIFO(cfgt.peers, my_node); } ; @@@ -385,35 -384,61 +401,59 @@@ addres ; ip_address - : T_String - { $$ = create_address_node($1, 0); } + : T_String + { $$ = create_address_node($1, AF_UNSPEC); } ; + address_fam + : T_Ipv4_flag + { $$ = AF_INET; } + | T_Ipv6_flag + { $$ = AF_INET6; } + ; + option_list - : option_list option { $$ = enqueue($1, $2); } - | option { $$ = enqueue_in_new_queue($1); } + : option_list option + { $$ = append_gen_fifo($1, $2); } + | option + { $$ = append_gen_fifo(NULL, $1); } ; option - : T_Autokey { $$ = create_attr_ival(T_Flag, $1); } - | T_Burst { $$ = create_attr_ival(T_Flag, $1); } - | T_Iburst { $$ = create_attr_ival(T_Flag, $1); } - | T_Key T_Integer { $$ = create_attr_ival($1, $2); } - | T_Minpoll T_Integer { $$ = create_attr_ival($1, $2); } - | T_Maxpoll T_Integer { $$ = create_attr_ival($1, $2); } - | T_Noselect { $$ = create_attr_ival(T_Flag, $1); } - | T_Preempt { $$ = create_attr_ival(T_Flag, $1); } - | T_Prefer { $$ = create_attr_ival(T_Flag, $1); } - | T_True { $$ = create_attr_ival(T_Flag, $1); } - | T_Xleave { $$ = create_attr_ival(T_Flag, $1); } - | T_Ttl T_Integer { $$ = create_attr_ival($1, $2); } - | T_Mode T_Integer { $$ = create_attr_ival($1, $2); } - | T_Version T_Integer { $$ = create_attr_ival($1, $2); } + : option_flag + | option_int - | T_Bias number - { $$ = create_attr_dval($1, $2); } ; + option_flag + : option_flag_keyword + { $$ = create_attr_ival(T_Flag, $1); } + ; + + option_flag_keyword + : T_Autokey + | T_Burst + | T_Iburst + | T_Noselect + | T_Preempt + | T_Prefer + | T_True + | T_Xleave + ; + + option_int + : option_int_keyword T_Integer + { $$ = create_attr_ival($1, $2); } + ; + + option_int_keyword + : T_Key + | T_Minpoll + | T_Maxpoll + | T_Ttl + | T_Mode + | T_Version + ; - - /* unpeer commands * --------------- */ @@@ -523,6 -527,15 +555,14 @@@ crypto_comman } ; + crypto_str_keyword + : T_Host + | T_Ident + | T_Pw + | T_Randfile - | T_Sign + | T_Digest + ; + /* Orphan Mode Commands * -------------------- @@@ -547,31 -552,30 +587,32 @@@ tos_option_lis ; tos_option - : T_Ceiling T_Integer - { $$ = create_attr_ival($1, $2); } - | T_Floor T_Integer - { $$ = create_attr_ival($1, $2); } - | T_Cohort boolean - { $$ = create_attr_ival($1, $2); } - | T_Orphan T_Integer - { $$ = create_attr_ival($1, $2); } - | T_Orphanwait T_Integer + : tos_option_int_keyword T_Integer - { $$ = create_attr_dval($1, (double)$2); } + { $$ = create_attr_ival($1, $2); } - | T_Mindist number - { $$ = create_attr_dval($1, $2); } - | T_Maxdist number - { $$ = create_attr_dval($1, $2); } - | T_Minclock number - { $$ = create_attr_dval($1, $2); } - | T_Maxclock number + | tos_option_dbl_keyword number { $$ = create_attr_dval($1, $2); } - | T_Minsane T_Integer - { $$ = create_attr_ival($1, $2); } - | T_Beacon T_Integer + | T_Cohort boolean { $$ = create_attr_ival($1, $2); } ; + + tos_option_int_keyword + : T_Ceiling + | T_Floor + | T_Orphan ++ | T_Orphanwait + | T_Minsane + | T_Beacon + ; + + tos_option_dbl_keyword + : T_Mindist + | T_Maxdist + | T_Minclock + | T_Maxclock + ; + + /* Monitoring Commands * ------------------- */ @@@ -646,35 -640,42 +687,43 @@@ filegen_optio } | T_Type filegen_type { - if (input_from_file) + if (input_from_file) { $$ = create_attr_ival($1, $2); - else { + } else { $$ = NULL; - yyerror("filegen type remote configuration ignored"); + yyerror("filegen type remote config ignored"); } } - | T_Link + | link_nolink { - if (input_from_file) + const char *err; + + if (input_from_file) { $$ = create_attr_ival(T_Flag, $1); - else { + } else { $$ = NULL; - yyerror("filegen link remote configuration ignored"); + if (T_Link == $1) + err = "filegen link remote config ignored"; + else + err = "filegen nolink remote config ignored"; + yyerror(err); } } + | enable_disable + { $$ = create_attr_ival(T_Flag, $1); } + ; + + link_nolink + : T_Link | T_Nolink - { - if (input_from_file) - $$ = create_attr_ival(T_Flag, $1); - else { - $$ = NULL; - yyerror("filegen nolink remote configuration ignored"); - } - } - | T_Enable { $$ = create_attr_ival(T_Flag, $1); } - | T_Disable { $$ = create_attr_ival(T_Flag, $1); } ; + enable_disable + : T_Enable + | T_Disable + ; + ++ filegen_type : T_None | T_Pid @@@ -807,34 -771,16 +856,44 @@@ discard_option_lis ; discard_option - : T_Average T_Integer { $$ = create_attr_ival($1, $2); } - | T_Minimum T_Integer { $$ = create_attr_ival($1, $2); } - | T_Monitor T_Integer { $$ = create_attr_ival($1, $2); } + : discard_option_keyword T_Integer + { $$ = create_attr_ival($1, $2); } + ; + + discard_option_keyword + : T_Average + | T_Minimum + | T_Monitor ; +mru_option_list + : mru_option_list mru_option + { + $$ = $1; + APPEND_G_FIFO($$, $2); + } + | mru_option + { + $$ = NULL; + APPEND_G_FIFO($$, $1); + } + ; + +mru_option - : T_Incalloc T_Integer { $$ = create_attr_ival($1, $2); } - | T_Incmem T_Integer { $$ = create_attr_ival($1, $2); } - | T_Initalloc T_Integer { $$ = create_attr_ival($1, $2); } - | T_Initmem T_Integer { $$ = create_attr_ival($1, $2); } - | T_Maxage T_Integer { $$ = create_attr_ival($1, $2); } - | T_Maxdepth T_Integer { $$ = create_attr_ival($1, $2); } - | T_Maxmem T_Integer { $$ = create_attr_ival($1, $2); } - | T_Mindepth T_Integer { $$ = create_attr_ival($1, $2); } ++ : mru_option_keyword T_Integer ++ { $$ = create_attr_ival($1, $2); } ++ ; ++ ++mru_option_keyword ++ : T_Incalloc ++ | T_Incmem ++ | T_Initalloc ++ | T_Initmem ++ | T_Maxage ++ | T_Maxdepth ++ | T_Maxmem ++ | T_Mindepth + ; /* Fudge Commands * -------------- @@@ -864,16 -799,29 +923,28 @@@ fudge_factor_lis ; fudge_factor - : T_Time1 number { $$ = create_attr_dval($1, $2); } - | T_Time2 number { $$ = create_attr_dval($1, $2); } - | T_Stratum T_Integer { $$ = create_attr_ival($1, $2); } - | T_Refid T_String { $$ = create_attr_sval($1, $2); } - | T_Flag1 boolean { $$ = create_attr_ival($1, $2); } - | T_Flag2 boolean { $$ = create_attr_ival($1, $2); } - | T_Flag3 boolean { $$ = create_attr_ival($1, $2); } - | T_Flag4 boolean { $$ = create_attr_ival($1, $2); } + : fudge_factor_dbl_keyword number + { $$ = create_attr_dval($1, $2); } + | fudge_factor_bool_keyword boolean + { $$ = create_attr_ival($1, $2); } + | T_Stratum T_Integer + { $$ = create_attr_ival($1, $2); } + | T_Refid T_String + { $$ = create_attr_sval($1, $2); } + ; + + fudge_factor_dbl_keyword + : T_Time1 + | T_Time2 + ; + + fudge_factor_bool_keyword + : T_Flag1 + | T_Flag2 + | T_Flag3 + | T_Flag4 ; - /* Command for System Options * -------------------------- */ @@@ -916,6 -864,16 +983,15 @@@ system_optio } ; + system_option_flag_keyword + : T_Auth + | T_Bclient + | T_Calibrate + | T_Kernel + | T_Monitor + | T_Ntp + ; + - /* Tinker Commands * --------------- */ @@@ -955,136 -909,102 +1036,119 @@@ tinker_option_keywor miscellaneous_command : interface_command - | T_Includefile T_String command - { - if (curr_include_level >= MAXINCLUDELEVEL) { - fprintf(stderr, "getconfig: Maximum include file level exceeded.\n"); - msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.\n"); - } else { - fp[curr_include_level + 1] = F_OPEN(FindConfig($2), "r"); - if (fp[curr_include_level + 1] == NULL) { - fprintf(stderr, "getconfig: Couldn't open <%s>\n", FindConfig($2)); - msyslog(LOG_ERR, "getconfig: Couldn't open <%s>\n", FindConfig($2)); - } else { - ip_file = fp[++curr_include_level]; - } - } - } - | T_End - { - while (curr_include_level != -1) - FCLOSE(fp[curr_include_level--]); - } - - | T_Broadcastdelay number + | misc_cmd_dbl_keyword number { - struct attr_val *av; + attr_val *av; av = create_attr_dval($1, $2); - enqueue(cfgt.vars, av); + APPEND_G_FIFO(cfgt.vars, av); } - | T_Tick number - { - attr_val *av; - - av = create_attr_dval($1, $2); - APPEND_G_FIFO(cfgt.vars, av); - } - | T_Driftfile drift_parm - { /* see drift_parm below for actions */ } - | T_Leapfile T_String - { - attr_val *av; - - av = create_attr_sval($1, $2); - APPEND_G_FIFO(cfgt.vars, av); - } - | T_Pidfile T_String + | misc_cmd_str_keyword T_String { - struct attr_val *av; + attr_val *av; av = create_attr_sval($1, $2); - enqueue(cfgt.vars, av); + APPEND_G_FIFO(cfgt.vars, av); } - | T_Logfile T_String + | misc_cmd_str_lcl_keyword T_String { + char error_text[64]; - struct attr_val *av; + attr_val *av; if (input_from_file) { av = create_attr_sval($1, $2); - enqueue(cfgt.vars, av); + APPEND_G_FIFO(cfgt.vars, av); } else { YYFREE($2); - yyerror("logfile remote configuration ignored"); + snprintf(error_text, sizeof(error_text), + "%s remote config ignored", + keyword($1)); + yyerror(error_text); } } - | T_Logconfig log_config_list - { CONCAT_G_FIFOS(cfgt.logconfig, $2); } - | T_Phone string_list - { CONCAT_G_FIFOS(cfgt.phone, $2); } - | T_Saveconfigdir T_String + | T_Includefile T_String command { - attr_val *av; - - if (input_from_file) { - av = create_attr_sval($1, $2); - APPEND_G_FIFO(cfgt.vars, av); + if (!input_from_file) { + yyerror("remote includefile ignored"); + break; + } + if (curr_include_level >= MAXINCLUDELEVEL) { + fprintf(stderr, "getconfig: Maximum include file level exceeded.\n"); + msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.\n"); } else { - YYFREE($2); - yyerror("saveconfigdir remote configuration ignored"); + fp[curr_include_level + 1] = F_OPEN(FindConfig($2), "r"); + if (fp[curr_include_level + 1] == NULL) { + fprintf(stderr, "getconfig: Couldn't open <%s>\n", FindConfig($2)); + msyslog(LOG_ERR, "getconfig: Couldn't open <%s>\n", FindConfig($2)); + } else { + ip_file = fp[++curr_include_level]; + } } } - | T_Setvar variable_assign - { APPEND_G_FIFO(cfgt.setvar, $2); } - | T_Trap ip_address + | T_End { - addr_opts_node *aon; - - aon = create_addr_opts_node($2, NULL); - APPEND_G_FIFO(cfgt.trap, aon); + while (curr_include_level != -1) + FCLOSE(fp[curr_include_level--]); } - | T_Calldelay T_Integer - { enqueue(cfgt.vars, create_attr_ival($1, $2)); } + | T_Driftfile drift_parm - { /* Null action, possibly all null parms */ } ++ { /* see drift_parm below for actions */ } + | T_Logconfig log_config_list - { append_queue(cfgt.logconfig, $2); } ++ { CONCAT_G_FIFOS(cfgt.logconfig, $2); } + | T_Phone string_list - { append_queue(cfgt.phone, $2); } ++ { CONCAT_G_FIFOS(cfgt.phone, $2); } + | T_Setvar variable_assign - { enqueue(cfgt.setvar, $2); } - | T_Trap ip_address - { enqueue(cfgt.trap, create_addr_opts_node($2, NULL)); } ++ { APPEND_G_FIFO(cfgt.setvar, $2); } | T_Trap ip_address trap_option_list - { enqueue(cfgt.trap, create_addr_opts_node($2, $3)); } + { + addr_opts_node *aon; + + aon = create_addr_opts_node($2, $3); + APPEND_G_FIFO(cfgt.trap, aon); + } | T_Ttl integer_list - { append_queue(cfgt.ttl, $2); } + { CONCAT_G_FIFOS(cfgt.ttl, $2); } - | T_Qos T_String - { - attr_val *av; - - av = create_attr_sval($1, $2); - APPEND_G_FIFO(cfgt.qos, av); - } ; - + + misc_cmd_dbl_keyword + : T_Broadcastdelay + | T_Tick + ; + + misc_cmd_str_keyword + : T_Leapfile + | T_Pidfile + | T_Qos + ; + + misc_cmd_str_lcl_keyword + : T_Logfile + | T_Saveconfigdir + ; + drift_parm : T_String - { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1)); } + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, $1); + APPEND_G_FIFO(cfgt.vars, av); + } | T_String T_Double - { enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, $2)); - enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1)); } - | /* Null driftfile, indicated by null string "\0" */ - { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, "\0")); } + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, $1); + APPEND_G_FIFO(cfgt.vars, av); + av = create_attr_dval(T_WanderThreshold, $2); + APPEND_G_FIFO(cfgt.vars, av); + } + | /* Null driftfile, indicated by empty string "" */ + { + attr_val *av; + + av = create_attr_sval(T_Driftfile, ""); + APPEND_G_FIFO(cfgt.vars, av); + } ; variable_assign @@@ -1095,16 -1019,9 +1163,15 @@@ t_default_or_zer ; trap_option_list -- : trap_option_list trap_option - { $$ = enqueue($1, $2); } - | trap_option { $$ = enqueue_in_new_queue($1); } ++ : /* empty list */ + { - $$ = $1; - APPEND_G_FIFO($$, $2); ++ $$ = NULL; + } - | trap_option ++ | trap_option_list trap_option + { - $$ = NULL; - APPEND_G_FIFO($$, $1); ++ $$ = $1; ++ APPEND_G_FIFO($$, $2); + } ; trap_option @@@ -1402,7 -1221,10 +1469,10 @@@ sim_act_keywor %% - void yyerror (char *msg) -void ++void + yyerror( + const char *msg + ) { int retval;